Oi amigo é uefi ou não?
No momento não uso ubuntu, por isso não sei os nomes dos pacotes
Você pode tentar instalar grub-probe e rodar o update-grub
sudo apt install grub-probe
sudo update-grub
reinicie e veja se funcionou
acho que é esse o nome do pacote
Caso não de certo
Pode tentar fazer manualmente
Se for modo UEFI/GPT
Adicione o conteúdo abaixo /etc/grub.d/40_custom , e depois execute o comando update-grub
if [ "${grub_platform}" == "efi" ]; then
menuentry "Microsoft Windows Vista/7/8/8.1 UEFI/GPT" {
insmod part_gpt
insmod fat
insmod chain
search --no-floppy --fs-uuid --set=root $hints_string $fs_uuid
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
fi
Onde $ hints_string e $ fs_uuid são obtidos com os dois seguintes comandos.
O comando $ fs_uuid determina o UUID da partição do sistema EFI:
# grub-probe --target=fs_uuid esp/EFI/Microsoft/Boot/bootmgfw.efi
1ce5-7f28
Alternativamente, pode-se executar o blkid (como root) e ler o UUID da partição do sistema EFI a partir daí. OU usar lsblk como usuário normal
O comando $ hints_string determinará a localização da partição do sistema EFI, neste caso o disco rígido 0:
# grub-probe --target=hints_string esp/EFI/Microsoft/Boot/bootmgfw.efi
--hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1
Se for modo BIOS/MBR
Adicione o conteúdo abaixo /etc/grub.d/40_custom , e depois execute o comando update-grub
if [ "${grub_platform}" == "pc" ]; then
menuentry "Microsoft Windows Vista/7/8/8.1/10 BIOS/MBR" {
insmod part_msdos
insmod ntfs
insmod ntldr
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 XXXXXXXXXXXXXXXX
ntldr /bootmgr
}
fi