Multiboot USB
Dual Booting
If you want to dual boot your system you'll probably want to look at chainloading. The subtlety here is that you want to change the Boot Manager from, say, GRUB, to the Windows boot manager which, presumably, knows more about booting Windows OS' than GRUB does.
The Windows (8, 8.1 and) 10 boot manager is bootmgfw.efi (on 64bit systems, bootmgr.efi on 32bit?) and uses a Boot Configuration Database kept in a file called BCD.
If you take a pre-installed Windows 10 PC and shrink the C: drive [1] from Disk Management then CentOS will sit in alongside nicely so long as you don't delete the Unknown pre-existing filesystems. D'uh!
CentOS will spot the existing ESP and leave a trailing menu entry in GRUB to chainload the Windows Boot Manager:
menuentry 'Windows Boot Manager (on /dev/nvme0n1p1)' --class windows --class os $menuentry_id_option 'osprober-efi-5247-E7D0' { insmod part_gpt insmod fat if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root 5247-E7D0 else search --no-floppy --fs-uuid --set=root 5247-E7D0 fi chainloader /EFI/Microsoft/Boot/bootmgfw.efi }
the above from a disk that looks like:
# lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT nvme0n1 ├─nvme0n1p1 vfat SYSTEM 5247-E7D0 /boot/efi ├─nvme0n1p2 ├─nvme0n1p3 ntfs B84A58484A580592 ├─nvme0n1p4 ntfs Windows RE tools 425C4D7C5C4D6C2B ├─nvme0n1p5 xfs 9cf790ff-c2bb-42c2-9289-c997ab7707a7 /boot └─nvme0n1p6 LVM2_member L2CeRv-Llci-6Bus-K0E1-uh2f-zOlk-RqPQmn ├─cl-root xfs ba7db830-d2be-4b58-a2bd-78a870d9ce9c / └─cl-swap swap 1f468b0c-aec9-4f9c-8c71-8702847da9b4 [SWAP]
Note
The root that the chainloader is searching for is that of the ESP rather than a particular Windows partition.
[1] | Not too much, mind, as Windows seems to accumulate recovery data like nobody's business these days and 32GB will leave you in trouble. |
Document Actions