0

I want to change what partition is my windows "System" partition so I can get rid of the drive

Not sure how I got in this situation but:

I have an old, failing drive with a single partition on it, which is letter F. In Disk Management this is marked as the "System" partition, despite there being no Windows folder on it

I have an SSD with my (windows 10) C: drive on the first partition, marked "Boot", which I've been using for a year or two without issues, and a linux installation on the second partition. Grub is installed to this SSD so I can dual boot the two partitions.

The SSD is the only drive in my BIOS boot order, and Grub opens successfully, and lists

  • my linux installation (sdb2)
  • "Windows 8" (sda1, my F: drive, not sure why it thinks there's a windows 8 install around)
  • "Windows 10" (sdb1, my C: drive)

If I unplug the failing F: drive, then "Windows 10" will fail to boot, complaining about a missing device with the UUID of my F: drive

If I plug in the F: drive, then both "Windows 8" and "Windows 10" will boot fine

If I uninstall grub, this same issue will come up, windows won't boot without the F drive, even though windows is on the C drive and the BIOS is pointing at the C drive, so I don't think grub is an issue here

The only instructions I can find online for changing your System partition say to set the drive you want as your primary boot device in the bios, then run startup repair on a windows install disk. This doesn't do anything.

Opening the command line in the windows install disk and running bootrec /scanos doesn't find my OS. bcdboot C:\Windows /s C: /f ALL says there's an error writing the data, but doesn't say what the error is.

How can I move the System partition to my OS drive?

2 Answers 2

1

A few key bits of info that weren't really obvious elsewhere online that I was able to use to figure this out:

(when using a recovery cd/live usb to repair windows boot)

  1. Commands like bootrec and bcdedit default to assuming the first hard drive is your system partition, and in fact, running some of these will make it your system partition
  2. using active in diskpart changes what drive some of these commands use.
  3. You really want a separate system partition that's not your OS partition. If you do this, it won't have a letter (for safety), so every time you open the recovery disk you need to manually assign it a letter (it seems that S: for 'system' is common)
  4. Running bcdedit without any arguments will print the current BCD. This is what windows uses to boot. the bootmgr mentioned here is the bootloader, which goes on your system partition. So after using diskpart to make the proper, separate system partition on your correct drive as active, then running bootrec /fixmbr, bootrec /fixboot, and bootrec /rebuildbcd, you should see in bcdedit that the bootmgr is on the S: drive, and whatever partition has your Windows/ folder is on the other listing. Then you know that your BCD is set up correctly, and it'll be safe to disconnect other drives not mentioned in the BCD without affecting your boot
  5. I saw the command bcdboot C:\Windows /s C: floating around a bunch too, but it was never really clear what drive letters to use. the C: in C:\Windows is the drive letter of your \Windows install according to diskpart. If your drive isn't the first drive, the recovery disk won't give it the C: letter, even though if you were to boot into your windows installation whatever drive the installation is on automatically gets C:. The C: in /s C: is the letter of your system partition (S: if you did what I said earlier).
  6. You can also add a /v to the bcdboot command to see what it's actually doing, which is copying some default files from the windows install to the system partition to get it to boot.
  7. Sometimes bcdedit won't be able to find your BCD file. You can use /store to specify the full path to the file.
  8. Don't trust the 'automatic startup repair' windows offers. Once I knew how to actually print out the BCD, etc and verify what my setup was doing, I was able to see that it was making completely wrong decisions

Once I knew all this, I was able to troubleshoot my way through things and get windows booting off my new drive. No need for the old drives, no need to re-install windows.

0

Trying to move the system partition to another drive is very most likely not a workable approach. Windows 10 needs the UEFI partition as well.

Start with a bootable Windows USB Key and see if you can recover data. Condition of the existing drive may prevent this.

Then replace the drive and rebuild Windows.

Hopefully you have an external backup.

2
  • I am not using UEFI, so that is not an issue. All the data is intact and backed up. I'm trying to avoid having to reinstall all my software, etc since the windows install itself is still completely serviceable.
    – zacaj
    Commented Feb 28, 2023 at 0:30
  • Your system is in a bit of a mess, so backing up and reinstalling is really your only practical choice at this point. Windows 10 and up really should be using UEFI and Secure Boot. Looking ahead to Windows 11 (very soon now) you must.
    – anon
    Commented Feb 28, 2023 at 0:31

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .