Booting Hyper-V R2 off a USB stick

Booting Hyper-V R2 off a USB stick

  • Comments 16

A while ago we announced that Microsoft Hyper-V Server R2 would support booting off of a USB flash device.  We have now provided detailed documentation on how to set this up.  Even cooler than booting Hyper-V off of a USB device – is the fact that what we are doing is booting a VHD with Hyper-V installed on it off of a USB device:

http://technet.microsoft.com/en-us/library/ee731893(WS.10).aspx 

If you are like me – you will probably think: “Cool! I have to check that out!” And then after looking over that page you will think: “Eh, that seems like a lot of work…”

Thankfully Paul Despe has made a little tool that makes this dead simple.  You can grab it from here:

http://code.msdn.microsoft.com/BootHVSR2FromUSB

With this tool all you have to do is:

  1. Install the Windows Automated Installation Kit (WAIK)
  2. Grab Microsoft Hyper-V Server 2008 R2 and either burn it to a DVD or mount it with a virtual CD program
  3. Connect your USB flash device
  4. Run the tool As Administrator
  5. Select your USB flash device as your target disk
    1. Warning! You can select any disk in your system – and it will get formatted.  Make sure you are selecting your USB flash disk – and you do not have any data on the disk that you want to keep.
  6. Click on the Create Blank VHD button and choose a temporary location for the VHD
  7. Locate your copy of the INSTALL.WIM file from the Microsoft Hyper-V Server 2008 R2
  8. Hit the Start button and wait a short time (~30 minutes on my system) for everything to be setup

When it is finished you can now take your USB flash disk and boot a system off of it.  Once you have completed the standard Hyper-V Server post installation configuration – you can connect to the system remotely and start partying with Hyper-V.

You may be wondering why we are letting you do this.  Well that is captured at the top of the TechNet article, to quote:

… The scenario described in this document is only supported for original equipment manufacturers (OEM) …

… A Hyper-V Server UFD can provide virtualization capability for servers that ship with no local hard disks, and it offers the same functionality and flexibility as a Hyper-V Server installation on a physical hard-drive …

The idea here is that OEMs / System Builders that want to make diskless Hyper-V servers (where the virtual machines are stored on some form of central storage) can do so by sticking some cheap flash storage on the disk.

Myself, I just like the idea of having a Hyper-V server with me ready to go at anytime Smile

Some notes to be aware of include:

  • This is only supported for Microsoft Hyper-V Server 2008 R2.  Not for Windows Server 2008 R2.
  • It is recommended that your USB flash disk be at least 8GB in size, and that you only fill your disk up to 75% to get the best performance / life span.
    • For this reason Paul's tool defaults to creating a 6000MB virtual hard disk.  You can change the size of the virtual hard disk using the File menu.
  • While you can move the USB device from system to system and *most* things will work:
    • This is not supported (if you read the whole TechNet article you will see that this is only supported if you are using a USB device that is hard-wired to the system).
    • The virtual network switches will get disconnected whenever you move to a new system.
  • To reduce wear-and-tear on your flash device, the page file is disabled by this tool.  This means that you should not try and allocate every last megabyte in the system to virtual machines.  Try to leave some room for processes in the parent partition.

As a final note – I did not have an 8GB flash device handy for testing this out – so I actually set this up using my PlayStation Portable (PSP).  And it works!  Now I just have to figure out how to keep Hyper-V on my PSP and still use it for playing games.

Cheers,
Ben

