GRUB Rescue - configurando inicialização e prefixo repetidas vezes

GRUB Rescue - configurando inicialização e prefixo repetidas vezes

Quase não sei nada sobre codificação no Ubuntu. Atualmente estou inicializando o Ubuntu 16.04 LTS e o Windows 10. Tudo estava bem. Mas hoje ocorreu um erro dizendo

"não é possível encontrar o sistema de arquivos"

e então grubo resgate começa. Depois de pesquisar por algum tempo, descobri uma solução que diz para fazer o seguinte:

ls
set prefix=(hd0,msdos5)/boot/grub
insmod normal
normal

Eu sei que isso lsestá listando partições do disco rígido (deixe-me saber se estiver errado). Então (em set prefix) preciso selecionar uma partição. Ocorreu um erro quando selecionei msdos5. Depois de algumas tentativas, selecionei msdos6. Então correu. Mas o problema é que a partir de outra solução para este problema escrevi este código:

set boot=(hd0,msdos6)

Acho que errei. Provavelmente envolve qual partição dos discos rígidos vai inicializar. Agora, meu laptop está funcionando depois de escrever este código e toda vez que ligo o laptop a inicialização travou no início mostrando o mesmo erro e preciso escrever o código a cada tempo que preciso para executar o laptop. Como posso resolver esse problema? Provavelmente também preciso saber a partição que está inicializando (msdos*) e não sei como encontrá-la.

Responder1

Eu tenho uma solução para esse tipo de problema se grub rescue>o prompt ocorrer durante a inicialização e você precisar escrever um código como:

grub rescue> ls
grub rescue> set boot=(hd0,msdos*)
grub rescue> set prefix=(hd0,msdos*)/boot/grub
grub rescue> insmod normal
grub rescue> normal

Após a inicialização, o sistema operacional baseado em Linux/Ubuntu será carregado, abra um terminal e escreva o comando:

useranf@ ~ $ sudo update-grub

então digite este comando:

useranf@ ~ $ sudo grub-install /dev/sda

após essas operações, finalmente reinicie o sistema.

Responder2

Na resposta acima de deepak bundela, acho que a seguinte linha precisa ser corrigida:

grub rescue> set boot=(hd0,msdos*)

para:

grub rescue> set root=(hd0,msdos*)

(estou repetindo o * como Bundela colocou para não desviar a atenção do verdadeiro problema)

não consegui encontrar uma variável de ambiente grub chamada boot e, pelo que me lembro, sempre foiset root=()

Estou um pouco confuso com todos os comentaristas que disseram que funcionou em suas distros. eles fizeram um set bootou um set root?

no grub rescue>prompt, se alguém apenas digitar set, listará todas as variáveis ​​​​env que foram definidas. em todas as minhas aventuras de resgate do grub, nunca vi a bootvariável env sendo listada.

informação relacionada