Il problema
Il sistema è bloccato al prompt grub> come mostrato di seguito.
Come riprendersi da tale situazione.
La soluzione
Quando ricevi un errore superiore, nella maggior parte dei casi hai una partizione di avvio danneggiata.
1. Per risolvere il problema, esegui dalla riga di comando di grub:
grub> find /grub/stage1 find /grub/stage1 (hd0,0)
Il comando precedente cercherà stage1 (lo stage1 viene inserito nell'MBR e successivamente viene letto dal BIOS) questo elencherà dove risiede esattamente la partizione di avvio, in questo caso è hd0,0.
2. Ripristina la partizione di avvio su hd0,0 (prima partizione sul primo disco) come nell'esempio sopra dal comando trova.
grub> root (hd0,0) Filesystem type is ext4fs, partition type 0x83
3. Quindi imposta grub sul primo disco (hd0) – come nell'esempio sopra, lo stage1 si trova su hd0.
grub>setup (hd0) Checking if "/boot/grub/stage1" exists... yes Checking if "/boot/grub/stage2" exists... yes Checking if "/boot/grub/e2fs_stage1_5" exists... yes Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 15 sectors are embedded. succeeded Running "install /boot/grub/stage1 d (hd0) (hd0)1+15 p (hd0,1)/boot/grub/stage 2 /boot/grub/menu.lst"... succeeded Done.
4. Dopo che il comando avrà esito positivo, riavvia il server.
grub> reboot
Verifica se il sistema si avvia ora senza alcun problema.
Ulteriore risoluzione dei problemi
Se il problema persiste e di nuovo il sistema si arresta sulla riga di comando di grub, verifica se grub.conf è presente e mantiene i valori corretti:
grub> find (hd0,0)/grub/grub.conf find (hd0,0)/grub/grub.conf (hd0,0)
grub> cat (hd0,0)/grub/grub.conf cat (hd0,0)/grub/grub.conf # grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/mapper/vg_lnxovmsan2076-lv_root # initrd /initrd-[generic-]version.img #boot=/dev/sda default=0 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Oracle Linux Server Unbreakable Enterprise Kernel (3.8.13-16.2.1.el6uek.x86_64) root (hd0,0) kernel /vmlinuz-3.8.13-16.2.1.el6uek.x86_64 ro root=/dev/mapper/vg_root-lv_root rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=uk LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 rd_LVM_LV=vg_root/lv_root rd_LVM_LV=vg_root/lv_swap rd_NO_DM rhgb quiet crashkernel=256M@64M initrd /initramfs-3.8.13-16.2.1.el6uek.x86_64.img [Hit return to continue]
Se viene individuato un problema con i parametri di avvio del kernel, puoi fornire manualmente le stringhe di avvio del kernel:
grub> linux /boot/vmlinuz-3.8.13-16.2.1.el6uek.x86_64 ro root=/dev/mapper/vg_root-lv_root rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=uk grub> boot
Se ciò non aiuta o, ad esempio, il file grub.conf è mancante o durante l'esecuzione di cat su grub.conf ottenendo ad esempio l'output seguente:
grub> cat (hd0,0)/grub/grub.conf cat (hd0,0)/grub/grub.conf ???????????????????????????????????????????????????????????????? ???????????????????????????????????????????????????????????????? ????????????????????????????????????????????????????????????????
Sarà necessario avviare il sistema in modalità Rescue e verificare cosa sta succedendo – sopra l'output con '???' indica la corruzione di root-fs. Se grub continua a non funzionare anche dopo aver ripristinato il file grub.conf e continuano a ricevere errori di grub sull'immagine di avvio, sarà necessario reinstallare il sistema.
Solo per l'avvio UEFI
Per ripristinare Grub nell'avvio UEFI, esegui il comando seguente:
# efibootmgr -v
Successivamente esegui:grub-install
# grub-install /dev/sda