Grub não reconhece windows 10

Boa noite pessoal,

Eu tenho o Ubuntu 19.10 instalado num SSD M.2, hoje adicionei um SSD sata e instalei o Windows 10 nele. Só que o windows não está aparecendo na grub.
Já tentei usar o boot-repair, já tentei sudo update-grub já tentei rodar comandos no windows seguindo alguns tutoriais, mas nada funcionou.

Já fiz essa operação antes, instalar o windows em um sistema que já tem linux, e um simples sudo update-grub resolveu problema. Não sei o que pode ter dado errado dessa vez.

Consigo entrar no windows normalmente indo na bios e selecionando o boot pelo SSD onde o windows está instalado.

No meu caso sempre instalei assim:
Ordem de boot:
Primeiro HD com Windows
Segundo HD com Linux
Grub instalado no HD com Windows
Nunca tive problema com o grub. Independente de quantas vezes eu troque de distro.

O pacote os-prober está instalado? Verifique com o comando

$ apt search os-prober

deve aparecer se está instalado ou não ao lado do nome do pacote.

Se não estiver instalado, instale-o e execute novamente o update-grub.
Se estiver instalado, você terá que adicionar uma entrada para o windows manualmente no arquivo /etc/default/grub

1 Curtida

Tentei usar o boot-repair, reinstalei o grub mas não foi.

Obrigado, o os-prober está instalado, como adiciona a entrada pro windows? Tntei seguir uns tutoriais mais não funcionou, eles mandavam editar o /etc/grub.d/40_custom.

Vou pesquisar. Não tenho o windows instalado pra dizer corretamente. Mas preciso saber se você está usando modo UEFI ou legacy.

Estou usando UEFI, tenho uma partição UEFI no hd primário.

Fiz esse procedimento: https://wiki.debian.org/DualBoot/Windows10
Mas o grub não aparece, dá boot direto no ubuntu. Só que abrindo o grub customizer, aparece a entrada do windows.

Seguindo tutoriais adicionei duas entradas ao /etc/grub.d/40_custom:

menuentry "Windows 10" --class windows --class os {
   insmod ntfs
   search --no-floppy --set=root --fs-uuid 9CD20076D20056C4
   ntldr /bootmgr
}

menuentry "Windows 10" {  
     insmod ntfs  
     set root='(hd0,1)'  
     search --no-floppy --fs-uuid --set 7A94-3280
     chainloader +1  
}

As duas aparecem no grub agora, mas ambas dão erro. Uma diz que o efi path está errado e a outra diz que não encontrou o bootmgr.

Acho que é isso que está dando errado, o windows não usa UEFI. Todas as vezes que tentei dualboot com o Windows e UEFI deram errado

Se a partição windows aparece no menu do grub /boot/grub/grub.cfg na parte ### BEGIN /etc/grub.d/30_os-prober ### então o problema é outro.

Acho que o grub tá sendo carregado mas tá configurado pra não exibir o menu, entrar direto no default, que é o ubuntu.

Verifica no seu arquivo /etc/default/grub se tem opção GRUB_TIMEOUT=0 e mude-a para GRUB_TIMEOUT=5
Verifique também se tem opção GRUB_TIMEOUT_STYLE=hidden e mude-a para #GRUB_TIMEOUT_STYLE=hidden

Salve, upgrate-grub.

Deverá aparecer o menu do grub!

Esse procedimento DualBoot/Windows10 - Debian Wiki é apenas se não fosse UEFI. Não vai funcionar aí mesmo…

Se eu estivesse aí, veja o que eu faria:

  • Dar boot
  • No menu do grub, apertar c para entrar na linha de comando
  • Digitar ls para mostrar todos os discos e partições (hd0) (hd0,gpt1) … (hd1) (hd1,gpt1)
    Nota: Provavelmente vc tem dois discos e a partição efi é a primeira partição desses dois discos. Caso não seja esse seu setup, mude para o respectivo número da partição.
  • digitar set root=(hd1,gpt1) Assumindo que o hd do windows foi detectado com 1 e a partição efi dele é a primeira também
  • digitar **chainloader /EFI/BOOT/BOOTX64.efi
    Nota: use o TAB que o autocompletar funciona! Já é indicativo que está no bom caminho. Estou assumindo que tem apenas o windows instalado nesse segundo HD, senão você vai ter que descobrir qual é a entrada dele, talvez /EFI/Microsoft/Boot/bootmgfw.efi
  • digitar boot e a mágica poderá acontecer! Você deu o boot na mão!
  • Caso nada tenha acontecido, ou um erro, repita todos os passos com outra partição. Uma delas dará certo! Quando der certo, lembre-se deles valores e atualize seu /etc/grub.d/40_custom de forma correspondente.

A entrada ficará mais ou menos assim:

menuentry "Windows 10 Valeu deleterium!" {  
     set root='(hd1,gpt1)'  
     chainloader /EFI/BOOT/BOOTX64.efi
}

Vamos lá! Terceiro método pra tentar: Tirei do Grub2 menuentry for Windows 10 UEFI › Of course I have a backup!

No ubuntu, descubra o uuid da partição EFI do windows:

sudo blkid

Edite o /etc/grub.d/40_custom e adicione a entrada substituindo os ??? pelo blkid encontrado anteriormente

menuentry 'Windows 10' {
    search --fs-uuid --no-floppy --set=root ????-????
    chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

Explicação: O comando search fará uma busca automática no uuid partições --fs-uuid, desprezando unidades removíveis do tipo disquete --no-floppy, vai setar a variável de ambiente root com o valor encontrado --set=root, procurando pelo valor ????-???? que você determinou.

Salve, update-grub!