How to Boot Hyper-V From a USB Flash Drive
This guide demonstrates how to install Microsoft Hyper-V to USB flash storage and use it as a boot drive.
Note: The download linked at the bottom of this page includes Hyper-V 2012, however this same method will also work for Hyper-V 2019. To use Hyper-V 2019 instead, you will need to download it seperately and overwrite the Hyper-V 2012 image (install.wim) found in the HyperV2USB download used in this guide.
Before You Begin
- Download the HyperV2USB package.
- Extract the HyperV2USB compressed archive
- Note the location of the extracted contents (you will need to navigate here from the command prompt)
Step 1 – Create a VHD
Create a directory for your VHD, and then use the DiskPart tool to create, attach, partition, and format a new virtual hard disk. You can attach a VHD by using the attach vdisk command, which adds the .vhd file as a disk to the storage controller on the host computer.
In this example, a 12 GB fixed-type VHD will be created, which is the recommended size for a VHD being deployed on a 16 GB USB flash drive. The letter “R” will be assigned to the primary partition created on the new VHD.
TIP: A minimum of 25% of the USB flash drive storage space should be reserved for wear leveling.
To create and configure an empty .vhd file using the DiskPart tool, open the command prompt and type the following:
mkdir c:\hvvhd
diskpart
create vdisk file=c:\hvvhd\hyperV.vhd maximum=12288 type=fixed
select vdisk file=c:\hvvhd\hyperV.vhd
attach vdisk
create partition primary
assign letter=r
format quick fs=ntfs label=hyperV
exit
Step 2 – Apply the Microsoft Hyper-V Image
Ensure you have exited DiskPart, then Navigate to the folder containing the extracted contents of the HyperV2USB download.
* If you want to use Hyper-V 2019 instead, now would be the time to overwrite the Hyper-V 2012 image (install.wim) with the 2019 image. As mentioned earlier, you will need to download Hyper-V 2019 seperately.
cd\
cd <path to folder containing HyperV2USB folder>
cd HyperV2VHD
Next, the Hyper-V image needs to be applied to the VHD using the ImageX tool.
imagex /apply <image file> 1 r:\
Example:
imagex /apply install.wim 1 r:\
Use the DiskPart tool to detach the virtual disk after applying the image.
diskpart
select vdisk file=c:\hvvhd\hyperV.vhd
detach vdisk
exit
Step 3 – Prepare the USB Flash Drive
Before you can place the Hyper-V VHD on a USB flash drive, you must format it as an NTFS drive.
Insert the USB flash drive and use the DiskPart tool to determine which disk number is assigned to it.
diskpart
list disk
Identify the disk number assigned to the USB flash drive and type the following within DiskPart.
select disk <flash drive disk number>
clean
create partition primary
select partition 1
active
format quick fs=ntfs
assign letter=z
exit
In this example, the USB flash drive partition is now set as “z:”, which will be used throughout the rest of this guide.
Step 4 – Copy the VHD to the USB Flash Drive and Update the Master Boot Code
Next, the VHD needs to be copied to the USB flash drive. Ensure you have exited DiskPart, then type the following in the command prompt:
copy <VHD path\filename> <USB flash drive partition letter>
Example:
copy c:\hvvhd\hyperV.vhd z:
Upon completion of copying the VHD to the flash drive, use the Bootsect tool to update the master boot code on the USB flash drive to be compatible with Bootmgr.
Ensure you are still in the correct directory in the command prompt, then type the following:
bootsect /nt60 z: /force /mbr
Step 5 – Create a BCD store on the USB Flash Drive
Using DiskPart, attach the VHD that was just copied to the USB flash drive, then create a boot configuration data (BCD) store on the root of the flash drive.
diskpart
select vdisk file=z:\HyperV.vhd
attach vdisk
exit
bcdboot <VHD Partition Letter>\windows /s <USB Partition Letter>
Example:
bcdboot r:\windows /s z:
Step 6 – Disable Paging
Paging may cause the flash device to wear out sooner. It is recommended that paging be disabled prior to deploying the USB flash drive. Disabling paging can greatly reduce wear to the flash device, and extend the useful lifetime of the system.
By default, paging is enabled, so it must be explicitly disabled if it is deployed onto a flash device.
Ensure you have exited DiskPart; at the command prompt, type the following:
reg load HKLM\HyperVTemp r:\windows\system32\config\system
*Loads Registry Hive
reg add “HKLM\HyperVTemp\ControlSet001\Control\Session Manager\Memory Management” /v PagingFiles /t REG_MULTI_SZ /d “” /f
*Clears paging file value
reg delete “HKLM\HyperVTemp\ControlSet001\Control\Session Manager\Memory Management” /v ExistingPageFiles /f
*Deletes ExistingPageFiles entry
reg unload HKLM\HyperVTemp
*Unloads Registry Hive
Step 7 – Detach the VHD
diskpart
select vdisk file=z:\hyperV.vhd
detach vdisk
exit
The USB flash drive can now be removed from the computer and deployed to a server.
Mirror 1 (Faster): HyperV2USB
Mirror 2: HyperV2USB
Did you find this page helpful?
PID: 20190130-00001