Over a million developers have joined DZone.

USB on Hyper-V Revisited with Windows-to-Go USB Drive

· Cloud Zone

Build fast, scale big with MongoDB Atlas, a hosted service for the leading NoSQL database on AWS. Try it now! Brought to you in partnership with MongoDB.

A while back, I had written an article on some options for IT Pros wishing to extend Host-attached USB devices into a VM.  With the introduction of Windows-To-Go ( WTG ) USB Drives, there’s now a new option to extend USB storage into VMs by leveraging the firmware present on WTG-certified USB devices with Windows Server 2012 hosts running the Hyper-V role.


In this article, I’ll step through the process of using WTG-certified USB Drives with Windows Server 2012 Hyper-V hosts to extend USB storage into a VM.

Hope you enjoy!

- Keith

WTG-Certified USB Drives include a modified firmware that presents a USB-connected WTG Drive as a fixed ( ie., non-removable ) storage device to a host operating system.  By leveraging this modified firmware, we can connect a WTG-drive to a Windows Server 2012 Hyper-V host and then present it as a “pass-through” disk by “hot-adding” it to the VM Settings of a particular VM.  And … VOILA! The VM sees the USB drive!

Let’s step through the process together …

  1. Acquire a Windows-To-Go Certified USB Drive from one of the tested manufacturers.  There’s a variety available to choose from.
  2. Connect the WTG USB Drive to your Windows Server 2012 Hyper-V Host using an available USB 2.0 or USB 3.0 port ( USB 3.0 is preferred for best performance ).
  3. From the Host operating system, format the WTG USB Drive as you would normally do for any other USB storage device.
  4. Using the Disk Management MMC Tool from the Host operating system, take the WTG USB Drive offline by right-clicking the Disk and selecting Offline.
    Disk Management Tool – Take WTG Drive Offline at Host
  5. Using Hyper-V Manager from the Host operating system, Add a new SCSI hard disk as a pass-through Physical hard disk in the Settings of a VM.  You can complete this step even while the VM is actively running, because SCSI hard disks are supported for hot-add and hot-remove operations with VMs.
    VM Settings – Add WTG Drive as a SCSI Physical Hard Disk
  6. Using the Disk Management MMC tool at the VM console, right-click on the newly added disk and select Online to bring the WTG Disk online inside the VM.
    Disk Management Tool – Bring WTG Disk Online at VM
  7. Using the Disk Management MMC tool at the VM console, right-click on the Primary Partition that you previously formatted and select Change Drive Letter and Paths… to assign a drive letter to the WTG Disk from inside the VM.
    Disk Management Tool – Assign Drive Letter to WTG Disk

Completed! Your USB-attached WTG Drive is now available from inside your VM.  When you’ve completed working with your USB WTG Drive, just reverse the steps to detach and remove the WTG Drive from your VM Settings.

Try it Yourself!

You can try the steps in this article yourself by downloading Windows Server 2012 and stepping through our lab to install Windows Server 2012 with the Hyper-V role as a dual-boot OS on your existing laptop or desktop computer.

Do You Have Other Cool Hyper-V Tips to Share?

Have you found cool Hyper-V tips to share with other IT Pros?  Feel free to include them in the Comments below so that we can share with others in our community!


Now it's easier than ever to get started with MongoDB, the database that allows startups and enterprises alike to rapidly build planet-scale apps. Introducing MongoDB Atlas, the official hosted service for the database on AWS. Try it now! Brought to you in partnership with MongoDB.


Published at DZone with permission of Keith Mayer, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}