TL;DR
Como posso inicializar a partir de uma instalação EFI GRUB em um disco A uma instalação do Windows 10 BIOS em um disco B?
A longa explicação
os-prober
não está mais detectando o Windows depois de ter migrado o Ubuntu de MBR + BIOS para GPT + EFI.
Minha situação de disco é um pouco complicada:
sda 1,8T
└─sda1 ext4 1,4T /media/Steam Steam
sdb 931,5G
├─sdb1 vfat 512M
├─sdb2 ext4 125G home
├─sdb3 ext4 774,5G /media/Dati_ext4 Dati_ext4
└─sdb4 ext4 31,5G Ubuntu18.04
sdc 232,9G
├─sdc1 ntfs 100M
├─sdc2 ntfs 59G Win10
├─sdc3 ntfs 483M
└─sdc4 ntfs 172,9G Dati_NTFS
nvme0n1 477G
├─nvme0n1p1 ext4 62,4G / Ubuntu19.10
├─nvme0n1p2 vfat 200M /boot/efi EFI
└─nvme0n1p3 ext4 322,1G /home home
- Eu tenho 4 discos (1 NVMe e 3 SSDs).
- Antes de hoje todos eles estavam usando MBR e o UEFI estava inicializando o NVMe no modo legado.
- Eu tenho 2 instalações do Ubuntu (19.10 e 18.04) e 1 do Windows 10.
- Cada sistema operacional tem seu próprio disco (e o 4º disco como nenhum sistema operacional instalado). Isso significa que cada sistema operacional tinha seu próprio carregador de inicialização instalado no MBR de cada disco.
- O GRUB também foi capaz de ver todos os outros sistemas operacionais, então, a partir do GRUB do NVMe, eu consegui inicializar qualquer um dos 3 sistemas operacionais.
Hoje decidi converter a instalação NVMe do Ubuntu de MBR+BIOS para GPT+EFI. Como não toquei em nenhum outro disco, esperava que o GRUB detectasse os outros sistemas operacionais e os inicializasse normalmente.
A conversão funcionou bem e consigo inicializar no Ubuntu 19.10. Mas os-prober
reconheça o Ubuntu 18.04, mas não o Windows 10.
O que eu gostaria de fazer é encontrar uma correção para os-prober
o , para que ele reconheça o Windows, ou especificar manualmente a configuração do GRUB para inicializar a instalação do Windows MBR+BIOS.
Eu já tentei algo para a segunda abordagem, mas não funcionou. Eu adicionei isso à /etc/grub.d/40_custom
instalação do EFI:
menuentry 'Windows 10 (su /dev/sdc1)' --class windows --class os {
insmod part_msdos
insmod ntfs
set root='hd2,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd2,msdos1 --hint-efi=hd2,msdos1 --hint-baremetal=ahci2,msdos1 C08E2C498E2C3A74
else
search --no-floppy --fs-uuid --set=root C08E2C498E2C3A74
fi
parttool ${root} hidden-
drivemap -s (hd0) ${root}
chainloader +1
}
Eu tirei isso da instalação funcional do Ubuntu 18.04 GRUB MBR + BIOS.
Mas quando seleciono o Windows 10 no menu GRUB, recebo apenas este erro:
Setting partition type to 0x7
error: can't fine command `drivemap'.
error: invalid EFI file path.
É possível inicializar a partir de um EFI GRUB uma instalação do BIOS em um disco diferente do Windows 10?
Resposta curta, você não pode inicializar um Windows herdado a partir do UEFI grub. Depois que o grub inicializa, o modo de inicialização foi definido como UEFI e seu Windows está no modo herdado, portanto, não pode inicializar. Você pode selecionar o dispositivo em que o Windows está (presumivelmente com seus próprios carregadores de inicialização) e inicializá-lo no menu de inicialização EFI (alguma tecla de função na inicialização para permitir que você selecione o dispositivo/SO de inicialização). Você pode ter outra instalação do grub ou o Windows inicializar com sucesso nesse segundo disco, que estaria no modo herdado. Tente apenas inicializar o segundo disco, o Windows pode aparecer.