Switched hard drives… now my laptop won’t boot?

I’ve got my OS installed on an M.2 drive, and I used to have a secondary HDD. I swapped the HDD with a new one, but now my laptop won’t boot from the M.2 drive anymore. It doesn’t even show up in the boot menu.

I installed Windows on the new HDD to get it working, and I can see the M.2 drive and access all my files when booted from the HDD.

Here’s a picture of what I’m seeing: https://imgur.com/a/oWmFira

How do I get my system to boot from the M.2 drive again?

Solution I found:

https://www.reddit.com/r/buildapc/comments/uk0ymt/rebuild_windows_boot_partition_on_drive_with/

I might not be fully correct here, but I’ve run into similar problems before. It could be because the boot partition isn’t actually on the M.2 drive.

Even though you have Windows installed on the M.2, the boot files might have been on the old HDD. That’s why your system won’t boot from the M.2 drive by itself. If the M.2 doesn’t have a boot partition, it can’t load Windows.

From the screenshot, your D drive doesn’t seem to have its own system partition, which could be part of the issue.

Reinstalling Windows on the M.2 drive with only that drive connected is probably the easiest way to fix this. It makes sure the boot partition is created on the same drive as the OS. That’s why it’s often recommended to only have one drive connected when installing Windows.

@Archer
But the old HDD never had any OS installed, so I don’t get how the boot partition wouldn’t already be on the M.2.

So do I need to figure out how to create a boot partition on the M.2 drive?

Blair said:
@Archer
But the old HDD never had any OS installed, so I don’t get how the boot partition wouldn’t already be on the M.2.

So do I need to figure out how to create a boot partition on the M.2 drive?

If the HDD never had an OS, it’s strange you’re in this situation.

I don’t think you can add a boot partition to the M.2 without wiping it first. You’d probably need to back up your files, reinstall Windows on the M.2, and start fresh. That should set everything up properly.

@Archer
You can technically create a boot partition without reinstalling Windows, but it’s a bit tricky and not foolproof.

You’d need to shrink the main partition on the M.2 drive to make space for a new boot partition, then create the partition, set it up as the boot partition, and copy over the necessary files using something like this:

bcdboot c:\windows /s G: /f uefi

It depends on your drive setup and partition letters. You might also need to run commands like bootrec /fixboot and bootrec /rebuildbcd to get it working.

This method involves a lot of steps, and there’s always the risk of data loss if something goes wrong. If you’re unsure, a clean reinstall might be a safer bet.

@nanah
From what I understand, the boot partition usually needs to be at the start of the drive, and you can’t shrink the partition to make room in that direction. That might make this workaround impossible unless the order of the partitions doesn’t matter.

It’s definitely worth considering if you don’t want to wipe the M.2, but personally, I’d go for the reinstall. It’s a guaranteed fix and less risky than messing with partitions.

@nanah
I followed a guide like this and it worked for me. Here’s the steps I used:
Rebuild windows boot partition on drive with Windows on it : r/buildapc

It sounds like the EFI system partition might have been on that old HDD. Open Disk Management and take a look to see if that’s the case.