I’m preparing my wife’s machine for dual-boot between Ubuntu 22.04 and Win10, and got into an MBR/GPT conundrum. It’s a Coffee Lake system on an ASRock z370m mainboard. My intended procedure was the following:
- Install Win10 on an 1Tb NVMe on M2_1
- Install Ubuntu on a 256Gb NVMe on M2_2
- Configure CMOS to boot from the Ubuntu drive by default
- Configure GRUB to show Win10 alongside Ubuntu in the menu
Now I’m at step (4). After setting
/etc/default/grub, as we apparently have to do nowadays, update-grub still doesn’t find the Windows bootloader.
I believe I found the cause: It turned out the Windows drive was formatted using a DOS disklabel, while the Ubuntu drive had a GPT label:
$> fdisk -l Disk /dev/nvme1n1: 953,87 GiB, 1024209543168 bytes, 2000409264 sectors Disk model: ADATA SX8200PNP # <-- windows ... Disklabel type: dos ... Disk /dev/nvme0n1: 238,47 GiB, 256060514304 bytes, 500118192 sectors Disk model: SAMSUNG MZVPW256HEGL-00000 # <-- Linux + Grub ... Disklabel type: gpt ...
Why this happened I don’t know. In addition to not finding the Windows disk,
update-grub also gave me this message:
Memtest86+ needs a 16-bit boot, that is not available on EFI, exiting
Having MemTest86 in the menu is handy, but not critical.
Would converting the Ubuntu/Grub drive to DOS/MBR solve both the issue with loading Windows, and the issue with loading MemTest86+? If so, can I get away with it without reinstalling Ubuntu?
Or is it rather recommended to use GPT for both disks (I guess that would require re-installing Windows)?
Or alternatively, can I get around the problem with booting Windows entirely without re-labelling disks, by some kind of chainloading?