Jump to content
RESET Forums (homeservershow.com)

Running Windows 2012 R2 from USB drive

Recommended Posts


Hi all,

Here is some info I would like to share about running Windows from USB drive on a server.
As usual, I am not responsible if you destroy your server using anything described here!

A while ago, I was running Hyper-V 2012 R2 from an USB drive on HP MS G8 for more than a year - despite many people claiming that USB drives are not reliable.
I disabled the page file and was using a more-or-less recommended flash drive - Kingston Datatraveler Ultimage G3.

The disk performance of host os was limited to the internal USB2 port, however all HDDs were free for VMs and Storage Services.

At some point, I decided to use rack-mounted servers, as 16GB RAM limit on HP MS G8 was too low for me.
Long story short, I got 2 servers in the garage and installed the full Windows Server 2012 R2 OS - mainly for the amazing data deduplication feature of Storage Services.

As a full OS can wear a flash drive much quicker (I am running them with GUI enabled), I decided to use something more reliable than a simple flash drive. As I did not want to spend money for USB SSD drives (like Kingston HyperX?), I went to a much cheaper route - I got the cheapest mSATA SSD drive (Intel SSD 310 @40GB) and the cheapest mSATA-to-USB adapter. Well, the cheapest adapter didn't work on my laptop but did work on the server, so the second one was a little bit more expensive - by ~50p. In total one enclosure with a SSD drive costed me ~30GBP.

Then, I migrated the installed OS to the SSD - and this is the tricky part. I did the following:
1. Attached the SSD-in-USB-enclosure drive to the destination port on the server and all further actions were performed on the server via RDP.
2. Partitioned the destination drive according to MSDN recommendations:
  a. UEFI server: https://msdn.microsoft.com/en-us/library/windows/hardware/dn898510%28v=vs.85%29.aspx
  b. MBR server: https://msdn.microsoft.com/en-us/library/windows/hardware/dn898504%28v=vs.85%29.aspx
3. Captured the live server OS in a VHDX with Disc2vhd tool: https://technet.microsoft.com/en-us/sysinternals/ee656415.aspx
4. Mounted the captured VHDX file, assigned a drive letter to the OS partition and removed the letters from others (the tool captures them as RAW partitions even if you unchedk them from capture process).
5. Mounted the SYSTEM hive from OS on the VHD drive: http://smallvoid.com/article/winnt-offline-registry-edit.html
6. Updated the driver loading flags to load USB drivers on boot (otherwise you get BSOD when loading from USB): http://blog.frankovic.net/2010/06/install-windows-server-2008-r2-or-windows-7-on-usb-stick/
   However, by trial and error, I found that the article above does not specify the needer path for the flags key and to make it work I had to edit the key at the following location: <LOADED SYSTEM>\HardwareConfig\<some guid>
7. Removed the information about drive letters from original HDD, otherwise the OS boots from a drive different than C but certain system files get loaded from C anyway and all this leads to weird errors: http://windowsitpro.com/windows-client/changing-windows-system-drive-letter
8. Captured the OS image into a WIM file (yes, without sysprep): https://msdn.microsoft.com/en-us/library/windows/hardware/dn898498%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396
9. Depending whether the server is UEFI or MBR, the following was done to make it boot:
  a. UEFI server: use bcdboot tool and force UEFI boot configuration. I had a few automatic repairs and reboots after, but all worked in the end.
  b. MBR server: use bcdboot tool with default parameters and then use bootsect tool to fix the MBR boot record. All worked from the first try.
10. Booted the OS and verified that it indeed uses the new USB SSD.
11. Using bcdboot tool enabled the hypervisor launch (it is disabled in default configuration): http://blogs.interfacett.com/enabling-hypervisor-auto-start-boot-configuration-database-bcd

According to general recommendations, the page file was not disabled.

General recommendations:
0. DO NOT delete or alter or change or touch or do anything with the original OS HDD until you boot everything from USB SSD and set up backup and make sure it works and you are happy with it! You've been warned!
1. Set up backup asap and make sure you can restore it.
2. Have a Windows Deployment Services server running in the network - it is really helpful when you need to load Windows PE to fix broken boot records.
3. Have running all necessary remote tools - like iDRAC console on Dell, iLO on HP or iKVM/IPMI on Supermicro to avoid running around with monitors and keyboards. It is much more fun to do everything from your sofa.

For me, all is working fine so far - I will post here if I will encounter any issues or find some more interesting information.
I hope this information will be helpful to someone.

Thank you for reading!

  • Like 1

Share this post

Link to post
Share on other sites

Hey Artiom


Can I ask you about your USB 2012 install?


