Recentemente, encontrei um problema relativamente comum quando o instalador 16.04 configura incorretamente o local da pasta GRUB. Nesses casos, o sistema inicializa em um shell de resgate com as seguintes mensagens:
error: file '/grub/i386-pc/normal.mod' not found.
Entering rescue mode...
grub rescue>
Isso significa que o GRUB conseguiu inicializar, mas está procurando seus módulos no lugar errado. Osolução bem conhecidaé instruir o GRUB instantaneamente sobre a localização de seus módulos. No meu caso é:
grub rescue> set prefix=(hd1,msdos2)/boot/grub
grub rescue> insmod normal
grub rescue> normal
Isso retoma o processo de inicialização com êxito. No entanto, na próxima vez que o sistema for inicializado, o GRUB retornará novamente ao console de recuperação e deverá ser instruído novamente sobre a localização de seus módulos. Eu reinstalei o GRUB, mas isso não resolveu o problema.
Como o GRUB pode ser permanentemente instruído sobre a localização correta de seus módulos?
Atualizar: Eu seguia sugestão de WinEunuuchs2Unixe tentei oReparo de inicializaçãoferramenta. Verifiquei primeiro a localização do GRUB e aparentemente está correta: /boot/grub
on sdg2
.
Em seguida, executei o diagnóstico de reparo recomendado, que produziuesta saída. Aqui é novamente relatado o local correto do GRUB:
sdg2: __________________________________________________________________________
File system: ext4
Boot sector type: -
Boot sector info:
Operating System: Ubuntu 16.04.3 LTS
Boot files: /boot/grub/grub.cfg /etc/fstab
/boot/grub/i386-pc/core.img
No entanto, há um erro no final do relatório que aponta para um problema com device.map
:
grub-probe: error: cannot find a GRUB drive for /dev/sdi1. Check your device.map.
Unhide GRUB boot menu in sdg2/boot/grub/grub.cfg
An error occurred during the repair.
Alguma sugestão sobre o que pode ser feito sobre isso?
Responder1
A chave para entender o que estava errado era a necessidade de instruir o GRUB para hd1
. OO BIOS inicializa por padrão parahd0
, e nesta estação de trabalho havia restos de um MBR que tentou carregar um GRUB uma vez instalado naquele disco (daí a referência a em /grub
vez de /boot/grub
).
A solução para isso foi alterar a ordem de inicialização dos discos internos no BIOS. Em hd1
primeiro lugar, o processo de inicialização é concluído com sucesso, sem intervenção humana. Em alguns BIOS pode não ser possível modificar a ordem de inicialização dos discos internos; nesses casos, os discos devem ser reconectados à placa.