Leave a Comment
  • Please add 7 and 5 and type the answer here:
  • Post
  • Originally as a guest post on my blog, and now on his own at http://www.garrymartin.com/blog/2009/10/native-vhd-boot-windows-7-or-windows-server-2008-r2-from-an-external-usb-drive/ , Garry Martin has also written about how to booting Windows 7/Server 2008 R2 (not just Hyper-V Server) from a USB drive (e.g. flash) - although as Ben notes above that's unsupported!

  • That's pretty clever, but I still like my 64MB ESXi 4.

    http://www.vcritical.com/2009/08/the-vmware-esxi-4-64mb-hypervisor-challenge/

    Regards,

    Eric

  • Any news on when we might get USB support inside VMs though? That would be a tad more interesting and far more likely to be used in real world scenarios.

  • @EricGray,

    I checked out your article and found it interesting.  I really like the idea of having separate USB drives with Hyper-V R2 and ESXi installed on them so that I can switch depending on what I need to demo.  My only question is this:  where do the drivers go?  Surely you're not able to fit ESXi AND all of the required hardware drivers and configured state info into just 64MB of space, are you?

  • The removable storage part is not clear to me. A USB flash drive is always a removable storage right? How does one "convert" it to non-removable?

  • Running off such a small boot volume means that in the event of a bugcheck (aka BSOD) there may not be enough space to write a memory dump file. Would the inability to write the dmp also prevent logging the details of the bugcheck to the system log?

  • Wouldn't the moving of the key to boot a different system trigger the Windows Activation again as it senses a complete hardware change  or if that only for consumer OS like Win7?

  • OtherKevin: everything you need fits in that space.

    The default (1GB) install contains other helpful items such as the vSphere Client installer (for your workstation), VM guest drivers/tools (not for ESX -- for Windows/Linux running *on* ESX), empty space for future flash image upgrades, and a core dump partition for analysis.

    Eric

  • I prefer my method. Using a small CDLive of Linux distribution (like for example TinyME or Xubuntu) with a recent kernel wich supports many devices, putting that ISO to support persitent changes and getting a fast desktop virtualization program (like for example VirtualBox) you could have your work site totally VIRTUALIZED.

    That's in fact how I actually work.

    With a fast USB pendrive (one of Corsair, 33 MB/s. for read and write) with 16 GB. of space. I've a LinuxLive distro that can run on EVERY hardware and a Windows XP virtualized in VirtualBox under that distro. With 3D and 2D acceleration enable and due to the speed of the USB pendrive (like a real IDE disk), I can assure you that I don't notice the difference between a real machine and that wich I virtualized.

    Everything goes fast, YouTube, 3D games, etc. and all from a only USB stick. When I finish working or I need to move to other PC, I just boot from it and I've my Windows XP running like always.

    This gives you many advantages:

    - Independence of the hardware: each time the CDLive runs on a different hardware, it redetects the changes and due to the persistence option, that changes are saved, so the next time you boot, it'll do it much faster.

    - No BSOD: try putting Windows XP to run on a USB as host, you'll see that nice BSOD. I hope that with Windows 7 (and its indepedence from the HAL) a reduced version could come out (like the embbeded version) wich could make the job. But till now, even Vista show BSOD when going to other hardware. Not to mention the space that Vista takes.

    - Easy Backups: because a VDI is a file like VHD, VMDK, etc., it can be easly copied to other place.

    - NO conversion needed: VirtualBox can open VHD and VMDK files WITHOUT needing to converting them. Of course, you need to make the job relative to the hardware changes from one virtual system to the other, but that's something that even VMWare vCenter Converter does in background.

    - Easy updates: when you have a new piece of hardware or need to update the Linux distribution host, it's very easy to do them without affecting the guest.

    This is the next step and it's much better than ESXi USB for many reasons (like for example that you can't install the guest on a USB, also taking out an image from a ESXi of an individual guest IS A HELL of time, etc.).

  • I tried to butcher this process a little to get a Windows 7 bootable vhd to load from an external drive on boot, but alas no joy.  Even with the right GUIDs in bootmanager and after bcdedit editing, it wouldn't have it - get a STOP 7B inaccessible boot device bugcheck on boot, others have tried to repair the installation, but I dont think thats on an external vhd......It would be nice to be able to carry a managed dev environment around on a external HDD and be able to boot to it from any machine - system specific devices not withstanding of course....Thanks for the guide.

  • I prefer my method. With a small CDLive distributing Linux (like TinyMe or Xubuntu), with a current kernel, which could support many devices supported by the standard ISO persitent to change and get a fast desktop virtualization program (like VirtualBox), you work your fully virtualized.

  • what should the contents of the usb stick look like? Just the vhd I am assuming.

  • I've created my USB stick and intend to use it on a Dell pe1850. I powered-up the server, with the USB stick attached to the back, and it BSOD's with Stop 0x7B. What's strange to me is the absence of the words: "INACCESSABLE_BOOT_DEVICE" that are usually associated with this error. It seems that Windows kernel has not yet detected the USB port I'm on, and freaks. Should I install my Hyper-V installation differently? What do you think?

    Thanks

  • Can you guide me. I have a Hyper-V virtual server that has been highjacked by a virus and the disk is full. I cannot "remote desktop" in to delete files.

    Any guidance appreciated

    bill_smith821@hotmail.com

  • So, I like this solution and I currently run it. I have one question. When I built my usb stick, I used an 8GB stick--I followed the instructions, verbatim and now I would like to move this to a 16GB stick. (Allow more room for updates etc.) Any ideas how to move my Existing VHD to a new larger stick.? I really can't build a new one and change a lot of things, because my server is a domain member, the drive setup is all done and would be rather painful to move. I am sure something like DISK COPY will not be that easy, and I know I can grow the VHD using disk part. I will play with things but if anyone has a solid suggestion it would be greatly welcomed.

    Thanks Double Z

Page 1 of 2 (16 items) 12