The SVBus driver has been developed by Kai Schtrom and is available here. Usage includes booting the following versions of Windows from a RAM Disk or a Virtual Disk -
Windows 2000
Windows XP
Windows Vista (Not tested)
Windows 7
Windows 8
Windows 8.1
Windows 10
The following versions of Windows Server have not been tested, but should also be supported -
Windows Server 2003
Windows Server 2008
Windows Server 2012
Windows Server 2016
Windows Server 2019
SVBus is a virtual SCSI Driver for use with GRUB4DOS. SVBus can be used to access GRUB4DOS mapped drives from Windows, which includes booting Windows from a virtual disk file or from RAM. This guide will focus on installing Windows to a Virtual Disk and subsequently booting Windows from either a virtual disk or a RAM disk -
Virtual Disk - a disk image stored on a local filesystem/device. Although RAW disk images can be used, Windows does not natively support mounting RAW disk images. A fixed type Virtual Hard Disk (VHD) is used for convenience throughout this guide - Windows has included native support for VHD type virtual disks since the release of Windows 7. Virtual Disks are also referred to as File Backed disks in this guide. When booting a File Backed disk mounted by the SVBus driver, any writes performed to the disk are persistent and changes to the filesystem are not lost following shutdown or reboot.
RAM Disk - a virtual disk loaded into RAM. RAM is volatile and any changes made to the filesystem of the RAM disk are not saved following shutdown/reboot. Booting Windows from a RAM Disk may be useful for testing software that does not require a reboot during installation, or for system recovery purposes. A disadvantage of using RAM disks is the memory requirement. Running a full Windows 7 or newer Operating System will require around 12 GiB of RAM. Windows XP can be booted on systems with 3 GiB of RAM. RAM requirements can be reduced by removing components or using a compressed file system, however these approaches are not covered in this guide.
Some versions of Windows already support booting from a Virtual Disk following the introduction of Virtual Hard Disk (VHD) Boot in Windows 7. VHD Boot is not supported in all editions of Windows, in Windows 7 for example it is limited to use on Enterprise and Ultimate editions of the Operating System. SVBus can be used as an alternative, however it does have some limitations -
RAW disk support only (including Fixed type VHD)
Does not support dynamic VHD (Native VHD Boot does support Dynamic VHD)
Requires GRUB4DOS
Requires BIOS Firmware or UEFI booting in Legacy/Compatibility mode (Native VHD Boot works in UEFI and BIOS)
Does not support fragmented files (Native VHD Boot does). Fragmented files can be booted using a GRUB4DOS RAM Disk.
This guide contains instructions for installing the following Windows Operating Systems -
Windows XP - the instructions can be adapted to install other Windows NT 5.* Systems including Windows 2000 and Windows Server 2003.
Windows 8.1 - the instructions can be adapted to install other Windows NT 6.* (including Windows 7/8/8.1 and Server 2008/2012) and Windows NT 10.* Systems (including Windows 10 and Server 2016/2019).
Requirements
Windows native tools have been used throughout this guide where possible, however the majority of these tools require Windows 7 or newer Operating Systems. The Windows Preinstallation Environment (WinPE) can be used as an alternative, and is available as a free download from Microsoft via the Windows Assement and Deployment Kit (see here). WinPE version 3 or newer is required.
RAM - if using RAM disks then consider that the Virtual Disk backing file used must be mapped (loaded) to RAM before being booted. You must therefore have enough system RAM to contain the image + additional RAM to run the operating system.
BIOS Firmware or UEFI with CSM Enabled - The GRUB4DOS boot manager will not work on systems with UEFI Firmware unless the system has been configured to boot in Compatibility/Legacy mode (CSM enabled).
Contiguous Virtual Disk files - GRUB4DOS cannot map File Backed disks if the Virtual Disk file is fragmented. The backing file must be contiguous.