Recuperando o
Grub pelo Void
1- Instale/confirme o os-prober e os pacotes:
sudo xbps-install -Su
sudo xbps-install -S os-prober ntfs-3g fuse3
2- Abra o arquivo:
sudo vim /etc/default/grub
Procure por:
GRUB_DISABLE_OS_PROBER="true"
Se existir, mude para:
GRUB_DISABLE_OS_PROBER="false"
Se não existir, adicione a linha.
Salve e saia.
3- Gere o
Grub novamente:
sudo grub-mkconfig -o /boot/grub/grub.cfg
Na saída aparecerá algo como:
"Encontrado Windows Boot Manager em /dev/sda1@/EFI/Microsoft/Boot/bootmgfw.efi" ou "Found Windows...".
Reinicie e no menu do
Grub estará o Windows e/ou outro
Linux.
Caso não apareça ainda, verifique se o Windows está em modo diferente de boot:
Void em UEFI e Windows em Legacy > não aparecem juntos.
Void em Legacy e Windows em UEFI > também não.
Se existir algo na saída do comando logo abaixo, você está em UEFI (senão você está em modo BIOS), o Windows tem de estar no mesmo modo.
ls /sys/firmware/efi
config_table esrt fw_vendor runtime-map
Verifique/confirme o modo do Windows:
sudo efibootmgr
BootCurrent: 0000
Timeout: 1 seconds
BootOrder: 0000,0001,0059,005A,0199,0198
Boot0000* Void HD(1,GPT,dcc88012-c5a8-4453-8977-c23e55eb74fe,0x800,0x200000)/\EFI\void_grub\grubx64.efi
Boot0001* Windows Boot Manager HD(1,GPT,dcc88012-c5a8-4453-8977-c23e55eb74fe,0x800,0x200000)/\EFI\Microsoft\Boot\bootmgfw.efi57494e444f5753000100000088000000780000004200430044004f0042004a004500430054003d007b00390064006500610038003600320063002d0035006300640064002d0034006500370030002d0061006300630031002d006600330032006200330034003400640034003700390035007d00000065000100000010000000040000007fff0400
Boot0059* Diskette Drive BBS(Floppy,Diskette Drive,0x0)0000424f
Boot005A* USB Storage Device BBS(USB,USB Storage Device,0x0)0000424f
Boot0198 Realtek PXE B03 D00 BBS(Network,Realtek PXE B03 D00,0x0)0000424f
Boot0199 Onboard NIC BBS(Network,IBA CL Slot 00FE v0114,0x0)0000424f
A saída será algo como acima confirmando que está em UEFI também e que o gerenciador de boot do Janelas também está, veja as linhas:
Boot0000* Void HD(1,GPT,dcc88012-c5a8-4453-8977-c23e55eb74fe,0x800,0x200000)/\EFI\void_grub\grubx64.efi
Boot0001* Windows Boot Manager HD(1,GPT,dcc88012-c5a8-4453-8977-c23e55eb74fe,0x800,0x200000)/\EFI\Microsoft\Boot\bootmgfw.efi
IMPORTANTE
Caso não aparecer nenhuma menção ao "Windows Boot Manager" na saída do comando "sudo efibootmgr", nem perca seu tempo com outras opções.
Reinicie e entre no BIOS da placa-mãe e confirme, para descargo de consciência, nas configurações se tem um arquivo \EFI\Microsoft\Boot\bootmgfw.efi.
Caso não tiver, utilize um pendrive com uma imagem ISO de instalação do Windows (10 ou 11, dependendo do seu caso) e refaça o bootloader do Janelas.
Dê boot pelo pendrive do Windows.
Na tela inicial, aperte Shift + F10 para abrir o Prompt de Comando.
Entre no DISKPART
diskpart
Para ver os discos:
Se o Windows e o Void Linux estiverem no mesmo HD/SSD, selecione esse disco único.
Se estiverem em discos diferentes, selecione o disco onde você criou a partição de 1GB para o Void.
> list disk
Observe o tamanho total dos discos. Se o seu SSD tem, por exemplo, 480GB e é lá que você instalou tudo, ele provavelmente é o Disco 0.
Caso não lembre o disco e não consiga identificar pelo tamanho entre em cada um começando pelo primeiro:
> select disk 0
> list volume (Identifique a letra da partição do Windows e a letra da partição EFI do Void de, por exemplo, 1GB).
Caso for o disco com o Windows, provavelmente estará como C.
> list partition (para ver o tamanho das partições)
Veja o outro:
> select disk 1
> list volume
> list partition
Caso for o disco com o Void, veja a letra da partição com 1GB ou o tamanho que você colocou.
Caso a partição EFI não tenha letra, vamos atribuir.
Procure a partição de 1024 MB (1GB) ou o tamanho que você colocou.
> select partition X (onde X é o número dessa partição).
> assign letter=V (atribua a letra V ou uma letra que não está sendo usada)
> exit
Recrie o Bootloader:
Use o comando abaixo (substitua C: pela letra do Windows e V: pela letra da partição EFI de 1GB se forem diferentes):
> bcdboot C:\Windows /s V: /f UEFI (Para EFI)
Dará a mensagem "Arquivos de inicialização criados com sucesso." ou algo parecido.
Obs.: No modo BIOS, antes de sair do DISKPART, a partição de destino (V:) precisa ser marcada como Ativa. Você faz isso no diskpart com o comando active e precisa atualizar o setor de inicialização do disco:
> select partition V
> active
> exit
> bootsect /nt60 V: /mbr
> bcdboot C:\Windows /s V: /f BIOS
Dará a mensagem "Arquivos de inicialização criados com sucesso." ou algo parecido.
Reinicie, entre no Void e atualize o Grub:
sudo grub-mkconfig -o /boot/grub/grub.cfg
Se tudo der certo, você verá uma mensagem no terminal dizendo: "Found Windows Boot Manager on /dev/sdX..." ou "Encontrado Windows...".
Caso for UEFI verifique a ordem do boot no BIOS. O comando efibootmgr não funciona em sistemas MBR (Legacy BIOS). Ele foi projetado exclusivamente para interagir com variáveis NVRAM de sistemas UEFI.:
sudo sudo efibootmgr
Veja as linhas:
BootOrder: 0000,0001,0059,005A,0199,0198
Boot0000* Void HD(1,GPT,dcc88012-c5a8-4453-8977-c23e55eb74fe,0x800,0x200000)/\EFI\void_grub\grubx64.efi
Boot0001* Windows Boot Manager
Para alterar pelo Void, por exemplo, colocando o Windows em primeiro no boot do BIOs:
sudo efibootmgr -o 0001,0000
Daí você terá de alterar o Bios cada vez que iniciar a máquina.
O comando para alterar a ordem de boot deve ser usado somente no caso em que o Windows Boot Manager esteja em primeiro, óbvio, pois se queremos Dual Boot, o gerenciador de boot do Window não enxerga o Linux, somente o
Grub (gerenciador de boot do Linux) enxerga o Windows.
Se você reiniciar e o
Grub não aparecer (cair direto no Windows), você deve alterar a ordem de boot no setup do BIOS da placa-mãe para "void" ou "grub" ficar em primeiro que a partir daí sempre iniciará pelo
Grub com as opções Void e Windows. Para entrar no Setup do BIOS (geralmente teclas F2, F12, Del ou Esc).