The examples in the instructions in ReadMe.txt (included in the SVBus download) focus on installing Windows to a blank disk. If a Windows Operating System is already installed then SVBus can be used to install a different version of Windows to a Virtual Hard Disk (VHD) - creating a multi-boot setup. This page covers installing Windows NT 6.*/10.* (Windows 7/8/8.1/10) alongside an existing Windows NT 6.*/10.* setup.
The following table has been included as a reference to devices, files and paths that are used in the instructions in this page -
Device + path
Mountpoint + path
|(hd0,0)||N/A||Boot partition - not allocated a drive letter in Windows|
|(hd0,1)||C:\||Windows Host Operating System.|
|(hd0,2)||D:\||Target partion for GRUB4DOS files and VHD file.|
|(hd0,2)/windows.vhd||D:\windows.vhd||Virtual Hard Disk (VHD) - this will be created in step 2 (see here).|
|(hd0,2)/grldr.mbr||D:\grldr.mbr||Refer to step 1 (see here).|
|(hd0,2)/grldr||D:\grldr||Refer to step 1 (see here).|
|(hd0,2)/menu.lst||D:\menu.lst||Refer to step 7 (see here).|
|N/A||E:\||Mount point for Windows Installation Media .iso file (Windows 8.1 source)|
|N/A||E:\sources\install.wim||Source file containing sysprepped Windows installation. This will be required in step 3 (see here)|
|N/A||E:\sources\dism.exe||dism version matching the source files. Please note that bit type (32-bit/64-bit) will also match the source. If the source is 64-bit and the host OS is 32-bit then it will not be possible to run this version of dism. This may be required in step 4 (see here)|
Boot Windows on (hd0,1) and complete the following steps to prepare the system ready for installing Windows NT 6.*/10.* to a virtual disk -
Add the GRUB4DOS files grldr and grldr.mbr to a local partition > use the command-line bcdedit.exe tool to add an entry to the system BCD store.
This process is covered in more detail here.
This process and Diskpart usage is covered in more detail here.
For the Windows 8.1 tests, the following DiskPart commands were used (change size, filename, path and mount point according to your own requirements) -
NOTE - the virtual disk file must be contiguous. If the file is fragmented then it cannot be mapped using GRUB4DOS.
Use DISM to apply (extract) the contents of install.wim to W: (the single partition in the VHD file was mounted as volume W: in the preceding step).
Use DISM to install the SVBus driver to the offline Windows Installation on volume W:\
NOTE - the DISM version used to complete this step may need to match the Windows version installed to volume W:\. 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 -
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.
Use the bcdboot command to create boot files (see here for more information).
Unless a digitally signed version of SVBus is installed, testsigning must be enabled in order to successfully boot the Virtual Hard Disk (see here).
The GRUB4DOS loader grldr is configured to scan all devices/partitions with a supported filesystem for the configuration file \menu.lst - supported filesystems include FAT12, FAT16, FAT32 and NTFS. If the system has more than one device/partition containing a file named menu.lst then only the first instance found during the scanning process will be loaded - any other files with the same name will be ignored.
menu.lst is a plain text file containing a series of GRUB4DOS commands, similar to a batch script. Commands in menu entries can be entered in the command-line, which is useful during testing or for troubleshooting as verbose feedback is issued following commands.
Create a text file D:\menu.lst with the following contents -
Note the use of the map --top --mem command. The following information has been copied from the rmprepusb site - "...In grub4dos, the memory is divided into...3.25G high memory and low memory ends 3.25G mirroring can not cross this point. If your memory is less than 3.25G, you do not have the high-end memory available..." README_GRUB4DOS.TXT states "...map --top option to be used with --mem. map --mem will try to allocate memory at highest available address..."
Using high memory is recommended when booting 32-bit Operating Systems from a RAM Disk as 32-bit Windows can only access/address the first 3.25 GiB of RAM - this is approximate as available RAM may vary depending on BIOS limitiations and memory allocated to shared graphics.
Using high memory (map --top --mem) will ensure that all RAM below the 3.25 GiB level is accessible to 32-bit Operating Systems - this assumes that there is enough high memory to hold the virtual disk image.
Boot/load GRUB4DOS and select the windows.vhd - SVBus FILEDISK menu entry until the installation process has completed - there will be at least one reboot during the installation process.
The installation process is completed once the desktop is accessible.
Following the installation, Windows can be booted by first booting/loading GRUB4DOS and then select one of the windows.vhd - SVBus FILEDISK or windows.vhd - SVBus RAMDISK menu entries.
Document date - 29th June 2019