Safest way to fix "no bootable device found insert boot disk and press any key"

Len12345

Member
Aug 31, 2001
41
0
61
Running windows 10 on an nvme. I tried to swap out an older non boot drive and was greeted with the above message. Reconnected the drive and my system booted right up. It seems like using bootrec.exe from the recovery console is a way to fix this. Is there an easier or safer way? There are several bootrec commands and it's not clear which ones I actually need to use. /fixmbr /fixboot /rebuildbcd. Any ideas?
 

TheELF

Diamond Member
Dec 22, 2012
3,967
720
126
No the recovery console is the easiest and safest way if you have a single OS.
If you have a dual boot system you can load up the other OS and use easybcd which will be easier to use.
MS has a help page that does explain what each of these commands do.
Just google for one of the commands and it should be the first thing popping up.
 

Billb2

Diamond Member
Mar 25, 2005
3,035
70
86
Background:
When you install any OS the install program writes a small piece of code to the first sector (the boot sector) of the drive that is set as the boot drive in the bios. From then on, whenever the computer starts up, that small piece of code is loaded into memory and runs. That code tell the computer where the OS (actually the boot loader) is located, that boot loader then starts the OS (which can be on any drive).

The confusion comes in because people think that the drive with the Windows folder on it is the boot drive - it isn't necessarily so, as you can put the Windows folder on any partition/any drive during the install and the boot loader will point to it.

If you remove the drive that was the boot drive (ie the drive with the boot sector on it) you get the message you're seeing. As others have said, there are numerous way to fix that.
 

Insert_Nickname

Diamond Member
May 6, 2012
4,971
1,691
136
Background:
When you install any OS the install program writes a small piece of code to the first sector (the boot sector) of the drive that is set as the boot drive in the bios. From then on, whenever the computer starts up, that small piece of code is loaded into memory and runs. That code tell the computer where the OS (actually the boot loader) is located, that boot loader then starts the OS (which can be on any drive).

The confusion comes in because people think that the drive with the Windows folder on it is the boot drive - it isn't necessarily so, as you can put the Windows folder on any partition/any drive during the install and the boot loader will point to it.

If you remove the drive that was the boot drive (ie the drive with the boot sector on it) you get the message you're seeing. As others have said, there are numerous way to fix that.

Not to mention the Windows installer can get... ahh... creative where it places the boot sector in a multi drive configuration. Safest course of action is to install Windows on a single drive, then add the others afterwards.
 

TheELF

Diamond Member
Dec 22, 2012
3,967
720
126
Not to mention the Windows installer can get... ahh... creative where it places the boot sector in a multi drive configuration. Safest course of action is to install Windows on a single drive, then add the others afterwards.
No it doesn't get creative which is the problem,it blindly follows the bios settings on which drive is the first in the bootable drives list.
Adding other drives afterwards can just as easily mess up things if you put a drive on a earlier position in the boot chain (of bootable drives) say you installed windows on the only drive in the system but the drive was on sata port 2, if you then put a drive in sata port 1 or 0 you're gonna have a problem.
 

PliotronX

Diamond Member
Oct 17, 1999
8,883
107
106
Did you happen to have the original non boot drive hooked up when installing the OS to the NVME? Did this non boot drive at one time have an OS installed on it?
 

Len12345

Member
Aug 31, 2001
41
0
61
Did you happen to have the original non boot drive hooked up when installing the OS to the NVME? Did this non boot drive at one time have an OS installed on it?
I thought I just had the NVME connected (because I ran into this or a similar issue many years ago), but that may not have been the case. I don't think the non boot drive ever had an OS on it, but again not 100% on that.
 

VirtualLarry

No Lifer
Aug 25, 2001
56,226
9,990
126
Background:
When you install any OS the install program writes a small piece of code to the first sector (the boot sector) of the drive that is set as the boot drive in the bios. From then on, whenever the computer starts up, that small piece of code is loaded into memory and runs. That code tell the computer where the OS (actually the boot loader) is located, that boot loader then starts the OS (which can be on any drive).

The confusion comes in because people think that the drive with the Windows folder on it is the boot drive - it isn't necessarily so, as you can put the Windows folder on any partition/any drive during the install and the boot loader will point to it.

If you remove the drive that was the boot drive (ie the drive with the boot sector on it) you get the message you're seeing. As others have said, there are numerous way to fix that.
Note that this is only true for MBR partitions, and Legacy boot. Generally, with an NVMe, you will be using UEFI, which parses the bootloader filesystem on the device, and loads the EFI loader for the OS, at a specified path on the device, that is registered with the UEFI.
 

Insert_Nickname

Diamond Member
May 6, 2012
4,971
1,691
136
No it doesn't get creative which is the problem,it blindly follows the bios settings on which drive is the first in the bootable drives list.
Adding other drives afterwards can just as easily mess up things if you put a drive on a earlier position in the boot chain (of bootable drives) say you installed windows on the only drive in the system but the drive was on sata port 2, if you then put a drive in sata port 1 or 0 you're gonna have a problem.

If you just have a single SATA controller, yes, its pretty easy. Just start at port 0, and work upwards. If you have multiple add-in controllers, and types of controllers, it isn't always easy to figure out which ends up as the first bootable device.

I think we're talking past one another. Or I'm using the wrong translation of terms.

Anyway, UEFI mode makes everything so much easier.

I thought I just had the NVME connected (because I ran into this or a similar issue many years ago), but that may not have been the case. I don't think the non boot drive ever had an OS on it, but again not 100% on that.
Note that this is only true for MBR partitions, and Legacy boot. Generally, with an NVMe, you will be using UEFI, which parses the bootloader filesystem on the device, and loads the EFI loader for the OS, at a specified path on the device, that is registered with the UEFI.

AHCI has precedence over NVMe in most UEFIs. But as Larry wrote, in UEFI mode, the boot device should already be registered in the UEFI.