Permanentemente fixa a localização absoluta da pasta GRUB

0

Recentemente acertei um problema relativamente comum quando o instalador do 16.04 desconfigura a localização da pasta do GRUB. Nesses casos, o sistema inicializa em um shell de recuperação com as seguintes mensagens:

error: file '/grub/i386-pc/normal.mod' not found.
Entering rescue mode...
grub rescue>

Isso significa que o GRUB foi capaz de inicializar, mas está procurando por seus módulos no lugar errado. A solução bem conhecida é instruir o GRUB rapidamente na localização de seus módulos. No meu caso, isso é:

grub rescue> set prefix=(hd1,msdos2)/boot/grub
grub rescue> insmod normal
grub rescue> normal

Isso retoma o processo de inicialização com sucesso. No entanto, na próxima vez que o sistema for inicializado, o GRUB retornará ao console de resgate 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?

Atualização : eu segui sugestão de WinEunuuchs2Unix e tentei a ferramenta Boot-Repair . Primeiro, verifiquei a localização do GRUB e, aparentemente, está correto: /boot/grub on sdg2 .

Eu então executei o diagnóstico Reparo recomendado, que produziu este resultado . Aqui está novamente a localização correta 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?

    
por Luís de Sousa 06.11.2017 / 10:00

1 resposta

0

A chave para entender o que estava errado foi a necessidade de instruir o GRUB para hd1 . O BIOS é inicializado por padrão como hd0 e nesta estação de trabalho havia restos de um MBR que tentava carregar um GRUB depois de instalado naquele disco (daí a referência a /grub em vez de /boot/grub ).

A solução para isso foi alterar a ordem de inicialização dos discos internos no BIOS. Com hd1 em 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 re-conectados ao quadro.

    
por Luís de Sousa 14.11.2017 / 17:01