Unter einigen seltenen Bedingungen kann es zu einer Beschädigung des GRUB-Loaders kommen. Dieser Beitrag zeigt, wie Sie den GRUB-Loader unter CentOS/RHEL 5 oder 6 neu installieren.
Woher wissen Sie, dass GRUB beschädigt ist
Nachfolgend sind einige der Symptome aufgeführt, die bei einer Beschädigung des GRUB-Loaders auftreten würden.
1. Das GRUB-Menü wird beim Booten des Servers nicht angezeigt
2. Starten Sie den Server mithilfe der Installations-DVD im Rettungsmodus und überprüfen Sie den Header der Bootdiskette, wenn der GRUB-Loader beschädigt ist:
# file -s /dev/sda /dev/sda: x86 boot sector; partition 1: ID=0x83, active, starthead 1, startsector 63, 64998927 sectors; partition 2: ID=0x82, starthead 254, startsector 64998990, 2104515 sectors
Während ein guter wie folgt aussieht:
# file -s /dev/sda /dev/sda: x86 boot sector; partition 1: ID=0x83, active, starthead 1, startsector 63, 64998927 sectors; partition 2: ID=0x82, starthead 254, startsector 64998990, 2104515 sectors, code offset 0x48
Die Ausgabe kann je nach Version variieren, aber der entscheidende Punkt ist, dass in der ersten Ausgabe „Code-Offset 0x48 fehlt ‘, was ein Indikator für den GRUB-Stufe-1-Code ist.
GRUB-Loader neu installieren
Nehmen wir an, dass das Bootlaufwerk sda ist , die / Partition ist sda2 , und /boot Partition ist sda1 .
1. Starten Sie den Server im Rettungsmodus und mounten Sie das Dateisystem automatisch. Bitte beachten Sie den folgenden Beitrag zum Booten des Servers im Rettungsmodus.
CentOS / RHEL 6 :So booten Sie in den Rettungsmodus2. Die / Partition würde unter /mnt/sysimage gemountet werden automatisch. Falls nicht, mounten Sie es manuell:
# mount /dev/sda2 /mnt/sysimage
3. Hängen Sie die /boot-Partition und /dev manuell ein, um die Chroot-Umgebung vorzubereiten:
# mount /dev/sda1 /mnt/sysimage/boot # mount -o bind /dev /mnt/sysimage/dev # chroot /mnt/sysimage
4. Installieren Sie den GRUB-Loader erneut
# grub-install /dev/sda
Starten Sie den Server neu und Sie sollten das GRUB-Menü wieder sehen können.
# rebootCentOS / RHEL 7 :So installieren Sie GRUB2 aus dem Rettungsmodus neu
Grub auf einem Multipath-Gerät neu installieren
Führen Sie die folgenden Schritte aus, wenn ein Server, der zum Booten von einem Storage Area Network (SAN) mit Multipath-Geräten konfiguriert ist, eine Neuinstallation von Grub erfordert. Grub erfordert eine Neuinstallation, wenn der Master Boot Record (MBR) auf dem Startgerät beschädigt oder von anderen Bootloadern überschrieben wird. Es ist auch in Situationen erforderlich, in denen sich das Boot-Gerät nach der Installation ändert, z. B. wenn das Booten von der SAN-Konfiguration aktiviert wird, nachdem der Server installiert wurde, oder wenn ein Single-Path-SAN-Boot-Gerät neu konfiguriert wird, um Multipath zu werden.
1. Booten Sie den Server im Rescue-Modus mit aktiviertem Multipathing, indem Sie den „linux rescue mpath verwenden " Boot-Option. Um die aktuelle Multipath-Konfiguration anzuzeigen, können Sie den folgenden Befehl in einer Rettungsumgebung ausführen:
# multipath -ll
2. Bearbeiten Sie /etc/fstab, um Multipath-Gerätenamen (/dev/mapper/mpathX) anstelle von einfachen Namen (/dev/sdY) zum Mounten von /boot zu verwenden. Wir empfehlen die Verwendung der UUID von /boot, um die Geräteidentifikation zuverlässiger zu machen.
3. Fügen Sie das Multipath-Gerät mit /boot zu grub hinzu und installieren Sie den Bootloader mit:
# grub grub> device (hd0) /dev/mapper/mpatha grub> root (hd0,0) grub> setup (hd0) grub> quit
Hinweis :Der Befehl grub-install funktioniert nicht für Multipath-Geräte.
4. Generieren Sie die anfängliche Ramdisk neu, siehe unten post.
CentOS / RHEL 6 :So erstellen Sie das anfängliche Ramdisk-Image neuCentOS / RHEL 5 :So erstellen Sie das anfängliche Ramdisk-Image neu