Za některých výjimečných podmínek může dojít k poškození zavaděče GRUB. Tento příspěvek ukazuje, jak znovu nainstalovat zavaděč GRUB na CentOS/RHEL 5 nebo 6.
Jak víte, že je GRUB poškozen
Níže jsou uvedeny některé příznaky, které byste viděli, když došlo k poškození zavaděče GRUB.
1. Nabídka GRUB se při spouštění serveru nezobrazí
2. Spusťte server do záchranného režimu pomocí instalačního DVD a zkontrolujte hlavičku spouštěcího disku. Pokud je zavaděč GRUB poškozen:
# 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
Zatímco dobrý vypadá takto:
# 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
Výstup se může u různých verzí lišit, ale klíčové je, že na prvním výstupu chybí „offset kódu 0x48 ‘, což je indikátor kódu GRUB Stage 1.
Přeinstalování zavaděče GRUB
Předpokládejme, že spouštěcí disk je sda , / oddíl je sda2 a /boot oddíl je sda1 .
1. Spusťte server do záchranného režimu a automaticky připojte souborový systém. Spuštění serveru v záchranném režimu naleznete v níže uvedeném příspěvku.
CentOS / RHEL 6 :Jak spustit systém do záchranného režimu2. / oddíl by byl připojen pod /mnt/sysimage automaticky. Pokud ne, připojte jej ručně:
# mount /dev/sda2 /mnt/sysimage
3. Ručně připojte oddíl /boot a /dev, abyste připravili prostředí chroot:
# mount /dev/sda1 /mnt/sysimage/boot # mount -o bind /dev /mnt/sysimage/dev # chroot /mnt/sysimage
4. Znovu nainstalujte zavaděč GRUB
# grub-install /dev/sda
Restartujte server a měli byste vidět nabídku GRUB zpět.
# rebootCentOS / RHEL 7 :Jak přeinstalovat GRUB2 ze záchranného režimu
Přeinstalujte grub na vícecestné zařízení
Pokud server nakonfigurovaný pro spouštění ze sítě SAN (Storage Area Network) pomocí vícecestných zařízení vyžaduje přeinstalaci grub, postupujte podle následujících kroků. Grub vyžaduje reinstalaci vždy, když je hlavní spouštěcí záznam (MBR) na spouštěcím zařízení poškozen nebo přepsán jinými zavaděči. Je také vyžadován v situacích, kdy se zaváděcí zařízení po instalaci změní, například když je po instalaci serveru povoleno spouštění z konfigurace SAN nebo když je jednocestné zaváděcí zařízení SAN překonfigurováno tak, aby se stalo vícecestným.
1. Spusťte server v záchranném režimu s povoleným multipathingem pomocí „linux rescue mpath ” možnost spouštění. Chcete-li zobrazit aktuální konfiguraci více cest, můžete v záchranném prostředí spustit následující příkaz:
# multipath -ll
2. Upravte /etc/fstab tak, aby používal vícecestné názvy zařízení (/dev/mapper/mpathX) místo prostých názvů (/dev/sdY) pro Mount /boot. Doporučujeme použít UUID /boot, aby byla identifikace zařízení spolehlivější.
3. Přidejte vícecestné zařízení obsahující /boot do grub a nainstalujte zavaděč pomocí:
# grub grub> device (hd0) /dev/mapper/mpatha grub> root (hd0,0) grub> setup (hd0) grub> quit
Poznámka :Příkaz grub-install nefunguje pro vícecestná zařízení.
4. Znovu vygenerujte původní ramdisk podle níže uvedeného příspěvku.
CentOS / RHEL 6 :Jak znovu vytvořit počáteční obrázek RamdiskuCentOS / RHEL 5 :Jak znovu vytvořit počáteční obrázek Ramdisku