GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Webmin

GRUB-Bootloader

Auf dieser Seite der Linux-Bootprozess und der GRUB-Bootloader abgedeckt sind. Es erklärt, wie verschiedene Betriebssysteme ausgeführt oder verschiedene Kernel beim Booten geladen werden.

Inhalt

Einführung in Bootloader

Wenn ein auf PC-Hardware laufendes Linux-System gestartet wird, ist der erste auszuführende Code das BIOS (Basic Input Output System), das aus dem ROM geladen wird. Nachdem es den Systemspeicher getestet und festgestellt hat, welche Hardware installiert ist, versucht es, die Steuerung an einen Bootloader des Betriebssystems zu übergeben, um den Bootvorgang fortzusetzen. Der Bootloader ist ein winziges Programm, das den Benutzer auffordern kann, das auszuführende Betriebssystem auszuwählen, und dann den Rest des Betriebssystemkerns von einer Festplatte, Diskette oder einer anderen Quelle lädt.

Auf einem normalen System wird der Bootloader vom BIOS aus dem ersten Block auf der primären Festplatte geladen, der als Master Boot Record oder MBR bezeichnet wird. Das BIOS kann jedoch (je nach Konfiguration) zuerst das Diskettenlaufwerk oder die CD-ROM auf einen Bootloader prüfen, damit das System von einem Wechseldatenträger gebootet werden kann. Dies geschieht normalerweise nur bei der Installation eines neuen Betriebssystems - im normalen Alltagsgebrauch bootet fast jedes System von der Festplatte.

Für Linux stehen mehrere Bootloader zur Verfügung, aber die beiden gängigsten und die beiden, die in diesem Kapitel behandelt werden, sind LILO und GRUB. Beide funktionieren nur auf x86-kompatibler PC-Hardware. Wenn Sie also Linux auf einem Apple-, SPARC- oder Alpha-System ausführen, wird Ihnen dieses Kapitel nicht viel nützen. Jede Nicht-PC-Hardwareplattform hat ihren eigenen spezialisierten Linux-Bootloader, der auf die besonderen Macken und Anforderungen der Plattform zugeschnitten ist.

Andere Betriebssysteme (wie Windows, FreeBSD und Solaris) haben ihre eigenen Bootloader, die im Grunde das Gleiche tun wie LILO oder GRUB, aber dafür ausgelegt sind, stattdessen den Kernel eines anderen Betriebssystems zu laden. Webmin unterstützt nicht die Konfiguration von Nicht-Linux-Bootloadern, wenn Sie also eine andere Version von Unix verwenden, kann dieses Kapitel übersprungen werden.

Auf einem Linux-System ist die Hauptaufgabe des Bootloaders das Laden des Kernels. Sobald der Kernel in den Arbeitsspeicher geladen und die Kontrolle an ihn übertragen wurde, ist die Arbeit des Bootloaders erledigt. Der Kernel hängt dann das Root-Dateisystem ein, initialisiert die Treiber und führt schließlich das Init-Programm aus, um den Boot-Vorgang wie in Kapitel 9 erklärt fortzusetzen.

Der Bootloader kann auch den Prozess des Ladens eines völlig anderen Betriebssystems auf Systemen starten, auf denen mehr als eines installiert ist. Dazu lädt es den Bootloader des anderen Betriebssystems aus dem ersten Block einer Partition oder einer anderen Festplatte und überträgt dann die Steuerung darauf. Das andere Betriebssystem wird dann genau so geladen, als würde sein Bootloader direkt vom BIOS ausgeführt. Die Möglichkeit, beim Booten zu entscheiden, welches Betriebssystem geladen werden soll, macht es praktisch, zwei oder mehr auf demselben System zu installieren, z. B. Windows und Linux.

