In alcune rare condizioni, potresti ottenere un danneggiamento del caricatore di GRUB. Questo post illustra come reinstallare il caricatore GRUB su CentOS/RHEL 5 o 6.
Come fai a sapere che GRUB è corrotto
Di seguito sono riportati alcuni dei sintomi che vedresti in caso di danneggiamento del caricatore di GRUB.
1. Il menu di GRUB non viene visualizzato all'avvio del server
2. Avvia il server in modalità di ripristino utilizzando il DVD di installazione e controlla l'intestazione del disco di avvioSe il caricatore di GRUB è danneggiato:
# 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
Mentre uno buono sembra:
# 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
L'output può variare a seconda delle versioni, ma il punto chiave è che nel primo output manca "code offset 0x48 ', che è un indicatore del codice GRUB Stage 1.
Reinstallazione del caricatore GRUB
Supponiamo che il disco di avvio sia sda , il / la partizione è sda2 e /boot la partizione è sda1 .
1. Avviare il server in modalità di ripristino e montare automaticamente il filesystem. Fare riferimento al post seguente per avviare il server in modalità di ripristino.
CentOS / RHEL 6:come avviare in modalità di ripristino2. Il / la partizione verrebbe montata in /mnt/sysimage automaticamente. In caso contrario, montalo manualmente:
# mount /dev/sda2 /mnt/sysimage
3. Montare la partizione /boot e /dev manualmente, per preparare l'ambiente chroot:
# mount /dev/sda1 /mnt/sysimage/boot # mount -o bind /dev /mnt/sysimage/dev # chroot /mnt/sysimage
4. Reinstallare il caricatore GRUB
# grub-install /dev/sda
Riavvia il server e dovresti essere in grado di visualizzare nuovamente il menu di GRUB.
# rebootCentOS / RHEL 7:come reinstallare GRUB2 dalla modalità di ripristino
Reinstalla grub su un dispositivo multipath
Segui i passaggi seguenti quando un server configurato per l'avvio da una SAN (Storage Area Network) che utilizza dispositivi multipath richiede la reinstallazione di grub. Grub richiede la reinstallazione ogni volta che il Master Boot Record (MBR) sul dispositivo di avvio viene danneggiato o sovrascritto da altri caricatori di avvio. È inoltre richiesto in situazioni in cui il dispositivo di avvio cambia dopo l'installazione, ad esempio quando viene abilitato l'avvio dalla configurazione SAN dopo l'installazione del server o quando un dispositivo di avvio SAN a percorso singolo viene riconfigurato per diventare multipath.
1. Avviare il server in modalità di ripristino con il multipathing abilitato utilizzando "linux rescue mpath ” opzione di avvio. Per visualizzare la configurazione multipath corrente, puoi eseguire il seguente comando da un ambiente di ripristino:
# multipath -ll
2. Modificare /etc/fstab per utilizzare nomi di dispositivi multipath (/dev/mapper/mpathX) invece di nomi semplici (/dev/sdY) per montare /boot. Si consiglia di utilizzare l'UUID di /boot per rendere più affidabile l'identificazione del dispositivo.
3. Aggiungi il dispositivo multipath contenente /boot a grub e installa il boot loader usando:
# grub grub> device (hd0) /dev/mapper/mpatha grub> root (hd0,0) grub> setup (hd0) grub> quit
Nota :Il comando grub-install non funziona per i dispositivi multipath.
4. Rigenera il ramdisk iniziale facendo riferimento al post sotto.
CentOS/RHEL 6:Come ricostruire l'immagine Ramdisk inizialeCentOS/RHEL 5:Come ricostruire l'immagine Ramdisk iniziale