NOTE - this guide has been updated to include information/instructions about the use of SVBus on systems with UEFI firmware, something now possible with the development of GRUB4DOS for UEFI and al1ve's fork of GRUB 2.
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
Windows 11
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/GRUB4EFI [NOTE - GRUB4EFI is officially referred to as GRUB4DOS for UEFI]. SVBus can be used to access GRUB4DOS/GRUB4EFI 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 Operating System will require around 10 GiB of RAM, with memory requirements increasing for newer versions of Windows. Windows XP can be booted on systems with 3 GiB of RAM. RAM requirements can be reduced by removing components, however this approach is not covered in this guide.
Some versions of Windows already support booting from a Virtual Disk following the introduction of Native Boot VHD 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/GRUB4EFI
Requires BIOS Firmware or UEFI booting in Legacy/Compatibility mode (Native VHD Boot works in UEFI and BIOS) [NOTE - GRUB4DOS for UEFI supports access to SVBus virtual disks on UEFI systems not running in compatibility mode]
Does not support fragmented files (Native VHD Boot does). Fragmented files can be booted using a GRUB4DOS RAM Disk. [NOTE - GRUB4DOS version 0.4.6a is now reported to support mapping non-contiguous files]
This guide contains instructions for installing the following Windows Operating Systems on systems with BIOS firmware -
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, Windows 11 and Server 2016/2019).
This guide has been updated with instructions for running Windows NT 10.* on systems with UEFI firmware.
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). [NOTE - SVBus can also access virtual disks mapped via GRUB4EFI]
Contiguous Virtual Disk files - GRUB4DOS cannot map File Backed disks if the Virtual Disk file is fragmented. The backing file must be contiguous. [NOTE - GRUB4DOS version 0.4.6a is now reported to support mapping non-contiguous files]
Test systems
The following systems were used in the tests/walkthroughs in this guide -
ThinkPad W530 - system with 32GB of RAM, used primarily for BIOS tests (firmware set to boot in CSM mode). Internal disk - Solid State Drive (SSD) formatted as MBR type disk.
ThinkPad T470s - system with 20GB of RAM, used primarily for UEFI tests (firmware set to boot in UEFI only (CSM disabled)). Internal disk - NVMe Solid State Drive (SSD) formatted as GPT type disk.
VMWare Player - virtual setup used for capturing screenshots.