Corrija permanentemente a localização absoluta da pasta GRUB

Corrija permanentemente a localização absoluta da pasta GRUB

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/grubon 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 /grubvez de /boot/grub).

A solução para isso foi alterar a ordem de inicialização dos discos internos no BIOS. Em hd1primeiro 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.

informação relacionada