Sowohl LILO als auch GRUB können so konfiguriert werden, dass sie beim Laden ein Menü mit Boot-Optionen anzeigen, sodass der Benutzer auswählen kann, welcher bestimmte Kernel oder welches andere Betriebssystem geladen werden soll. Die Auswahl aus mehreren verschiedenen Kerneln kann besonders nützlich sein, wenn Sie einen neuen installiert haben und die Möglichkeit haben möchten, sowohl den neuen als auch den alten zu booten. Es ist sogar möglich, mehrere Boot-Optionen zu haben, die alle dieselbe Kernel-Version laden, aber mit unterschiedlichen Befehlszeilenoptionen.

Alle Linux-Distributionen bieten Ihnen die Möglichkeit, bei der Installation automatisch einen Bootloader einzurichten. Sie können normalerweise auch andere installierte Betriebssysteme booten, wenn Sie beispielsweise Linux zu einem System hinzufügen, auf dem Windows bereits auf einer anderen Partition installiert ist. Wenn diese Standardkonfiguration für Sie funktioniert, seien Sie sehr vorsichtig, wenn Sie die LILO- oder GRUB-Konfiguration manuell oder über Webmin ändern. Ein einziger Fehler kann dazu führen, dass Ihr System nicht mehr bootfähig ist und die Verwendung einer Rettungsdiskette zur Wiederherstellung erforderlich macht.

GRUB verwendet normalerweise die Konfigurationsdatei /boot/grub/grub.cfg (früher menu.lst ) und im Gegensatz zu LILO versteht es das Format von ext2-, ext3-, ext4- und vfat-Dateisystemen und kann daher die menu.lst- und Kernel-Dateien lesen, ohne dass eine Blockmap erforderlich ist. Aus diesem Grund und weil GRUB einen irgendwo auf der Festplatte gespeicherten Kernel laden kann, wird es normalerweise als überlegener Bootloader angesehen und hat LILO auf den meisten Linux-Distributionen überholt.

GRUB 2

GRUB2, wie es in vielen (allen?) neueren Distributionen verwendet wird, verwendet Konfigurationsdateien in /etc/grub.d/ .Modulkonfiguration könnte geändert werden, funktioniert aber noch nicht.

Das GRUB-Bootloader-Modul

Wie der Name schon sagt, können Sie mit diesem Modul GRUB einrichten. Wie beim LILO-Modul zeigt die Hauptseite, wenn Sie es aus der Hardware-Kategorie aufrufen, eine Liste von Symbolen, eines für jede Bootzeit-Option. Dieser Screenshot zeigt ein Beispiel.

Das GRUB-Bootloader-Modul

Das Symbol des Moduls wird nur angezeigt, wenn Webmin erkennt, dass GRUB auf Ihrem System installiert ist. Wenn es nicht sichtbar ist oder beim Aufrufen des Moduls ein Fehler angezeigt wird, ist GRUB nicht installiert. In diesem Fall wird wahrscheinlich LILO verwendet, und Sie sollten daher das Linux-Bootloader-Modul verwenden.

Eine Besonderheit von GRUB ist, dass es intern alle Festplatten mit ihrer BIOS-Plattennummer bezeichnet. hd0 ist das erste Laufwerk, das vom BIOS identifiziert wird, und hd0,0 ist die erste Partition auf diesem Laufwerk. Auf einem System mit nur IDE-Festplatten ist diese Nummerierung recht einfach - BIOS-Festplatte 0 ist der primäre Master oder /dev/hda unter Linux. Festplatte 2 (von GRUB hd1 genannt) ist der primäre Slave und so weiter. Auf einem System mit SCSI- und IDE-Laufwerken werden die Dinge jedoch komplexer. IDE-Festplatten kommen normalerweise vor SCSI in der BIOS-Reihenfolge, aber dies kann auf einigen Systemen umgekehrt sein. Glücklicherweise kann das GRUB-Modul in neueren Versionen von Webmin automatisch die Beziehung zwischen Linux-Gerätedateien und BIOS-Festplattennummern erkennen.

Booten eines neuen Linux-Kernels oder BSD mit GRUB

