maharmstone / quibble

Quibble - the custom Windows bootloader
GNU Lesser General Public License v3.0
2.14k stars 83 forks source link

VHDX Native Boot #117

Open hgkamath opened 4 months ago

hgkamath commented 4 months ago

Firstly, thank you to the developers' for their open source contributions to quibble and winbtrfs

Filing this issue to track if and when VHDX native-boot from Fixed VHDX vdisk becomes a supported feature. Filesystems to native boot from include

In order to do this, quibble would need a way to read the various filesystems, search/find files and their blocks on disk, chainload to the WinOSbootloader, and provide the WinOSbootloader some notion of a disk made-up from the data blocks of the VHDX.

There used to be some additional constraint that the containing partition filesystem had to match the vdisk system drive filesystem (ExFAT on ExFAT, NTFS on NTFS), but perhaps later win10 versions don't require it.

Fixed Size VHDX may be necessary because the block device that constitutes the system drive is actually a file on an outer file system. So the OS may not be able to handle modifications to the metadata of the VHDX vdisk or the metadata of the outer filesystem due to vdisk file size changes. WinOS can mount the outer filesystem read/write and use it, but does not allow itself to directly modify the vdisk file.

Ref :

maharmstone commented 4 months ago

Thanks. The VHDX is documented at https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-vhdx/83e061f8-f6e2-4de1-91bd-5d518a43d477.

It'd be a matter of writing an EFI block device driver that could understand it. I don't think the filesystem would matter all that much.