Did you know that a full copy of Windows can be installed and run from a USB drive? Microsoft introduced "Windows To Go" with Windows 8 Enterprise and has continued supporting the feature in Windows 10, which can be kept on a pen drive in your pocket as a portable operating system.
This feature is intended as a convenient way for workers to carry their corporate environments with them, but having your own copy of Windows on a thumb drive could be handy for backup purposes, too, or if you frequently use public machines that lack your preferences/applications or that have a restricted OS.
For a long time this was a neat thing you could do with many Linux distros (we plan to cover Linux Live on a separate article soon), but barring driver complications and hardware limitations, a Windows To Go drive should boot from "most" computers.
Booting a Windows 10 "To Go" drive on a modern machine that shipped with Windows 10 is likely to work fine, and because performance if often of the essence, a USB 3.0 port is always desirable. Older systems that originally sold with Vista or XP may work, too, but will have reduced processing power and slower USB ports, meaning they might not meet the minimum hardware requirements, listed below:
- The ability to boot from a USB drive
- USB 2.0 ports or better
- A 1GHz+ processor
- 2GB of RAM, and...
- DirectX 9 with WDDM 1.2 or greater
Microsoft's To Go documents note that a process called "respecialize" identifies and loads drivers for a specific machine during the first boot-up, along with disabling drivers that aren't required. This profile is remembered and automatically selected on subsequent boot-ups. "In general this feature is reliable and efficient when roaming between PCs of widely varying hardware configurations," the company says, and that's a "generally fair" statement based on our observations from testing.
On the upper side of performance, running Windows 10 To Go from a 32GB USB 3.1 flash drive was quite usable for general computing/basic productivity on an old desktop and a modern laptop. However, we also experienced various complications when creating and booting different versions of Windows To Go...
Hardware and software configurations tested
Before we get to creating a Windows To Go drive, here's an overview of the testing that was performed using a variety of hardware and software combinations as well as some recommendations and considerations about configuring a portable Windows drive.
Systems used for testing
- An old Core i5 Lynnfield-based enthusiast desktop PC with USB 2.1 ports
- A new Dell XP3 13 9370 laptop with USB-C ports & USB 3.1 adapter
As a side note, the desktop also has a USB 3.1 PCIe adapter card, but the motherboard's BIOS can't see or boot from drives attached to this device. This is typical for USB expansion cards and worth mentioning in the event that you attempt to boot from one. Here is more information on how to boot from a USB drive if the subject is unfamiliar to you.
USB drives tested
- 16GB Patriot Xporter XT USB 2.0 drive (up to 30MB/s reads)
- 32GB Samsung Bar Plus USB 3.1 ($9 drive with 200MB/s reads, 300MB/s on 128GB+ models)
- 128GB Corsair Flash Voyager GTX USB 3.1 ($47 drive with 440MB/s reads & writes)
None of these are officially "certified" for Windows To Go. Besides being fast enough to run an operating system, certified USB drives are designed to appear as fixed instead of removable devices when plugged into Windows. Both types of drives can technically be used for Windows To Go, but only fixed ones will work with the creation tool built into Windows 10 Pro and Enterprise.
We'll elaborate on this later, but note that despite not being an official Windows To Go drive, the Corsair Flash Voyager GTX does appear to Windows as a fixed drive, it certainly meets the speed requirements, and is considerably cheaper than ~$200 "certified" options such as the Kingston Data Traveler Workspace, Kanguru Mobile Workspace and Super Talent Express RC4.
The ancient Patriot drive was included out of curiosity and its performance was as poor as you'd expect. Running Windows 10 on the 16GB USB 2.0 drive wasn't what we'd deem usable and no greater success was had with Windows 7 or 8. Sometimes the initial setup process for Windows 10 would BSOD or fail some other way, and when the process did complete, the performance was slow to say the least, taking upwards of 30 seconds to open a menu for instance -- if it would open at all. This configuration might only be useful for a recovery environment if you had no other option, though a lightweight Linux distro might make more sense on such a slow drive.
Conversely, the faster 200MB/s reads on Samsung's drive proved to be very usable for general computing/basic productivity on a Windows 10 To Go drive, excluding the occasional spot of lag. We purchased this drive at the recommendation of a reader. Again, this model technically isn't certified for Windows To Go and has relatively slow ~30MB/s write performance, which might matter depending on your use case. For reference, the write speed on a conventional hard drive is around 70MB/s.
Considering the fact that Samsung's drive only costs about $10, it's a great budget solution if you want to create a Windows To Go drive for basic use, although be aware that you'll have to use third party tools instead of the one built into Windows 10 -- we cover both in this article.
From what we've seen, USB drives that are certified for WTG tend to have read performance starting around the same speed as Samsung's drive along with equally fast write speeds (~200MB/s). However, as mentioned before, this level of performance is available for considerably less money on "non-certified" USB drives, which can still be used for Windows To Go via third party tools. Microsoft's official utility has other limitations as well and we imagine most of you will wind up using third-party tools.
Here are some additional non-certified drives that we recommend based on their price and advertised speed (the first two are removable and not fixed, the third should be fixed):
- $29 64GB Kingston DataTraveler Elite G2 - up to 180MB/s reads and 70MB/s writes
- $52 128GB SanDisk Extreme Pro - up to 420MB/s reads and 380MB/s writes
- $198 1TB Samsung T5 Portable SSD - advertises up to 540MB/s reads and writes
Compared to the Samsung drive already discussed, the Kingston unit trades a few MB/s on reads for a few MB/s on writes, which should be better balanced performance-wise, at least on paper anyway.
Like the Flash Voyager GTX we tested, the SanDisk Extreme Pro should eliminate any questions or concerns about the capacity and speed of your Windows To Go drive. These models are around the same cost per gig (prices change a lot) but again, the Corsair drive appears to Windows as fixed and not removable, which is ideal for a Windows To Go drive.
The best value WTG-certified drive we found was the 64GB Kingston DataTraveler Micro Duo USB 3 Type-C (not USB Type-A) for $21, though this drive's 100MB/s reads and 15MB/s writes are slower than the non-certified Kingston drive listed above for $29.
Lastly, if you were thinking about spending $200 on a faster certified Windows To Go drive, the Samsung T5 Portable SSD has 1TB of storage for the same price instead of only 64-128GB, is only a little larger than a thumbdrive, touts read/write rates of up to 540MB/s and should appear to Windows as a fixed device.
Windows versions tested as portable
- Windows 10 Pro x32 and x64 (around 5GB vs almost 8GB -- more differences later)
- Windows 10 Enterprise (required for the Windows To Go tool on Pro and Enterprise)
- Windows 7 and 8.1 x32 (not recommended unless you know they work on the host)
Although the 32-bit version of Windows 10 (build 1803) occupied around 3GB less than the 64-bit version, 64-bit managed to load Wi-Fi and touchpad drivers for our XPS 13 while 32-bit didn't. If we had to guess, you are more likely to encounter 64-bit-capable machines than 32-bit-exclusive machines at this point. There may be more 32-bit systems in existence overall, but most of them are also outdated.
We don't suggest using Windows 7 or Windows 8 To Go unless you're sure they'll boot on the systems you'll be using. Both generations BSOD'd during the initial setup on the XPS 13 9370 and even failed to load on our enthusiast PC from that era. Third-party Windows To Go creation tools also tended to fail more frequently when using Windows 7 and 8 images, which are less supported in general.
Windows 10 64-bit should have the best driver compatibility on the machines that you are most likely to use, especially if they are on the newer side.
Running Windows 10 64-bit from the ~$10 Samsung drive plugged into a USB 3.1 port was particularly usable. Booting the same configuration from USB 2.0 often saw a second or two of unexpected lag when opening menus or applications -- performance that we'd describe as "usable enough" if necessary for creating documents, browsing the web and so on.
Meanwhile, running Windows 10 on the Corsair Voyager was essentially indistinguishable from using Windows on any other SSD thanks to the drive's advertised 440MB/s read & write performance.
Creating a Windows To Go USB drive
Windows' built-in tool for making Windows To Go drives is currently supported on Windows 10 Pro, Enterprise and Education builds. And while the creation tool is available on Pro, it still requires an Enterprise image file to create the Windows To Go drive -- among other limitations.
Fortunately, there are several ways to get an Enterprise image. Microsoft offers a direct download of Windows 10 Enterprise ISO for evaluation after you fill out a form, and you can download an Enterprise install.esd file directly from them as well.
You'll also have to extract the install.wim file that's inside a Windows 10 Enterprise ISO (in the Sources folder) or convert install.esd to .wim because the built-in Windows To Go tool only recognizes .wim files, not ISOs or other formats.
Install.wim and .esd are image files with system data that can be used for a Windows installation. You can convert .esd to/from .wim using DISM++, a third-party graphical user interface for Microsoft's DISM (Deployment Image Servicing and Management), which you can also use directly from the Command Prompt.
Even if you have an Enterprise image however, the native Windows To Go utility won't work with most USB drives, including two out of three of the ones we used for testing. As we've been saying, the built-in tool only works with select USB drives that appear to Windows as "fixed" and not "removable." This is a hardware attribute of the drives.
Historically, the main difference here is that Windows can't mount multiple partitions at once on removable drives (only the first primary partition is mounted), yet Windows installation drives tend to have at least two partitions: one with boot info, another with the operating system. However, as of the Windows 10 Creators Update, the operating system can mount multiple partitions on removable USB drives, and in testing we were also able to create a bootable Windows To Go drive with only one partition.
Regardless, although the 32GB Samsung drive is recognized by the built-in Windows To Go tool, the software explains that the device is removable and thus not compatible.
While the Corsair Voyager isn't certified for WTG either, this drive is fixed instead of removable and does work with native utility, though the software recognizes that the device technically isn't certified. Again, most USB sticks are configured as removable, certified Windows To Go drives are set as fixed, while some non-certified USB drives are also configured as fixed and cost much less than WTG branded drives -- as is the case with our recommended Corsair Voyager XT.
You can determine if a drive is fixed or removable from Disk Management (search Start or Run for diskmgmt.msc). Look at the squares toward the bottom left where the drive descriptions say "Basic" or "Removable."
You can also check by entering these two commands into Command Prompt:
logicaldisk get caption,drivetype
The output should be a list of drives with numbers next to them: 0 = Unknown, 1 = No Root Directory, 2 = Removable Disk, 3 = Local Disk, 4 = Network Drive, 5 = Compact Disk, 6 = RAM Disk
If you have a fixed USB drive and an install.wim file extracted from an Enterprise ISO, the built-in Windows To Go tool should work largely as you'd expect: you choose a drive, choose an image and wait for the process to complete.
Making a removable drive appear as fixed
With some effort and risk, there are several methods you can try to make your removable drive appear as fixed, though there's not much reason to mess with this setting when third-party Windows To Go tools will work with non-fixed drives.
We aren't recommending these approaches but acknowledge there are various methods around the web that can either flip the removable media bit on your flash drive or install a filter driver on Windows so the OS determines the drive as fixed. Proceed at your own risk, namely a bricked USB drive or blue screening Windows, the latter of which we experienced when testing filter drivers and had to restore from a recovery image.
Third-party Windows To Go creation tools
Rufus is probably the most popular tool that can create a Windows To Go drive for Windows 8 and 10, though it may not be so obvious at first glance. Here's a quick guide on the Windows To Go creation process from Rufus 3.3.1. This worked for both the removable and fixed USB drives that we used for testing:
- Select a drive and ISO like you were creating a bootable OS drive any other time
- Click the dropdown menu and choose Windows To Go instead of standard installation
- Choose your desired boot sector info (using MBR + UEFI throughout testing was fine)
Windows 8, 8.1 and 10 are supported (not Windows 7). However, Rufus 3.3.1 doesn't list the Windows To Go option when using a Windows 10 1809 ISO while an 1803 ISO works fine.
The software might also send a warning if you aren't using a fixed drive, though the resulting portable OS drive still works and in fact Rufus provided the best overall performance of all the Windows To Go creation tools we tested, generally having less errors/failures.
"You are trying to install Windows To Go, but your target drive doesn't have the fixed attribute. Because of this Windows will most likely freeze during boot, as Microsoft hasn't designed it to work with drives that instead have the removable attribute. Do you still want to proceed? Note: The fixed/removable attribute is a hardware property that can only be changed using custom tools from the drive manufacturer. However those tools are almost never provided to the public."
While Rufus is the most commonly available third-party tool we can recommend for creating an "unofficial" Windows To Go drive, the software lacks some features that others provide, such as the ability to export your currently running operating system onto a portable USB drive, though this is generally locked behind a paid license.
Here are many other tools that can make a portable Windows drive:
WinToUSB - This tool is dedicated to creating Windows To Go drives and has already received an update to work with the latest build of Windows 10 (1809).
- Getting started: Select a Windows image file (.iso, .wim, .esd, .swm) and continue with the prompts. The MBR + UEFI boot configuration requires a $30 upgrade, as does the ability to export your current OS (tools > Windows To Go Conversion).
Aomei Partition Assistant - Along with being able to create Windows To Go drives from image files (.iso, .wim and .esd), this software includes a full drive partitioning suite in the same 11MB package -- convenient given the task at hand.
- Getting started: Click the "Windows To Go Creator" on the left and follow the prompts. The option to export your current OS is also in this wizard, but only the paid Professional edition (~$50) has this feature enabled.
FlashBoot - Has a variety of features for USB drives, including the ability to create one that will boot independently from your primary operating system. Again though, only the Pro version ($30) can clone your current OS as a Windows To Go drive.
- Getting started: Click Full OS > USB, select whether to prepare the drive for UEFI or MBR-based systems and then you can choose a .iso or .esd file. The software can also use the .esd file on your current installation (C:\ESD\Windows\Sources\install.esd) without downloading any additional OS data.
Note: Perhaps all of the third-party tools do this, but FlashBoot's website mentions that by using registry/driver tweaks the software "will make removable USB thumb drives always appear as fixed to Windows To Go."
Creation methods that are more hands-on
Before there were so many third-party tools to build a Windows To Go drive, the commonly recommended approach was to:
- Prepare the USB drive yourself from DiskPart in a Command Prompt.
- Use a tool to extract/install the install.wim or .esd file from a Windows ISO.
- Create boot entries on the USB drive, again using the Command Prompt.
Preparing the USB drive for Windows To Go from Disk Management or DiskPart is simple: Delete the previous volume(s), create a new volume, format that volume, give the partition a letter and then make that partition active.
At this point, the USB drive should be ready for you to install the operating system files from one of the aforementioned archive files.
Install.wim and install.esd contain compressed OS data that can be used to create a Windows installation or a To Go drive. Your Windows ISO will have one or the other -- you only need one of them and you can convert .wim or .esd files back and forth with DISM++ (GImageX requires a .wim file).
GImageX can apply the install.wim to a USB drive and this software is part of Microsoft's Windows Automated Installation Kit, though the full toolkit is more than 1GB to download whereas GImageX itself is only around 350KB (not MB).
Quick instructions for GImageX: Go to the Apply tab > choose a source install.wim file and the destination USB drive > click Apply.
After copying the system files, you'll also have to create the boot data via Command Prompt using the OS files that you just copied to the portable drive.
Enter the following line from an admin Command Prompt, where G: is your USB drive (this should only have one partition if you followed our steps, but if there is a separate partition for boot files then use that drive letter in place of the second G:).
bcdboot.exe G:\Windows /s G: /f ALL
If those methods aren't hands-on enough, Microsoft provides step-by-step instructions for creating a Windows To Go drive entirely from PowerShell commands, while this guide includes a customizable PowerShell script to automate some of the process along with extra features such as the ability to inject drivers and patches.
Export your current OS to a USB drive
This process is automated by many third-party Windows To Go creation tools, but the feature typically costs money. Not wanting to pay for premium licenses, we tested various ways to manually export our current OS from an SSD to a USB drive using a few free utilities and the Disk Management software already on Windows (diskmgmt.msc via Start or Run).
Here's an overview of the process we used to clone our actively running copy of Windows 10 Pro to a thumbdrive:
- Use Disk2VHD to create a VHD (virtual hard disk) image file of your OS drive. This is a full copy of the drive in one file so you'll need enough storage for that.
- Mount that VHD file with a drive letter in Windows: Either right-click the file and choose Mount or open Disk Management and go to Action > Attach VHD.
- With the VHD mounted, HDD Raw Copy Tool can clone the virtual drive to a physical drive (whether fixed or removable, including regular USB drives).
The USB drive might boot after cloning the VHD, though several times during testing we had to reapply boot information to the drive from an admin Command Prompt. You'll also want Disk Management open to see how many partitions are on the drive and what letters are assigned to them.
Entering the following line into an elevated Command Prompt will apply the boot information (I:\Windows is where the boot data is being copied from while H: is where the data is being copied to).
You'll want to apply the boot data to/from the Windows partition(s) that have been cloned to your USB drive, not C:\Windows. If there are two partitions on your USB drive, apply the boot files to the smaller one, while if there is only a single partition then you can apply the boot data there.
bcdboot.exe I:\Windows /s H: /f ALL
Using "/f ALL" with that command includes files for both UEFI/MBR BIOS.
Throughout testing, we also successfully made Windows To Go drives by manually creating a 500MB partition for boot files on the USB drive along with an OS partition via Disk Management.
Then we mounted the VHD as described but used File Explorer to copy all the files in the VHD to the USB drive's OS partition (this was much slower than cloning with HDD Raw Copy Tool and didn't work as reliably -- you can apply the boot data to the first partition via the method mentioned above).
Note that the free version of WinToUSB automates the creation of a Windows To Go drive using VHD files (VHDX requires a license) and the resulting drive boots directly from the VHD file.
However, our Windows To Go drive loaded to a blue screen error that read "VHD Boot Host Volume Not Enough Space" and required a registry modification to the system inside the virtual hard drive, making as much or more work out of the WTG creation process than our manual method above.
If you are going this route, you might as well change the registry setting on your system before creating the VHD so you don't have to load the registry hive separately afterward. You want to change the following registry key so the DWORD value is 4 instead of 1 to prevent the virtual disk from expanding when mounted.
With this setting applied, the VHD-based drive created by WinToUSB finally booted:
We also noticed that DISM++ can create a .wim file of your currently running copy of Windows with the "System Backup" option, and this could presumably be applied to a USB drive, though we didn't follow through on this method because the operation was taking considerably longer to complete than creating a VHD and cloning that.
Additionally, note that Rufus can copy VHD files to USB drives, though you might have to configure the boot data beyond the command mentioned above (links at the end of the article should get you started).
Also, Disk Management can create an empty VHD file (Action > Create VHD) where you can apply an install.wim file along with boot data, at which point you can clone this virtual drive to a USB drive as a Windows To Go workspace.
Best practices and configuration tips
From the user's perspective, the first time Windows To Go is booted it performs some initial configuration before presenting the familiar setup process that you go through on any fresh Windows installation (creating a user account essentially). After that, the operating system loads up as if it were installed on any other drive.
For the most part, this is a full Windows installation, though there are a few differences in configuration and usage practices.
Disabled functionality on Windows To Go:
- Internal disks are offline. This prevents data from being exchanged between the Windows To Go drive and those in the host machine. These drives can be enabled but it's not recommended because if the host machine is hibernating, you'll delete that user state and any unsaved data along with it. This may also corrupt the host PC's operating system.
- Hibernate is disabled by default. Hibernation can be re-enabled on the WTG drive, though there isn't much sense in hibernating on one machine/configuration and then attempting to reload that session on another system. Hibernation also occupies a significant amount of storage.
- Trusted Platform Module (TPM) isn't used. When using BitLocker Drive Encryption, a pre-operating system boot password will be used for security instead of TPM, which is bound to a specific computer and Windows To Go drives will move between computers.
- Windows Recovery Environment is excluded. Microsoft says you should re-image the Windows To Go drive instead. Likewise, refreshing/resetting is disabled (resetting to an OEM's standard doesn't apply for Windows To Go).
- Upgrading a Windows To Go workspace also isn't supported. Older Windows 8 or Windows 8.1 Windows To Go workspaces can't be upgraded to Windows 10 workspaces, nor can Windows 10 WTG be upgraded to future versions of Windows 10. For new versions, the drive needs to be re-imaged with a fresh copy of Windows. We did not test the software, but Hasleo (the WinToUSB developer) has a Windows To Go Upgrader.
Best practice suggestions for using Windows To Go:
- Always shut down Windows and wait for shutdown to complete before removing the Windows To Go drive.
- Don't insert the Windows To Go drive into a running computer.
- Don't boot the Windows To Go drive from a USB hub. Because of power requirements, always insert the Windows To Go drive directly into a port on the computer.
- If available, use a USB 3.0/3.1 port with Windows To Go.
- Do not install non-Microsoft core USB drivers on Windows To Go.
- Suspend BitLocker on Windows 7 host computers before changing the BIOS settings to boot from USB and then resume BitLocker protection.
- If you unplug the drive while Windows To Go is running, Windows will freeze and you have 60 seconds to plug the drive back in. After 60 seconds, the computer will shut down and your session will be lost.
- After removing the drive without shutting down properly, it's suggested that you not plug the WTG drive into another system for risk of corrupting critical system files.
Closing remarks & configurations
Ideally, network drivers will be automatically loaded when you first boot into Windows To Go, at which point any other drivers can be downloaded from Windows Update or elsewhere.
After installing a few applications on a fresh WTG drive we started receiving notifications from Windows about the 32GB Samsung drive running low on space, though there was still around 10GB free. Considering hibernation and system restore are already disabled by default, there aren't many options for saving space on a stock Windows To Go install.
If storage capacity is a concern, you may want to create your drive with the Enterprise LTSC build of Windows 10, which excludes bloat such as Cortana, the Windows Store and virtually every other pre-installed application -- including Microsoft Edge (we installed Iridium).
We reclaimed an additional 2.55GB of space on a fresh Enterprise LTSC install by compressing the operating system with the following line from an administrator Command Prompt:
While the LTSC build of Windows 10 is already pretty barebones, more built-in applications, drivers, updates and other operating system components can be added or removed to an installation image by loading the install.wim or .esd into NTLite, which can be used to create a Windows 10 ISO as lean as 700MB. If you're going this route, here's another detailed guide on configuring Windows 10 components.
Getting started in NTLite: Add a .wim or .esd file. Right click that file when it appears in the software and choose "load." When the loading process completes, you should see options on the left column.
Depending on the speed of your drive and host system, you might also want to disable animations for menus and windows, which can improve performance on lower-end machines and Windows is visually snappier without these settings enabled.
How to find these performance settings:
- From the Control Panel: System > Adjust the appearance and performance of Windows > Visual Effects tab...
- From This PC: Right click This PC > Properties > Advanced system settings > Advanced tab > Performance Settings...
The gif above demonstrates the speed difference of opening and closing OpenShell with and without one of these performance animation settings enabled ("Fade or slide menus into view").
After you've configured your Windows To Go installation, you might want to make a backup image of the drive so the operating system can be reapplied with your customizations (hint: Rufus can create an image with the save icon next to your USB drive).
Some parting commands and other useful resources:
- SFC /scannow | Performs an integrity check and replaces corrupt system files.
- DISM /Online /Cleanup-Image /RestoreHealth | Runs a similar system repair scan.
- C:\Windows\System32\sysprep\sysprep.exe /oobe /generalize /shutdown | Removes PC-specific information such as installed drivers, shuts down and reruns the initial setup process on the next boot-up.
- slmgr.vbs -rearm | Rearms the Windows trial period and lets you access all the features on a non-activated copy of Windows -- useful if not cloning your activated OS.
- Easy2Boot | Software that can apply a boot menu to your USB drive which among other features can directly boot from many of the image file types mentioned in this article (.iso, .wim, .vhd).
- HeiDoc.net Windows Download Tool | Provides an interface for downloading original Windows ISOs directly from Microsoft's servers, including Windows 7/8.1, Insider Preview/Developer/Enterprise builds and old versions of Windows 10.
- Here are Microsoft's own guides on building a Windows To Go drive, native booting from VHDs on a USB drive, as well as editing Windows boot files with BCDBoot and operating DISM via Command Prompt.