Gemäß Wikipedia wurde GRUB 1995 veröffentlicht. Zu diesem Zeitpunkt existierten Linux und xBSD mehrere Jahre. Ich weiß, dass frühe Unix-Versionen in den 70er und 80er Jahren an Hardware gebunden waren, aber Linux und xBSD konnten kostenlos verteilt und installiert werden. Was wirft die Frage auf, wie Sie damals Linux booten würden? Wurden Distributionen mit eigenen Bootloader-Implementierungen ausgeliefert?
boot-loader
history
Sergiy Kolodyazhnyy
quelle
quelle
biosboot(8)
.biosboot
zwei Architekturen hat, i386 und amd64. Bedeutet das, dass OpenBSD speziell auf die Architekturen abzielen musste, anstatt ein einziges, vereinheitlichendes Tool zu haben?Antworten:
Die erste Linux-Distribution, die ich in den 90er Jahren verwendet habe (
Slackware 3.0
IIRC), verwendete LILO als Bootloader. Und viele Distributionen, dieLILO
jahrelang benutzt wurden, selbst alsGRUB
sie zum "Standard" Bootloader wurden.In den Anfangsjahren von Linux war es außerdem üblich, Linux von einem anderen Betriebssystem (z. B. DOS oder Windows) aus zu starten, anstatt sich auf einen Bootloader / Dual-Boot zu verlassen. Zum Beispiel gab es loadlin .
Vergessen Sie nicht Syslinux , einen einfacheren Bootloader, der häufig für selbststartende USB-Installations- / Wiederherstellungsdistributionen verwendet wird. Oder Isolinux (aus demselben Projekt), das von vielen "Live" -Distros verwendet wird.
Denken Sie daran, dass heutzutage
GRUB
viele Betriebssysteme geladen werden können, obwohl diesLILO
eingeschränkter war und speziell auf Linux (dh LInux LOader) abzielte, mit einer gewissen Unterstützung für das Dual-Booten von Windows.GRUB
ist aufgrund seiner vielen konfigurierbaren Optionen, Skriptfunktionen usw. sehr nützlich für Dual- / Multi-Boot.Wenn Sie nur ein einziges Betriebssystem auf Ihrem Computer haben möchten, sollte dies "any" sein (dh welcher Bootloader auch immer der Standard für Ihre Linux / BSD-Distribution ist) reichen.
quelle
other=/dev/hda1
mittable=/dev/hda
tolilo.conf
, und lilo übertrug einfach die Kontrolle auf den Bootsektor bei hda1, da er wusste, dass sich die Partitionstabelle bei hda befinden würde.LILO war der De-facto-Standard für das Booten von Linux auf PCs, bevor Grub es schon sehr früh verwendete (MCC, eine der ersten Linux-Distributionen, verwendete es). Verschiedene andere Bootloader wurden gleichzeitig verwendet. Loadlin war ziemlich verbreitet; Es bootete Linux von DOS und wurde sogar in einigen Konfigurationen verwendet
umsdos
, um eine Linux-Umgebung in einem DOS-Dateisystem zu hosten. Eine andere übliche Konfiguration beinhaltete überhaupt keinen Bootloader: Der Kernel konnte sich selbst von einer Diskette booten, und die meisten Linux-Benutzer haben ein bekanntermaßen gutes Paar von Boot- und Root-Disketten aufbewahrt, von denen eine den Kernel und die andere ein grundlegendes Root-Dateisystem für Rettungszwecke enthält.Es gab eine Reihe von Möglichkeiten, die Bootloader anderer Betriebssysteme auch zum Booten von Linux zu verwenden. Zum Beispiel der Boot-Manager von OS / 2 oder NTLDR von Windows NT.
Andere Systeme hatten ihre eigenen Bootloader:
Auch heutzutage ist Grub nicht der einzige Bootloader, den Sie sehen werden. Obwohl es nicht mehr sehr nützlich ist, den Kernel direkt von einer Diskette zu booten (ich habe nicht geprüft, ob dies noch möglich ist, vorausgesetzt, Sie können einen Kernel erstellen, der klein genug ist, um auf eine Diskette zu passen), kann er direkt von EFI booten (was effektiv der Fall ist) eigenes kleines Betriebssystem zum Laden anderer Betriebssysteme (wie Grub). Auf vielen kleineren Systemen (Embedded-Systemen, Single-Board-Computern ...) finden Sie U-Boot . (Und es gibt auch eine EFI-Ebene für U-Boot .)
quelle
Bis zum mittleren 2.6-Kernel war der x86-Kernel direkt bootfähig, wenn er auf eine Diskette kopiert wurde (als wäre es ein Disketten-Image).
Dies war in der Tat die ursprüngliche Art, Linux zu booten.
Wenn Sie sich heute den Header eines x86-Kernels ansehen, sehen Sie eine Fehlermeldung, die besagt, dass das Booten von solchen Disketten nicht mehr funktioniert.
quelle
Ich habe in den späten 90ern mit Linux angefangen und wie erwähnt
lilo
war das die Standardeinstellung. Wenn Sie mit einem DOS-System dual booten möchten, können Sie einen Bare-Boot durchführen, ohne etwas in HIMEM zu laden oder CD-Treiber usw. zu laden und zu verwendenloadlin
. Für das doppelte Starten von Win95 können Sie das Laufwerk zuerst mit DOS bootfähig machen und dann '95 installieren. Mit dem Bootloader von '95 können Sie den DOS-Kernel immer noch booten und dann verwendenloadlin
.Für das Dual-Booten mit NT4 bestand der Trick darin, LILO auf die
/
Partition zu schreiben , dann die ersten 512 Bytes mitdd
(dd if=/dev/sda2 of=/path/to/file bs=512 count=1
) zuntldr
entfernen und die resultierende Datei dort abzulegen, wo sie angezeigt werden konnte, und sie vom WinNT-Bootloader zu verwenden. Das Problem dabei ist, dass Sie beim Upgrade Ihres Kernels alle Schritte wiederholen mussten, bevor Sie neu starten, da Sie sonst Probleme haben würden, wieder in das Linux-System zu gelangen. Gleicher Prozess arbeitete mit Win2k.Mit LILO mussten Sie bei jeder Aktualisierung des Kernels daran denken, LILO zu aktualisieren.
Bei
loadlin
jeder Aktualisierung des Kernels mussten Sie daran denken, den Kernel auf die DOS-Partition zu kopieren.Eine andere Option, auf die in anderen Antworten hingewiesen wird, war das direkte Schreiben des Kernels auf eine Diskette,
dd if=/path/to/vmlinuz of=/dev/fd0
ABER das Root-Gerät musste entweder zur Kompilierungszeit oder mithilfe desrdev
Dienstprogramms ordnungsgemäß im Kernel eingerichtet werden .Als es dazu
GRUB
kam, gab es viel Freude, weil Sie nicht mehr daran denken mussten, LILO zu aktualisieren oder LILO zu aktualisieren und die Boot-Informationen usw. neu zu entfernen. Sie müssen nicht mehr von Ihrem Linux-System ausgeschlossen werden, weil Sie vergessen haben, den Bootloader zu aktualisieren Info...quelle
make install
würde laufen/sbin/lilo
, so dass Sie nicht wirklich etwas von Hand aktualisieren müssen (und das kann immer noch der Fall sein, wenn Sielilo
installiert haben). Das mag Ansichtssache sein, aber ich erinnere mich nicht, dass ich michgrub
im Gegenteil sehr darüber gefreut habe . Undlilo
(zumindest seine 1999er Version) konnte Dual-Boot-Fenster ganz gut, nicht nötigloadlin
.Vor LILO und GRUB mussten Sie es über die Befehlszeile mit einem benutzerdefinierten Bootloader-Dienstprogramm starten.
Als Beispiel hatte der Amiga Linux zur Verfügung. Sie mussten ein Befehlszeilenprogramm namens amiboot verwenden, um die Kernel-ELF in den Speicher zu laden und dorthin zu springen.
Hier ist ein Video von jemandem, der amiboot von der Kommandozeile aus verwendet, um Linux auf einem Amiga 600 zu starten . Sein StartInstall-Skript ruft die ausführbare Datei amiboot auf. Sie können beobachten, wie amiboot den Speicher konfiguriert, die gewünschte Ladeadresse ermittelt und die Parameter gegen 0:55 Uhr an den Kernel übergeben.
quelle