I plan to run 2012 R2 from the USB drive and save all 4 x 3.5 for data/VM's.  How did you choose the USB as the destination for the OS?  Did you have to make it part of the RAID setup?  Is it an off the shelf config or was all a workaround?





Share this post

Link to post
Share on other sites

Windows Installer cannot deploy OS to an USB drive - you will have to deploy it manually.

1. Partition the drive with diskpart (I am using GPT format).

2. Deploy the Win 2012 R2 from wim image with dism.

3. Update drive boot with bcdboot.

4. Plug the USB drive into server and set it as bootable.


I did this several times and everything is still working perfectly.

Share this post

Link to post
Share on other sites

Thank you.  My Microserver will be here this week so just preparing.  I may just stick in a cheap/small SSD for the OS but looking for options.  Cheers, Daren  

Share this post

Link to post
Share on other sites

Don't go smaller than at least 80 gigs.

Share this post

Link to post
Share on other sites

it all depends on the needs. My servers are running perfectly on 40GB mSATA SSDs in USB enclosures - Hyper-V + File Services. Everything else is installed in VMs.

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • Henrik
      By Henrik
      Hi Community,
      First, my specs (briefly):
      MicroServer Gen10
      AMD Opteron X3216
      Win Server 2016
      The Taskmanager shows only 1 CPU-core instead of 2.
      (ref. image 1)
      Solutions tried:
      checked msconfig...no CPU-Limit set checked, whether other users see the same amount of CPU-cores in task-manager (ref. image-link (internal) 2)  
      Anyone out there with an idea to solve this?

    • MarkFlagman
      By MarkFlagman
      Hi, everyone!
      Hoping someone can help me out with this one!
      I have a simple RDS setup of 2 servers. One is the connection broker/gateway etc (RDS001), and the other is the session host (RDS002). These are both Server 2012 R2, in the same OU, with the same GPO's applied.
      I am using HP T510 clients (running ThinPro 5.2), with an RDP connection to the farm address (rds.domain.local). The connection is working fine, however usb devices (ie memory stick) will not redirect to the session host. All the redirection options in the collection properties are ticked. Audio redirects to the client with no problem. 
      I have also tried connecting directly to the session host (RDS002) with no difference. 
      I believe the redirect settings on the T510 to be correct, as if i set up another rdp connection from the client to another server or even the connection broker (RDS001) , the usb device i have plugged to the client redirects fine. 
      So, it seems as though it is only the session host (which is where i actually want to redirect a device to..lol) having this problem. 
      However, if i connect to the session host from a windows 10 pc, everything redirects as expected - just not from the t510!
      Any help appreciated!
    • skinfreak
      By skinfreak
      Hi there,
      Over the many years of using the Gen8 there always seems to be some problem!! ;-)
      I have Windows 10 Pro install to a HDD in the ODD. The 4 3TB drives in the other bays, configured via Storage Spaces. BIOS set to AHCI and I have made use of the usb boot key to map the boot to the ODD bay. All has been resonably well for well over a year however I was never able to get Windows to update. Now I'm getting warnings that the software will be unsupported and have tried several times to do an upgrade but frequently get errors such as the installer cannot detect how much space is availble. I think that's because of the USB key.
      I don't want to go back to square one and reinstall if I cannot help it but has anyone else experienced this? I seem to recall having problems with using the B120i but cannot for the life of me remember why I stopped using it... but I know that changing to Legacy SATA should remove the need for the USB boot mapping.
    • StuMcBill
      By StuMcBill
      I've been fighting with FreeNAS over the past few weeks trying to get a Sonarr->SABnzbd->Plex system setup (as I have done many times both on Windows and Mac), however, I have had nothing but issues with FreeNAS.
      So I hoped to install Windows Server 2016, and install these 3 programs the same way I have in Windows installations before?  I realise that the Windows installation would have more overhead and could impact Plex transcoding performance, but I'm planning on installing a better processor to combat that.
      Can I install Windows to run off a USB stick like I currently have FreeNAS?
      Anything else I should be aware of?
    • Moreplavec
      By Moreplavec
      I have new Gen8 and installed SSD do 5th bay, trying to boot via USB Grub. But i can't get it to work. I switched in BIOS to USB boot and tried to install Ubuntu server 16 + /boot set to USB drive, partition created on USB (ext3). Not working.
      So i deleted all and tried to install Proxmox to SSD, without problem. Then i used tutorial to create USB bootable https://jarrodla.blogspot.cz/2014/04/hp-microserver-gen8-boot-from-5th-sata.html but again, no luck. I tried to create another three USB flash drives, still not booting, USB is skipped to next medium.
      Please, can you help me what's crucial to USB to be working as GRUB loader to boot from SSD? Thanks!

  • Create New...