wimboot - check backing file/path (FSUTIL) (see here).
wimboot - reparse points and WimOverlay.dat (see here).
wimboot - WimOverlay.dat (MBR backing disk) (see here).
wimboot - WimOverlay.dat (GPT backing disk) (see here).
VHD - 2 partition requirement
It is possible to use a VHD with a single partition containing the boot and operating system files, however this may not work on UEFI firmware as there is no requirement for NTFS support. FAT32 is specified for UEFI boot files - the use of a small FAT32 partition for boot files ensures wider compatibility and avoids the need for third party drivers.
New installation - summary
Summary of the steps required to install Windows to a VHD and copy this to a new target system with a blank disk -
Create GRUB4DOS\GRUB4EFI bootable USB disk with WinPE and menu entries for your VHD file (see here).
Using a Windows 7/8/10/11 host PC -
Create a VHD file with 2 partitions (partition 1 > FAT32 > use for boot files - partition 2 > NTFS > use for operating system files). Sample DiskPart commands -
Use DISM to apply a windows image to partition 2 in the VHD file
Use DISM to install SVBus to the offline windows image applied to partition 2 in the VHD file
Use bcdboot to create boot files in partition 1 in the VHD file
Unmount (detach) VHD
Copy the VHD file to a subdirectory in partition 2 of the USB disk (S:\)- this will be copied to the target system in a subsequent step.
Boot the USB on the target PC and select WinPE -
Shift+F10 to open a command prompt
UEFI - use DiskPart to prepare the target systems internal disk -
BIOS - use DiskPart to prepare the target systems internal disk -
Copy the VHD file from the USB drive to a partition on the prepared disk
Copy GRUB4DOS\GRUB4EFI to the active/boot partition in the prepared disk.
Reboot the PC - loading GRUB4DOS/GRUB4EFI (if GRUB4DOS\GRUB4EFI was copied to the internal disk, then remove the USB drive before rebooting).
Select the option to boot the VHD file as a FILEDISK - this will start the Windows installation.
The PC will reboot during the Windows installation - select the FILEDISK option following all reboots until the installation has completed.
Disable hibernate (cmd)
Dual Boot - summary
Summary of steps if you prefer to use an existing setup and boot GRUB4DOS/GRUB4EFI from a USB disk -
Create GRUB4DOS\GRUB4EFI bootable USB disk with menu entries for your VHD file (see here).
Using your existing Windows system -
Create a VHD file with 2 partitions (partition 1 > FAT32 > use for boot files - partition 2 > NTFS > use for operating system files). Sample DiskPart commands -
Use DISM to apply a windows image to partition 2 in the VHD file
Use DISM to install SVBus to the offline windows image applied to partition 2 in the VHD file
Use bcdboot to create boot files in partition 1 in the VHD file
Unmount (detach) VHD
Reboot - booting the USB drive to load GRUB4DOS/GRUB4EFI.
Select the option to boot the VHD file as a FILEDISK - this will start the Windows installation.
The PC will reboot during the Windows installation - select the FILEDISK option following all reboots until the installation has completed.
Disable hibernate (cmd)
SVBus - install using DISM
NOTE - the DISM version used to install SVBus may need to match the offline Windows. The following error was displayed when attempting to install SVBus to an offline Windows 10.0.14393 Operating System using DISM version 6.3.9600.17031 -
Output -
A copy of DISM is included in Windows installation media. This version will match the version number of Windows source files, however it may not match the bit type. If your Windows Installation Media is 64-bit, you will not be able to run the 64-bit version of DISM.exe included in the installation media from a 32-bit operating system.
wimboot (wim in VHD) - summary
Windows Image File Boot (wimboot) may be an option to boot a full Windows from a ramdisk on low ram systems - see here for more information.
Summary of steps -
Create GRUB4DOS\GRUB4EFI bootable USB disk with menu entries for your VHD file (see here).
Using your existing Windows system -
Create a VHD file with 2 partitions (partition 1 > FAT32 > use for boot files - partition 2 > NTFS > use for operating system files). Sample DiskPart commands -
Use wimlib to extract a wimboot compatible .wim to W:\ (VHD partition 2). Adjust image/index number as required (image 3 is specified in the example below)
Use wimlib to apply W:\win11wimboot.wim to partition 2 in the VHD file
Use DISM to install SVBus to the offline windows image applied to partition 2 in the VHD file
Use bcdboot to create boot files in partition 1 in the VHD file
Unmount (detach) VHD
Reboot - booting the USB drive to load GRUB4DOS/GRUB4EFI.
Select the option to boot the VHD file as a FILEDISK - this will start the Windows installation.
The PC will reboot during the Windows installation. Following the first reboot, boot to WinPE and disable Hibernate (this will avoid potential issues with available disk space being filled with a hibernation file) -
Mount wimboot.vhd using DiskPart and mount partition 2 as W: (use DiskPart to check drive letters and edit the path #:\wimboot.vhd) -
Mount the registry hive W:\Windows\system32\config\system as HKLM\_SYSTEM -
Disable hibernation -
Unmount\unload the HKLM\_SYSTEM hive -
Reboot to GRUB4DOS\GRUB4EFI and select the option to boot the VHD file as a FILEDISK. Follow this process on any subsequent reboots until the installation process is completed.
NOTE - Windows 8.1 Update or Windows 8.1 Update based versions of WinPE (or newer) are required. Previous versions of WinPE/Windows do not include the Windows Overlay File System driver (wof.sys) and will not recognise the filesystem extracted when running the wimlib-imagex.exe apply #:\win11wimboot.wim 1 W: --wimboot command - bcdboot will fail on pre Windows 8.1 Update systems.
wimboot (wim on HDD) - summary
Windows Image File Boot (wimboot) may be an option to boot a full Windows from a ramdisk on low ram systems - see here for more information.
Summary of steps -
Create GRUB4DOS\GRUB4EFI bootable USB disk with menu entries for your VHD file (see here).
Using your existing Windows system -
Create a VHD file with 2 partitions (partition 1 > FAT32 > use for boot files - partition 2 > NTFS > use for operating system files). Sample DiskPart commands -
Use wimlib to extract a wimboot compatible .wim to a path on the target system (e.g. D:\). Adjust image/index number (image 3 is specified in the example below) and path as required -
Use wimlib to apply D:\win11wimboot.wim to partition 2 in the VHD file
Use DISM to install SVBus to the offline windows image applied to partition 2 in the VHD file
Use bcdboot to create boot files in partition 1 in the VHD file
Unmount (detach) VHD
Reboot - booting the USB drive to load GRUB4DOS/GRUB4EFI.
Select the option to boot the VHD file as a FILEDISK - this will start the Windows installation.
The PC will reboot during the Windows installation. Following the first reboot, boot to WinPE and disable Hibernate (this will avoid potential issues with available disk space being filled with a hibernation file) -
Mount wimboot.vhd using DiskPart and mount partition 2 as W: (use DiskPart to check drive letters and edit the path #:\wimboot.vhd) -
Mount the registry hive W:\Windows\system32\config\system as HKLM\_SYSTEM -
Disable hibernation -
Unmount\unload the HKLM\_SYSTEM hive -
Reboot to GRUB4DOS\GRUB4EFI and select the option to boot the VHD file as a FILEDISK. Follow this process on any subsequent reboots until the installation process is completed.
NOTE - Windows 8.1 Update or Windows 8.1 Update based versions of WinPE (or newer) are required. Previous versions of WinPE/Windows do not include the Windows Overlay File System driver (wof.sys) and will not recognise the filesystem extracted when running the wimlib-imagex.exe apply #:\win11wimboot.wim 1 W: --wimboot command - bcdboot will fail on pre Windows 8.1 Update systems.
NOTE - do not move, rename or delete G:\win11wimboot.wim if using this method.
BIOS boot - GPT backing disk
GRUB4DOS is required when booting an SVBus disk image on BIOS firmware or UEFI firmware in CSM mode. GRUB4DOS is able to access GPT and MBR type disks - as a consequence it is possible to map disk images from a GPT type disk when booting GRUB4DOS. This may be useful when booting a legacy operating system on UEFI firmware as the existing disk, if formated as GPT, does not need to be converted.
Static VHD files
Static type VHD (Virtual Hard Disk) files are based on a format originally developed by Connectix. Connectix was acquired by MicroSoft and was renamed to MicroSoft Virtual PC, however the VHD file format was retained. Static VHD files are essentially a raw disk image with one sector appended. There are several tools which can be used to convert raw disk images to VHD, including -
vMount - developed by Erwan Labalec (aka erwan.l). Use the following syntax to convert a raw disk image to VHD -
raw2vhd - developed by Panot Joonkhiaw (aka karyonix). Use the following syntax to convert a raw disk image to VHD -
wimboot - check backing file/path (FSUTIL)
The FSUTIL wim enumwim command (supported from Windows 10) can be used to check the location of the wim backing source -
Output - .wim file on the same volume as the reparse points -
Output - .wim file on a different volume -
wimboot - reparse points and WimOverlay.dat
The following information has been copied from a post on the reboot.pro forum (see here). The author is Eric Biggers (aka synchronicity) - wimlib developer.
"...All "links" on NTFS, other than hard links, are implemented using feature called "reparse points". A reparse point is a file that contains a "reparse" data stream. The reparse data stream contains a reparse tag, which identifies a filter driver through which access to the file will be redirected. The reparse data stream also contains up to 16384 bytes of data which can be interpreted in any way by the filter driver. The common reparse tags are:
0xA0000003: Junction / mount point
0xA000000C: Symbolic link
0x80000017: Windows Overlay Filesystem (WOF) redirection
The reparse data for WOF, which is normally interpreted by wof.sys, contains a further indirection, to a specific overlay "provider" implementation.....for the WIM provider, the reparse data contains:
Data source ID (volume unique) of the WIM file. wof.sys resolves this to an actual WIM file using \System Volume Information\WimOverlay.dat, which contains a sequence of per-WIM binary data structures.
Byte offset, uncompressed size, and compressed size of the file data in the WIM file.
Some other fields, which seem somewhat redundant.....
....The total size of each WOF reparse data stream is something like 80 or 90 bytes. That's what you'll be copying if you actually image the volume *without* the WOF driver running...."
Eric went on to provide additional information in a subsequent post (see here).
"...WimOverlay.dat is ... a list of which WIM files are registered as external backing sources on that volume. The WIM files themselves need not be located on the same volume --- they are actually identified by the physical partition and path relative to it...."
wimboot - WimOverlay.dat (MBR backing disk)
WimOverlay.dat viewed in a Hex Editor. Information in this file corresponds with the disk signature in the MBR type backing disk -
MBR type backing disk - LBA Sector 0. Note that the disk signature at offset 0x1b8 corresponds with the information in WimOverlay.dat
wimboot - WimOverlay.dat (GPT backing disk)
WimOverlay.dat viewed in a Hex Editor. Information in this file corresponds with the GPT disk GUID in LBA sector 1 -
GPT type backing disk - LBA sector 1. Note that the GUID corresponds with the information in WimOverlay.dat -
WimOverlay.dat viewed in a Hex Editor. Information in this file corresponds with a GPT partition entry (unique partition GUID) on the GPT disk -
GPT type backing disk - LBA sector 3 (GPT partition entry - unique partition GUID). Note that the GUID corresponds with the information in WimOverlay.dat -