an dieser Stelle ist mein Buch glaube ich Mist :-(
Wichtigste Wissensgebiete:
- alternative und Notfall-Startmöglichkeiten vorsehen
- einen Bootloader wie GRUB Legacy installieren und konfigurieren
- grundlegende Konfigurationsänderungen an GRUB 2 durchführen
- mit dem Bootloader interagieren
Liste wichtiger Dateine, Verzeichnisse und Anwendungen:
- /boot/grub/menu.lst, grub.cfg und grub.conf
- grub-install
- grub-mkconfig
- MBR
Alternative Wissensquelle: Wikipedia Artikel
-----------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------
- Boot-Strap-Loader: Ein Programm, welches die notwendigen Schritte für den Bootvorgang ausführt
- Nach Initialisierung des BIOS sucht es auf startfähigen Laufwerken nach Boot-Strap-Loadern
- Auf Festplatte in Sektor 0 -> Entweder direkt der Boot-Strap-Loader oder Verweis innerhalb der Partitionstabelle auf aktive Partition, die den Boot-Strap-Loader enthält
- Für Linux ist GRUB der Boot-Strap-Loader (LILO ist veraltet): GRUB Legacy oder GRUB 2
- Aufgabe: Kernel finden und starten
- Wenn Aufgabe erledigt ist, Kontrolle an Kernel übergeben
GRUB Legacy
- zweistufiger Bootloader (eigentlich dreistufig, da Stage 1,5 eingefügt wurde)
- Programm für Stage 1 befindet sich im MBR, Kopie unter /boot/grub/stage1 (nicht unter Ubuntu und Debian)
- Was macht Stage 1?boot.img welches im MBR gespeichert wurde oder optional in einem sog. volume boot record (VBR) und ist exakt 446 bytes groß. boot.img adressiert Stage 1.5 core.img über eine LBA48 Adresse . Während der Installation ist Stage 1 so konfiguriert, dass es den des core.img lädt.
- Binärdatei (auslesen mit od -h stage1)
- Stage 1,5 Wofür ist Stage 1,5 zuständig? Stage 1.5 repräsentiert das core.img und wird normalerweise in dir Sektoren zwischen MBR und der ersten Partition geschrieben. Dieser freie Platz ist historisch bedingt normalerweise nicht belegt, da die erste Partition einer Festplatte nicht bei Sektor 1, sondern bei Sektor 63 beginnt. So entsteht ein freier Platz von 62 Sektoren. Dieser Platz reicht nicht für eine Partition oder Dateisystem. Wird core.img ausgeführt, lädt es seine Konfigurationsdateien und andere benötigte Module, ebenso die Dateisystem-Treiber. Während der Installation wird core.img durch diskboot.img generiert und konfiguriert, so dass es Stage 2 anhand seines Dateipfads laden kann.
- Stage 2 Datei befindet sich unter /boot/grub/stage2 (nicht unter Ubuntu), stellt das Boot-Menu für den Benutzer bereit und startet den Kernel. Laut der Wikipedia Seite befinden sich die Dateien unter /boot/grub
- GRUB kann einige Dateisysteme lesen (im Gegensatz zu LILO) und ist daher in der Lage, Dateien anhand ihres Namens zu finden
- Unterstützung einer beschränkten Anzahl von Dateisystemen: ext2/ ext3/ ext4/ ReiserFD und XFS
- Nach Aktualisierung des Kernels oder Neuinstallation muss GRUB nicht neu installiert werden
- GRUB liest beim Booten erst die Konfiguration aus und sucht die zu startenden Dateien zusammen -> daher lassen sich die Parameter während des Bootvorgangs noch ändern
- GRUB-Legacy-Prompt kann verwendet werden um mit Bootloader zu interagieren (z.B. Fehlerfall)
- Es kann der Kernel hieraus manuell gestartet werden
- Position des Hauptverzeichnis, des Kernels und vorhanden die Position der Initial RAM-Disk werden benötigt
grub> root (hd0,0)
grub> kernel /boot/vmlinuz-2.6.23....fc7 root=/dev/sda2
grub> initrd /boot/initrd-2.6.23....,fc7.img
grub> boot - Für GRUB ist die erste Partition auf der ersten Festplatte immer hd0,0 egal, um welche Art von Platte es sich handelt
- /boot/grub/device.map erzeugt für den Bootloader die notwendige Zuordnung von GRUB-Notation zu "Linux-Geräten" (hd0 = /dev/sda)
- /boot/grub/menu.lst (Softlink auf grub.conf) Einträge für jedes zu startende Betriebssystem
- /boot/grub/grub.conf wird in einigen Distributionen auch unter /etc/grub.conf abgelegt, da sie nicht von GRUB während des Bootvorgangs, sondern von grub-install verwendet wird
GRUB 2
- völlig neuer Bootloader
- /boot/grub/menu.lst darf nicht mehr per Hand konfiguriert werden, da bei GRUB2 diese Datei immer wieder neu generiert wird.
- grub-mkconfig übernimmt diese Aufgabe, wobei es dabei auf viele kleine Shellskripte und Konfigurationsschnipsel aus /etc/grub.d zurück greift
- GRUB 2 unterstützt weiterhin die gleichen Dateisysteme und Kernelversionen wie GRUB legacy
- GRUB 2 hat eigene Konfigurationsdateien unter /etc
- Hauptkonfigurationsdatei grub.cfg befindet sich weiterhin unter /boot/grub (oder /boot/grub2)
- wird durch grub-mkconfig (grub2-mkconfig) generiert
- Vorlage sind die Dateien /etc/default/grub und Dateien unterhalb von /etc/grub.d
- Konfiguration des GRUB 2 erfolgt ausschließlich über die Dateien unter /etc/grub.d
- anstatt der langen Eingabe grub-mkconfig -o /boot/grub/grub.cfg kann auch der kürzere Alias update-grub verwendet werden
LILO (nicht mehr relevant)
- LILO kann keine Dateisysteme lesen, sondern speichert nur die Nummern der zu ladenden Sektoren
- LILO speichert die Position des Kernels, nicht den Namen. D.h. wenn ein Update des Kernels gefahren wird, oder ein neuer Kernel installiert wird, muss LILO ebenfalls neu installiert werden
- Fehlermeldungen beim Booten nicht direkt lesbar:
- L <errorcode> Erste Stufe wurde geladen und gestartet. Start der zweiten Stufe schlug fehl. Der zweistellige <errorcode> gibt Details zum Fehler bekannt, z.B. nicht funktionierende Plattengeometrie
- LI die zweite Stufe wurde geladen, konnte aber nicht gestartet werden. Mögliche Ursache: /boot/boot.b wurde im Dateisystem verschoben oder die Plattengeometrie stimmt nicht.
- LIL Zweite Stufe wurde gestartet, kann aber nicht auf die Map-Datei zugreifen, oder findet sie nicht
- LIL? Zweite Stufe wurde geladen, verweist aber auf eine ungültige Adresse (Fehler in der Plattengeometrie oder verschobene /boot/boot.b
- LIL- Die Beschreibungstabelle (Descriptor Table) konnte nicht richtig gelesen werden (übliche Fehlerursache)
- LILO alles hat ordnungsgemäß geklappt
GRUB und LILO
- beide Boot-Manager können weitere Boot-Manager starten (seite 62 Heinlein)
- beide können Windows starten (wie auch jedes anderes OS)
Fragen, die übrig bleiben:
- Wie installiert man einen Bootloader?
- Was gehört zur Konfiguration dazu?
- Interaktion mit Bootloder (Prompt) auch ohne Fehlerfall möglich? Wenn ja, wie?
- Was ist mit UEFI?
Keine Kommentare:
Kommentar veröffentlichen