Wenn Sie gerade einen neuen Kernel kompiliert haben und ihn verwenden möchten, müssen Sie eine neue GRUB-Startoption hinzufügen.

Ein ähnlicher Prozess sollte befolgt werden, wenn Sie sowohl Linux als auch FreeBSD, NetBSD oder OpenBSD auf Ihrem System installiert haben und beim Booten eines davon auswählen möchten. Gehen Sie wie folgt vor, um dies einzurichten:

  1. Um einen Linux-Kernel zu booten, kopieren Sie nach dem Kompilieren dessen komprimierte Kernel-Image-Datei (normalerweise im Quellverzeichnis unter arch/i386/bzImage zu finden) in das /boot-Verzeichnis. Normalerweise sollte es in vmlinuz-_xx.yy.zz_ umbenannt werden, wobei xx.yy.zz ist die Kernel-Versionsnummer.
  2. Auf der Hauptseite des GRUB-Bootloaders klicken Sie auf die Add a new boot option Link, um zum Optionserstellungsformular zu gelangen.
  3. Geben Sie einen eindeutigen Namen für Ihren neuen Kernel in den Optionstitel ein B. linux-xx.yy.zz . Was auch immer Sie eingeben, wird beim Booten im GRUB-Menü angezeigt.
  4. Legen Sie die Boot-Image-Partition fest Feld auf Ausgewählt und wählen Sie die Partition, die Ihren Kernel enthält, aus der Liste daneben aus. Wenn die Partition nicht im Menü erscheint, müssen Sie Andere wählen Geben Sie stattdessen die Festplatte und die Partition in das Feld daneben ein, und zwar im Format hd_X_,_Y_, das von GRUB verwendet wird. Beispiel:hd2,1 wäre die zweite Partition auf BIOS-Laufwerk 3.
  5. Für zu bootendes Betriebssystem , wählen Sie Linux-Kernel aus und geben Sie den Pfad zur komprimierten Image-Datei des Kernels in das Feld daneben ein. Um zusätzliche Argumente an den Kernel zu übergeben, geben Sie diese in die Kernel-Optionen ein Feld darunter. Für FreeBSD müssen Sie außerdem Linux-Kernel auswählen und geben Sie /boot/loader ein ins Feld. Es sind keine zusätzlichen Kernel-Argumente erlaubt. Wählen Sie für NetBSD oder OpenBSD Linux-Kernel ebenfalls und geben Sie type=netbsd /netbsd-elf ein .
  6. Wenn das Stammverzeichnis auf Ihrem System von einem Gerät gemountet wird, das nicht in den Linux-Kernel kompiliert ist (z. B. eine SCSI-Festplatte oder ein Hardware-RAID-Controller), müssen Sie eine anfängliche RAM-Festplatte erstellen, die die erforderlichen Kernel-Module enthält Zugriff auf das Root-Dateisystem. Der einfachste Weg, um festzustellen, ob dies erforderlich ist, besteht darin, sich andere vorhandene Boot-Kernel-Konfigurationen anzusehen. So erstellen Sie eine anfängliche RAM-Disk-Datei im /boot-Verzeichnis für die Kernel-Version xx.yy.zz , müssen Sie einen Befehl wie  ausführen:mkinitrd /boot/initrd-_xx.yy.zz_ xx.yy.zz Legen Sie dann die Initiale Ramdisk-Datei fest Feld auf den Pfad zu der neu erstellten Datei.
  7. Klicken Sie abschließend auf Erstellen Taste. Solange bei Ihrer Eingabe keine Fehler festgestellt wurden, kehren Sie zur Hauptseite des Moduls zurück, die nun ein zusätzliches Symbol für den neuen Kernel enthält.
  8. Um in den neuen Kernel zu booten, müssen Sie Ihr System neu starten. Wenn GRUB beim Booten geladen wird, zeigt es ein Menü mit verfügbaren Boot-Optionen an, aus dem Sie den neu hinzugefügten Kernel auswählen können. Beachten Sie unbedingt die Debugging-Ausgabe und die Fehlermeldungen, die der Kernel beim Booten anzeigt, damit Sie das Problem diagnostizieren können, wenn etwas schief geht. Wenn es ein Problem gibt, müssen Sie möglicherweise neu starten und die alte Kerneloption auswählen und dann Webmin verwenden, um die GRUB-Konfiguration zu reparieren.

