Dual Booting Windows 10 and Windows 10 on PCIe NVMe

I have had the need recently to dual-boot two copies of Windows 10 on my laptop. It’s more complicated than it used to be, thanks to NVMe and Secure Boot. In my case, I want to have the default Windows install for my work, and a completely separate personal install, without the overheads of virtualisation. I use Bitlocker on the personal install so it can’t be seen from the work install.

Here I will describe how I did it. This was in my case on a Dell XPS 15 9570 with a 500 GB Samsung PM981, but it should give useful pointers for people with other computers too.

Firstly, to be able to recover properly:

  • Download and run the OS Recovery Tool, so if it all goes wrong you can recover to a factory state. This write a Windows 10 image to a USB stick, 16GB is large enough.

You then need the Intel PCIe NVMe storage driver:

  • Download the WinPE 10 Driver Pack from the “Download Now” link at the top, which gives you the low-level storage driver you’ll need later.
  • Use 7Zip or something similar to extract all the files from this CAB – Windows Explorer doesn’t understand the folders inside, so don’t use that
  • Copy the contents of the extracted winpe\x64\storage\KFRJ3_A00-00\Windows10-x64\iaStorAC.inf folder to an empty folder on a USB stick. You can use the OS Recovery USB you just created, just keep that stick out when you’re booting the laptop.

Next free up hard drive space:

  • Right-click on the Windows button and click Disk Management.
  • Shrink the main C: drive in Disk Management as normal, by right-clicking on it, I did around 200 GB (204800 MB, as it calls it) of my 500 GB drive
  • To delete the OEM partitions at the end of the disk, close Disk Management which can’t delete them, right-click on the Start button and click Run, and type diskpart
  • In diskpart, type the bits in bold, but read the rest and only proceed if you undertand what you’re doing:
    • list disk and check you main drive is Disk 0
    • select disk 0
    • list part to show the partitions, there should be a tiny Primary, then your C: drive, then a gap from the shrink you just did, then two Recovery-type partitions
    • select partition 5 this was the second recovery partition on mine
    • delete partition
    • select partition 4 this was the first recovery partition on mine
    • delete partition
    • exit to finish and quit the program
  • Now you can re-run Disk Management and check, you should have a tiny boot partition, your main C: drive partition, and a nice big empty space ready for your second copy of Windows 10.

Finally, some useful drivers to get you up and running once the Windows Install has run. For my laptop, I needed:

I put these files into a newly-created c:\install folder, which will be accessible from the new Windows.

Now we can begin the actual Windows install. Insert your Windows 10 install USB – the one with your new copy of Windows, NOT the Recovery USB you just built.

In the Start menu, go to Settings, Update & Security, Recovery then click Restart Now. The laptop restarts, and the option to boot from the USB is presented. Click it.

Once you get through the language and localisation choices, you get to choose where to install the new copy of Windows, and there are no drives visible. No problem!

  • Insert the USB with the downloaded NVMe driver
  • Click “Load driver”, then “Browse”
  • Go to the folder on your USB that contains the files you extracted from the CAB above, and click OK
  • Select the driver should just list the correct one, click it and Next, and it will be installed.
  • Now back at the “Where do you want to install Windows?” dialogue box, click Refresh
  • You should now see the NVMe drive, with the nice big “Unallocated Space” ready for you to select and hit Next.

You can now let the rest of the Windows install progress through.

Once you are in Windows, you can install the drivers from d:\install (the original Windows install drive will appear as D: when in the new Windows install), and complete your instllation and setup.

The actual dual booting is a little confusing at first – when you reboot, you are presented with two OSes, both called “Windows 10”. The partition numbers are your only clue, the higher number is the one you just installed. You can choose which one you’d prefer to be the default, and the timeout.

To rename one or both of them, you:

  • Open an elevated command prompt (Click Start, type cmd, right-click “Command Prompt” and click “Run as administrator”.
  • In that command prompt, run bcdedit
  • In the resulting list of boot menu entries, you should be able to spot the one you want to rename – you need to copy the GUID (Identifier) including brackets.
  • Type the following, replacing {identifier} with what you just copied, and “Name” with the new name, in ” quotes, you want to appear in the boot menu:

    bcdedit /set {identifier} description “Name”

  • Type bcdedit again to check it’s applied correctly, then reboot to see the results.

Just be aware – if either of the Windows 10 installs is updated to a newer version (either the twice-annual new builds, or Windows Insider builds), it will become the default on the boot menu, as well as being renamed back to “Windows 10” if you did change it. This does make sense so it can boot itself to complete the install, but worth being aware of.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: