5

Currently I have a dual boot setup where the two options are booting Windows 10 from my M.2 NVMe or from my other SATA SSD.

When I remove the SATA SSD, I cannot directly boot from the NVMe. The drive is recognized in the BIOS but it is not present in the boot manager list. It only shows up on the list if I enable CSM in the BIOS but that does not solve the issue because it fails to boot into Windows.

How can I make it so I do not need to dual boot?

System specs:

  • Mobo: Crosshair VIII Hero (Wi-fi)
  • CPU: AMD 5950x
  • OS: Windows 10 Pro (20H2)

Disk Management:

Disk-3 is the NVMe. Disk-2 is the other Windows drive.

Disk Management Screenshot

Richard Epure
  • 53
  • 1
  • 1
  • 5

1 Answers1

6

Windows Setup has a nasty habit: It sometimes picks up existing boot partitions and simply adds a new Windows installation to the boot menu there. Then you remove the old drive and Windows cannot boot anymore.

You can salvage the situation, but your new Windows installation will not have a recovery partition. It’s not really needed, but you’ll need to use a install DVD/USB to recover in case anything is wrong.

We’ll need to create a new EFI System Partition (ESP). First, you should verify your disk is indeed GPT. To do this, launch diskpart. In the command prompt window, type list disk. Verify that the “Gpt” column as an asterisk for Disk 3. If it is not UEFI for whatever reason, you cannot continue with this guide.

To create a new ESP, you’ll also need diskpart.

  1. select volume C:
  2. shrink desired 150
  3. select disk 3
  4. create partition efi
  5. format fs=fat32 quick
  6. assign letter x:

You can then exit diskpart.

To actually make the ESP hold a boot loader, we’ll need a Command Prompt (cmd) with Administrator rights. You can search in Start menu and press Ctrl+Shift+Enter to easily get one.

  1. bcdboot c:\windows /s x: /f UEFI
  2. diskpart, then select volume x: and remove

Your NVMe drive should now be bootable without relying on the old SSD. There’s a slight problem though: Your UEFI firmware will now list two entries called “Windows Boot Manager”. You’ll have to figure out which is the correct entry and put it first in the boot order.

Once you can successfully boot to the new Windows installation, you can remove the entry. Again, you need an admin Command Prompt.

  1. bcdedit /enum firmware
  2. You’ll see several entries. Take note of the identifier of any entry called “Windows Boot Manager” where the default is not {current}
  3. Issue bcdedit /delete {the-id} for any unwanted entry

Just make sure not to accidentally delete your current Windows Boot Manager entry.

Daniel B
  • 60,360
  • 9
  • 122
  • 163
  • Do I need to select the newly created EFI partition between steps 4 and 5? I don't want to accidentally reformat my drive and lose my data. – Richard Epure Feb 10 '22 at 21:37
  • Not a nasty habit. OSes - Windows or Linux - by default select the preexisting ESP to install bootloaders. This is how the EUFI boot process was designed in the first place. That user can add additional ESPs (one per additional drive) is not part of the intended design. – ChanganAuto Feb 10 '22 at 21:43
  • 1
    @RichardEpure No, creating a partition will automatically select it. – Daniel B Feb 10 '22 at 21:45
  • @ChanganAuto This behavior predates UEFI and is not about boot loaders. Windows Setup will add itself to the BCD store (or previously `boot.ini`) on _different drives_. – Daniel B Feb 10 '22 at 21:47