Sobald Sie eine neue Kernel-Boot-Option erstellt haben, können Sie sie bearbeiten, indem Sie auf das entsprechende Symbol auf der Hauptseite des Moduls klicken. Auf dem Bearbeitungsformular können alle Felder bearbeitet und die Änderungen durch Klicken auf Speichern gespeichert werden Schaltfläche, oder der Kernel kann durch Klicken auf Löschen entfernt werden stattdessen. Seien Sie immer vorsichtig, wenn Sie Kernel-Konfigurationen bearbeiten, die Sie nicht selbst erstellt haben, da ein Fehler dazu führen kann, dass das System nicht mehr bootfähig ist.

Booten eines anderen Betriebssystems mit GRUB

Wenn auf Ihrem System ein anderes Betriebssystem auf einer anderen Festplatte oder Partition installiert ist, können Sie GRUB so konfigurieren, dass es anstelle von Linux beim Booten ausgewählt und gestartet werden kann. Wenn Sie FreeBSD, NetBSD oder OpenBSD booten möchten, lesen Sie stattdessen den Abschnitt *Einen neuen Linux-Kernel oder BSD booten* oben - aber für Windows, UnixWare oder jedes andere Betriebssystem sind die folgenden Schritte zu befolgen:

  1. Klicken Sie auf der Hauptseite des Moduls auf Neue Startoption hinzufügen um das Erstellungsformular für Boot-Optionen aufzurufen.
  2. Geben Sie einen eindeutigen Namen für in den Optionstitel ein Feld, wie Fenster.
  3. Legen Sie die Boot-Image-Partition fest Feld auf Ausgewählt und wählen Sie die Partition, die das andere Betriebssystem enthält, aus der Liste daneben aus. Wenn die Partition nicht im Menü erscheint, müssen Sie Andere wählen Geben Sie stattdessen die Festplatte und die Partition in das Feld daneben ein, und zwar im Format hd_X_,_Y_, das von GRUB verwendet wird.
  4. Ändern Sie das Betriebssystem zum Booten auf Anderes Betriebssystem .
  5. Normalerweise führt GRUB den Bootloader einfach im ersten Sektor der gewählten Partition aus. Allerdings muss dort nicht immer ein Bootloader vorhanden sein, wenn beispielsweise das Betriebssystem seinen Loader normalerweise in den Master Boot Record schreibt. Wenn das andere Betriebssystem Windows ist, wählen Sie die *From Chainloader-Datei* aus und geben Sie +1 ein in das Feld daneben. Sie müssen auch die Aktion Root-Partition erstellen? aktivieren Möglichkeit. Wenn Sie SCO UnixWare booten, müssen Sie auch *From chainloader file* auswählen und force +1 eingeben in das Feld daneben. Die Option *Root-Partitionsaktion erstellen?* muss ebenfalls ausgewählt werden.
  6. Klicken Sie auf Erstellen Schaltfläche, um das neue Betriebssystem hinzuzufügen. Ihr Browser kehrt zur Hauptseite des Moduls zurück, die nun ein Symbol für Ihre neue Boot-Option enthält.
  7. Um in das andere Betriebssystem zu booten, starten Sie Ihr System neu und wählen Sie es beim Booten aus dem GRUB-Menü aus.

Wie bei den Boot-Optionen für Linux-Kernel können Sie die Option für ein anderes Betriebssystem bearbeiten oder löschen, indem Sie auf das Symbol auf der Hauptseite des Moduls klicken. Alle Änderungen werden sofort wirksam und beim nächsten Neustart des Systems verwendet.

Globale GRUB-Optionen bearbeiten

GRUB hat mehrere Optionen, die für alle bootfähigen Kernel und Betriebssysteme gelten. Gehen Sie wie folgt vor, um diese globalen Optionen zu bearbeiten:

  1. Klicken Sie auf Globale Optionen bearbeiten Schaltfläche auf der Hauptseite des Moduls, die Sie zum Optionsformular führt.
  2. Um zu steuern, welcher Kernel automatisch gebootet wird, wenn der Benutzer innerhalb des konfigurierten Zeitlimits keinen aus dem GRUB-Menü auswählt, ändern Sie die Standard-Boot-Option Feld. Wenn die von Ihnen gewählte Option nicht geladen werden kann, greift GRUB auf das zurück, was in der Fallback-Startoption ausgewählt ist Feld.
  3. Um die Zeitspanne zu ändern, die GRUB darauf wartet, dass der Benutzer eine Boot-Option wählt, bevor es stattdessen die Standardeinstellung verwendet, bearbeiten Sie das Feld *Timeout before using default *.
  4. Das GRUB-Boot-Menü ermöglicht Benutzern Dinge wie das Ändern von Kernel-Parametern und das Lesen beliebiger Dateien auf Linux-Dateisystemen. Um dies zu verhindern, geben Sie ein Passwort in das Boot-Passwort ein Feld. Dadurch werden Benutzer auf die verfügbaren Startoptionen beschränkt, es sei denn, das Kennwort wird eingegeben. Außerdem Bootoptionen, bei denen das Passwort gesperrt? Feld gesetzt wurde, ist ebenfalls nicht auswählbar.
  5. Wenn Sie fertig sind, klicken Sie auf Speichern klicken und Sie kehren zur Hauptseite des Moduls zurück.
Boot-Option hinzufügen

GRUB installieren

Wenn Sie den LILO-Bootloader verwendet haben und zu GRUB wechseln möchten, müssen Sie ihn auf demselben Master-Boot-Datensatz oder derselben Partition installieren, die LILO derzeit verwendet. Dies muss nur einmal durchgeführt werden, im Gegensatz zu LILO, das jedes Mal neu installiert werden muss, wenn seine Konfiguration geändert wird.

Um GRUB zu installieren, gehen Sie wie folgt vor:

  1. Klicken Sie auf der Hauptseite des Moduls auf Globale Optionen bearbeiten Taste.
  2. Über GRUB auf Festplatte/Partition installieren Wählen Sie im Menü die Festplatte oder Partition aus, auf der GRUB installiert werden soll. Dies ist normalerweise die erste Festplatte in Ihrem System.
  3. Klicken Sie auf Speichern Schaltfläche, um zur Hauptseite des Moduls zurückzukehren.
  4. Klicken Sie auf GRUB installieren , um sie auf das in Schritt 2 ausgewählte Laufwerk oder die Partition zu schreiben.
  5. Damit Ihr System von nun an in Linux gebootet werden kann, erstellen Sie alle notwendigen Kernel-Boot-Optionen, wie im Abschnitt *Booten eines neuen Linux-Kernels oder BSD* beschrieben. Wenn Sie vorher neu booten, ist es unmöglich, Linux erneut zu starten!

Webmin
  1. GRUB auf EUFI-fähigem System

  2. Ubuntu-Stiefel zur Grub-Rettung?

  3. Lösung für den Ubuntu-Startfehler „No such partition“

  4. Größe der Bootpartition ändern

  5. Ist eine /boot-Partition immer notwendig?

Ubuntu-Boot-Reparatur

So reparieren Sie Ihr Grub 2 unter Ubuntu

So installieren Sie den BURG-Bootloader in Ubuntu

So installieren Sie Grub Customizer unter Ubuntu

Beheben Sie, dass Grub für Windows- und Linux-Dual-Boot-Systeme nicht angezeigt wird

CentOS / RHEL 7 :Bootvorgang