Windows – How to Move Microsoft Reserved Partition in Gparted

gpartedmovepartitioningwindows

There is similar question about moving msr, but it asks about previous version of gparted which did not supported that: Move MSR partition?

Now, I know I can move msr left and right without a problem. But in my case msr was laying in-between of two other partitions, which I wanted to resize, and it was inconvenient. I wanted to make a jump move of it (see this about jump moving: Can Gparted make a jump move of a partition?) to get it out of the way.

But after I did it (copy, paste, delete original), Windows could not be booted anymore.
I noticed that new partition in Partition Type in cgdisk is “Linux filesystem”, but not Microsoft reserved. I fixed that, but it did not help.
I remembered original partition’s uniq guid before removing it. But even when I used original uniq partition guid for the new msr, it did not help.

The question is: why Windows disliked moving of msr? Can I fix it without reinstalling Windows?

Best Answer

Short answer: Yes, you can move msr to another location with gparted, but you also will need to keep some conditions (described further), otherwise, Windows could not be booted.

I explored which conditions caused boot failure using virtual machines. Here are the facts:

  • MSR may be anywhere physically at a disk space.
  • It may have other number then was used originally for it.
  • msr partition number can be greater than windows partition number
  • There should not be any skipped partition numbers between msr and windows partition if msr partition number is smaller than windows’ partition number.
    To change partition number, use gdisk, type x, then t, then number of the partition, then new number which will be used for that partition, then w, then answer yes to write changes to drive.

  • you can shrink (or move) windows partition (ntfs disk C) from the beginning and from the end without a problem (at least for gpt booting).

  • Partition Type (GUID) is not necessary need to be Microsoft reserved. Windows successfully booted when I set it to Linux filesystem. But still it is better to set it correctly to easier identify this partition by yourself. In cgdisk its type is 0c01 which is E3C9E316-0B5C-4DB8-817D-F92DF00215AE in gpt.
  • Partition name is not important. Windows successfully booted when I set its name to another string. Originally it is set to “Microsoft reserved partition”.
  • Partition unique GUID is not important. Windows successfully booted after this number was randomized.

What I did not tested is if it is possible to make it less than 16 Mib. If in gparted I moved a partition to the very end of the disk space, partition started displayed as 15 mb (I think the last sector is shorter than all other normal sectors) and after applying changes, it failed. Gparted refused to move that partition, because it does not know how to shrink “unknown filesystem”.

Related Question