Tenho um dual boot com AVLinux (distro baseado em Debian) e Windows 11 instalado em duas partições separadas e meu PC está usando EFI. Meu sistema estava indo bem até ontem, quando inicializei meu PC e obtive a tela preta do Grub com a mensagem de erro unknown filesystem. e um console grub rescue> para inserir comandos.
Abaixo está uma imagem da tela:
Seguindo a primeira resposta desta pergunta, consegui iniciar o menu do Grub a partir do console de recuperação do Grub usando ls
para localizar a partição do Linux onde o grub está instalado e então emitir os comandos para iniciar manualmente o módulo normal do kernel dentro da pasta do Grub. Considerando que (hd0,gpt4)
é meu Linux a partição (onde o Grub está instalado) eu emiti:
set prefix=(hd0,gpt4)/boot/grub
insmod normal
normal
Obtendo o menu do Grub e conseguindo iniciar ambos os sistemas operacionais
Infelizmente, tenho que emitir o mesmo comando em TODA inicialização porque simplesmente não consigo me livrar dessa tela...
Eu já segui praticamente todos os conselhos (como o que eu vinculei antes) que sugerem reinstalar o Grub usando
sudo grub-install /dev/sda
sudo update-grub
comandos (onde /dev/sda
se refere à unidade onde você deseja reinstalar o Grub, para mim deveria ser /dev/nvme0n1
), mas nada mudou.
Claro que também tentei seguir conselhos como este que sugere reinstalar o Grub a partir de uma versão ativa do Linux (para mim foi o Kali Linux) montando minha partição Linux (novamente, aquela com o Grub instalado /boot/grub
), minha partição EFI, a partição efivars e então usando chroot para executar o grub-install:
sudo mount /dev/sdXY /mnt
sudo mount /dev/sdXX /mnt/boot/efi
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
sudo chroot /mnt
mount -t efivarfs none /sys/firmware/efi/efivars
grub-install /dev/sdX
update-grub
exit
Com: sdX
= disco | sdXX
= partição efi | sdXY
= partição do sistema (aquela com o Grub instalado)
Mas, novamente, nada mudou.
Também tentei efibootmgr
alterar a ordem do bootorder e desabilitar alguns bootnums, mas não obtive resultados.
Eu até tentei usar o boot-repair , pois sabia que ele resolvia o problema para muitos, mas - novamente - nada...
Parece que no primeiro estágio da inicialização o Grub tenta iniciar seu menu do local errado e, portanto, tenho que definir manualmente o local /boot/grub
para obter a tela do menu. Infelizmente, não sei como verificar isso e, se sim, como configurar o Grub para procurar no lugar certo...
A propósito, não tenho certeza, mas acho que o problema surgiu depois de uma atualização do Windows.
Aqui está a lista das minhas partições como pode ser vista no GParted:
onde /dev/nvme0n1p3
está minha partição do Windows e /dev/nvme0n1p4
a do Linux
E aqui está a saída das configurações do efibootmgrefibootmgr -v
obtidas emitindo :
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000,0002,0001,0006,0003,0007,0008,0009,000A
Boot0000* Windows Boot Manager HD(1,GPT,8b97638e-a366-4f45-be4e-60f9ef16f8dc,0x800,0x32000)/File(\EFI\MX21\grubx64.efi)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}....................
Boot0001* ubuntu HD(1,GPT,8b97638e-a366-4f45-be4e-60f9ef16f8dc,0x800,0x32000)/File(\EFI\ubuntu\shimx64.efi)
Boot0002* MX21 HD(1,GPT,8b97638e-a366-4f45-be4e-60f9ef16f8dc,0x800,0x32000)/File(\EFI\MX21\grubx64.efi)
Boot0003* debian HD(1,GPT,8b97638e-a366-4f45-be4e-60f9ef16f8dc,0x800,0x32000)/File(\EFI\debian\grubx64.efi)
Boot0006* mx HD(1,GPT,8b97638e-a366-4f45-be4e-60f9ef16f8dc,0x800,0x32000)/File(\EFI\mx\grubx64.efi)
Boot0007* Windows Boot Manager HD(1,GPT,8b97638e-a366-4f45-be4e-60f9ef16f8dc,0x800,0x32000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)..BO
Boot0008* UEFI:CD/DVD Drive BBS(129,,0x0)
Boot0009* UEFI:Removable Device BBS(130,,0x0)
Boot000A* UEFI:Network Device BBS(131,,0x0)
Alguém tem alguma pista sobre isso? Não sei mais o que tentar...
Ok, resolvi.
O problema era que o firmware UEFI estava executando uma das entradas de inicialização incorretas na minha partição EFI; mais especificamente, era o Boot0000 que você pode ver na saída do efibootmgr.
No meu caso, não consegui reorganizar a ordem de inicialização usando o efibootmgr, mas consegui fazer isso alterando as prioridades de inicialização do BBS definidas no meu firmware UEFI. Mais precisamente, os passos foram:
Uma reinicialização final e funcionou perfeitamente.
Espero que isso ajude outra pessoa
O problema é quase certamente devido à pequena partição EFI (100 MB). Quando o Windows atualizou (se essa foi a causa), pode ter perturbado a instalação para abrir espaço. Devo dizer que não posso explicar todos os sintomas que você está vendo, mas posso dizer que 100 MB mal é grande o suficiente para inicializar um SO, muito menos dois.
A maioria dos BIOSes suporta múltiplas partições EFI, e criar outra (pode muito bem ter 1 GB de tamanho) é provavelmente a melhor solução sem uma grande reorganização de disco. Eu inicializaria seu instalador ao vivo e usaria o gparted para reduzir o tamanho do p4 em 1G, no espaço liberado, criaria um sistema de arquivos fat32 com os sinalizadores de inicialização definidos como p1. Em seguida, faça o reparo de inicialização manual usando a nova partição EFI para reinstalar o grub. Agora você terá duas entradas de menu de inicialização do BIOS para o Kali, e pode precisar usar tentativa e erro para encontrar a correta. Para consertar isso...
Você tem um monte de lixo no menu de inicialização do BIOS. Eu visitaria p1, olharia no diretório EFI e então removeria as entradas não-Windows; se isso sozinho não resolver, então use efibootmgr (mas se você não limpar os carregadores de inicialização residuais, eles podem continuar aparecendo). Pode haver outros arquivos fora do diretório EFI, mas remova-os somente se você tiver certeza do que está fazendo (embora um reparo de inicialização do Windows provavelmente conserte qualquer erro que você fizer, se necessário). Certifique-se de não remover seu novo menu de inicialização do BIOS, é claro, mas, provavelmente ele será redescoberto se você fizer isso.