Aprenda a corrigir o erro de grub rescue e também como usar o grub para manipular e recuperar o boot de um disco com Windows corrompido!
| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile!
Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. Mais detalhes clicando aqui.
1. Introdução
Conforme já ensinamos aqui no site, o GRUB é uma das etapas fundamentais para o devido boot de qualquer sistema, principalmente o Linux e qualquer uma de suas distribuições.
Normalmente uma distro Linux sobrevive a diversos problemas e se recupera, mas há casos onde o GRUB pode corromper.
O problema reside quando surge uma tela inoportuna popularmente conhecida como grub rescure, onde o grub não identificou os discos/sistemas instalados e simplesmente parou ali o processo de boot, deixando-o somente com uma tela de prompt limitada chamada de grub rescue:
2. Opções de Correção
A seguir, as opções que você tem à mão corrigir e/ou contornar o erro grub rescue!
2.1 Grub Rescue
Dentro da própria famosa tela de prompt do error você pode fazer alguns comandos para corrigir imediatamente, antes de precisar partir para o LiveUSB propriamente dito.
GRUB RESCUE > echo $root
GRUB RESCUE > echo $prefix
Verifique se ambos estão diferentes, com certeza você tem um problema. O prefixo e o root costumam ser o mesmo disco e partição. Vamos corrigir:
Encontre o disco do seu sistema com:
GRUB RESCUE > ls
Veja que terá várias entradas, como por exemplo:
(hd0) (hd0,msdos0) (hd0,msdos1) (hd1) (hd1,msdos0) (hd1,msdos1)
A lógica é bastante simples, HD0 ou HD1 são os discos; enquanto msdos0 ou msdos1 são as partições na ordem em que estão nos discos. Se for UEFI, será GPT0 ou GPT1.
2.1.1 Configurando
Uma vez que com LS você encontrar a partição do sistema – nela o GRUB vai exibir todas as pastas normalmente encontradas na raiz, como proc, sys, boot, etc. – você faz os seguintes comandos, adaptando nas sessões em negrito os dados que encontrou:
GRUB RESCUE > set root=(hd1,msdos1)
GRUB RESCUE > set prefix=(hd1,msdos1)/boot/grub
GRUB RESCUE > insmod normal
GRUB RESCUE > normal
Ok, tudo pronto, reinicie seu sistema com CTRL ALT DEL!
A partir daqui é pro seu sistema já estar normalizado e bootar normalmente.
2.1.2 Problemas…
Numa rara situação, pode ser que você, após o reinicio, veja uma tela de GRUB mais simples em vez do GRUB RESCUE. Uma tela mais “comum”, do Minimal GRUB. Significa que você recuperou o sistema parcialmente, porém ainda faltou algo, o kernel e o initrd não foram localizados, você precisa aponta-los manualmente!
Nesse caso, vamos dar boot manualmente no Linux na “unha” até ele levantar por completo!
Bom, primeiro digite na tela do grub rescue e vá dando Enter conforme abaixo:
GRUB > insmod linux
GRUB > linux /vmlinuz root=/dev/sdXY
GRUB > initrd /initrd.img
GRUB > boot
Onde está sdXY, você precisa colocar a letra da sua unidade padrão, normalmente SDA1, mas depende, verifique atentamente! Assim que der ENTER após “boot”, o sistema vai inicializar normalmente. Agora você vai precisar reinstalar e atualizar o GRUB.
$ sudo grub-install /dev/sdXY
$ sudo grub-install --recheck /dev/sdXY
$ sudo update-grub2
Agora sim, GRUB reinstalado e devidamente atualizado, o problema não deve ocorrer novamente.
2.2 “Chrooting“
Essa é a opção mais “simples” pra quem tem um LiveUSB de seu sistema à mão para dar manutenção.
Primeiro confira onde está a partição do seu sistema:
$ sudo fdisk -l
Após localizar, monte-a com:
$ sudo mount -t ext4 /dev/sdXY /mnt
Mude em negrito o sistema de arquivos que está usando. Se for BTRFS, EXT3, XFS, etc.
Agora, instale novamente o GRUB nesse disco afetado com:
$ sudo grub-install --root-directory=/mnt /dev/sdX
Novamente, altere em negrito o caminho do disco que sofrerá a manutenção. É interessante atualizar o GRUB por via das duvidas:
$ sudo update-grub2
Após reiniciar, o sistema deve inicializar normalmente. Caso volte para a tela de GRUB > em vez de GRUB RESCUE >, volte ao passo 1.1 e faça a partir de 1.1.1.
2.3 COW
Quando estiver num LiveUSB, você pode se deparar com um fatídico erro do GRUB, que não deixa instalar no disco por haver problemas com o /COW montado.
Isso é uma base do sistema de arquivos que normalmente não se recomenda desmontar para não causar instabilidade no sistema.
Para contornar isso de uma forma não ortodoxa, rode os seguintes comandos:
$ sudo dd if=/dev/zero bs=1M count=1 of=cowfile
$ sudo mkfs -t vfat cowfile
$ sudo mv cowfile /cow
Assim o GRUB acha que a pasta /COW está apenas vazia e parará de dar o erro, permitindo fazer a instalação do GRUB no disco afetado. O método não afeta de forma alguma no sistema instalado!
2.4 Windows
Para casos excepcionais, pode acontecer de você ter problemas em bootar um Windows, seja por erros no dual boot, seja por problemas com uma partição Reservada pelo Sistema. Para casos assim o GRUB também pode ajudar!
- Primeiro entre em um LiveUSB. Lembre-se, se for UEFI/GPT, o sistema Linux deve inicializar como UEFI/GPT!
- Crie 2 pastas em /mnt:
$ sudo mkdir /mnt/efi
$ sudo mkdir /mnt/sistemaSe for Legacy/MBR/BIOS, não precisa da pasta EFI.
- Monte as partições fundamentais do HD nessas pastas, onde /mnt/efi será a “reservada pelo sistema” e o /mnt/sistema onde fica o Windows. Não vamos montar/usar as partições Recovery nem Microsoft System.
-
$ sudo mount /dev/sda2 /mnt/efi
$ sudo mount /dev/sda4 /mnt/sistema - Instale o GRUB nessas partições:
$ sudo grub-install –target x86_64-efi –boot-directory=/mnt/sistema –efi-directory=/mnt/efi/efi /dev/sda
Note que há um diretório EFI dentro de /mnt/efi! - Se for Legacy, o comando fica assim:
$ sudo grub-install –target=i386-pc –boot-directory=/mnt/sistema /dev/sdaApós isso reinicie seu PC. -
Se tudo ocorreu dentro dos conformes, você terá, na tela de seleção de dispositivo de boot, uma opção “nome-da-distro” e outra “Windows Boot Manager”.
- Se entrar na Windows Boot Manager, ele vai dar erro. Se entrar na “nome-da-distro” ele vai pro GRUB. – NÃO pode ser GRUB RESCUE! Se aparecer GRUB RESCUE, reinstale e confira se os comandos estão de acordo com o seu layout de discos.
- Dê boot e vá até o GRUB.
Volte até o tópico anterior 2.1, quando começar no 2.1.1, volte aqui!
A sequência de comandos para boot em partição Windows é:
insmod ntfs
insmod part_gpt
insmod chain
set root=(hd0,gpt2)
chainloader /efi/Microsoft/Boot/bootmgfw.efi
boot
OBS:
- Se for MBR/Legacy, não precisa da segunda linha part_gpt.
- Se for MBR/Legacy, troque gpt2 por msdos2, conforme seu layout descoberto no tópico 1.1 anteriormente referenciado!
Após esses comandos, seu Windows deve inicializar normalmente!
2.5 “Compression Type 0x3 not supported”
Esse erro pode ocorrer se você habilitou a compressão ZSTD em um sistema Linux e aplicou, por consequencia, a compressão no /boot. O GRUB do Ubuntu 20.10 em diante já suporta ZSTD! Isso se aplica apenas a versões anteriores à 20.04.
A solução pra corrigir isso, é levantar um liveUSB, montar o disco problemático com permissões de leitura e escrita, e rodar os comandos abaixo, adaptando-o conforme suas necessidades:
- Comprimir novamente com ZLIB:
$ sudo btrfs filesystem defrag -rc /mnt/disco…/boot - Desabilitar a compressão para novos arquivos:
# chattr -Rc /mnt/disco…/boot
Sendo /boot o caminho no disco que você viu o problema!
Monte-o em /mnt e faça o caminho completo.
Pode executar um “sudo update-grub2” para finalizar e reinicie a máquina.
Ela deve entrar normalmente.
3. Conclusão
O GRUB tem seus problemas, mas com certeza é um bom gerenciador de boot para Linux ou Windows, com diversas opções e ferramentas para as mais diversas finalidades e soluções de diversos problemas.
Por isso é até hoje o bootloader padrão da maioria das distros Linux!
#UrbanCompassPony
Autodidata, me aprofundei em sistemas operacionais baseados em UNIX®, principalmente Linux. Também procuro trazer assuntos correlacionados direta ou indiretamente, como automação, robótica e embarcados.
me salvou mto obg
Resolveu nada.. a maioria dos comandos da unknowmn command
Verifique se o comando está com $ no começo, o comando é sem $! Eu coloco o $ na linha pra indicar apenas.
🤦🏻♂️
O meu também 😔
Mano no meu todos retornou “unknown filesystem”.
Estava vendo no meu nootbook as partições do Linux foram todas excluídas tento fazer o boot mais e sistema no último código [insmod normal] da erro frustrante
Foi isso que eu acabei fazendo.
Mas no meu caso eu excluí a partição em que o linux estava,depois que eu reniciei meu PC apareceu error file ‘/boot/grub/i386-pc/normal.mod’ not found
Amigo, arruma essa linha aqui que está errada:
> $ sudo grub-install –root-directory=/mnt /dev/sdXY
É pra ser
> $ sudo grub-install –root-directory=/mnt /dev/sdX
Abraço!
Opa agradeço, corrigido!
certeza que salvou muita gente. esse é o espírito da comunidade linux. quem ficou insatisfeito precisa primeiro resolver a imaturidade para depois embarcar no maravilhoso mundo do pinguim
Obrigado deu certo, estou entrando no mundo Debian, e o grub tinha ido para o espaço, a explicação me ajudou muito, o sistema abriu perfeito. Precisa de paciência mas agradeço muito valeu
Deu certo aqui, infelizmente meu HD tá em warning a séculos. Kkkk Tô aguardando o novo. Rezando pra conseguir pelo menos ligar o PC pra poder instalar o windows no HD novo e recomeçar a vida. Obrigada! Li vários tutoriais mas o único que me tirou da tela do Grub rescue foi esse.
O meu depois de ls (hd0,gpt1)/boot/grup enter
Eu coloco insmod normal e dá erro de insmod.normal not fond
Verifica com a ajuda de um liveUSB de outro sistema se de fato a pasta ou partição /boot/grub existe e se não está corrompida. Dependendo do caso vale a pena reinstalar o GRUB. Se tiver muito dificil consertar, ainda vale a máxima premissa de formatar.
Os /boot/grub
gostari de saber se eata linha esta correta ou se falta algo estou com este b.o e nao consigo instalar o ubuntu
chainloader /efi/Microsoft/Boot/bootmgfw.efi
Essa linha é para o Windows, o Ubuntu a linha é outra
Você poderia me ajudar? Já tentei de tudo quanto e solução e nada.
Eu estava instalando um sistema parecido com Phoenix os, porém fiz de uma forma errada , eu acabei instalando o darkmatter executando o arquivo de programa dele, daí ele reiniciou meu Pc e foi pra o terminal do grub rescue, e até agora eu não consigo inicializar o windows normal, já tentei de tudo , mechi na bios e tudo, Já tentei todos comandos possíveis no terminal Grub rescue, Mas nada reiniciar meu Pc normalmente, Quando coloco até os comando insmod, diz que ” you need to load kernel first. Meu Pc é windows 7.
Eu instalei esse executavel em uma partição que eu já tinha criado, porém tinha formatado ela pra EXT4, ela era NFTS.
Possivelmente corrompeu o sistema de forma irreversível, melhor reinstalar ;/