1

I am upgrading my Windows 10 boot disk. I went from a 128 GiB SSD to a 1 TiB SSD, with the old disk having the following layout:

|--99 MiB unalloc.--|--119 GiB boot--|--527 MiB recovery--| [MBR]

I successfully cloned the old to the new disk using GParted, keeping the old disk as a backup. Following this, I used mbr2gpt.exe to convert the disk to the GPT layout. The layout then looked like this:

|--99 MiB unalloc.--|--118 GiB boot--|--100 MiB EFI system--|--527 MiB recovery--|--899 GiB unalloc.--| [GPT]

Next, I followed this guide, to temporarily remove the recovery partition. Using GParted, I removed the msftrec partition.

|--99 MiB unalloc.--|--119 GiB boot--|--100 MiB EFI system--|--900 GiB unalloc.--| [GPT]

As visible, I cannot move the EFI system partition to the left since there is not enough space there. I would have to:

  1. Temporarily move the boot partition to the right;
  2. Move the EFI partition to the start of the drive;
  3. Move the boot partition to align with the start of the EFI partition;
  4. Expand the boot partition;
  5. (Add back the recovery partition.)

The final situation would be this:

|--100 MiB EFI system--|--1 TiB boot--|(--527 MiB recovery--|) [GPT]

I don't particularly care about the recovery menu since that gives even more headaches, but that should be something I can figure out by myself.

Using GParted, I know I can just force the swap to take place. However, this causes the disk to become unbootable, since Windows can be finnicky with partition order and position. What would be the best approach to performing steps 1-3, swapping and relocating two partitions?

I tried GParted, but this causes damage. I also tried AOMEI partition manager, but this did not allow me to swap around the active disk (I should have known this). Searching online only yielded results for either shady freeware or solutions to problems that did not match my symptoms. The closest matches were these these posts. Could someone either point me to a SE post that addresses this problem or give me some pointers towards a solution? Thank you in advance.

2
  • Why do you want to move the EFI partition? There's no right order for these partitions, they are identified by their ID.
    – harrymc
    Commented Mar 13 at 19:12
  • I want to move them to create a single contigious boot partition. I can't do that when there is an EFI partition in the way. Commented Mar 13 at 19:46

2 Answers 2

1

The EFI and recovery partitions are recognized by their ID, so their order and positions are immaterial.

If you just want to get the EFI partition out of the way, you can also move it to the end of the disk. This will work just as well as being at the beginning, since the partition will be recognized anywhere on the disk, and doing that will be much simpler for you.

3
  • You deleted your comment on my OP, so here was a comment on that comment: Also possible! I assume that since the order doesn't change, I can move both partitions to either end with GParted or does this have to go via Windows tools? Commented Mar 13 at 20:07
  • I deleted my comment to make it an answer... You may use any reliable partition editor. Windows doesn't do partition move.
    – harrymc
    Commented Mar 13 at 20:51
  • Sorry, that's what I meant. Thank you for your answer: I am still a bit unsure if this will work since other sources state different things. I found another source that matches some of my issues: superuser.com/questions/972227/… , but I think I have no reserved partition, as opposed to this user. I will give it a shot; the only thing I will lose will be time. Commented Mar 13 at 21:44
1

The order isn't strictly wrong; the EFI partition can be literally anywhere on the disk (anywhere that the GPT is able to describe, that is).

Use Windows tools (e.g. diskmgmt.msc or diskpart.exe) to create a dummy partition in the free space, then delete it using GParted before moving the EFI partition there. In some cases, it's the numbering of partitions that makes Windows complain (e.g. if its boot partition suddenly changes from being 1st to being 2nd), but that doesn't happen if the partitions are inserted or deleted using Windows Disk Management specifically.

Alternatively, just start fresh: nuke the current EFI partition, create a new one in the desired location, then use Windows' own bcdboot to install the bootloader there (as well as automatically generate its BCD configuration).

Don't forget to run reagentc /disable before deleting the recovery partition. This moves the recovery image (Recovery.wim) into C:\Windows, and you will need that in order to re-create the recovery partition later.

5
  • Thanks for the quick reply. I didn't know, that's a key bit of info. I am not sure I understand your second paragraph correctly; afaik I can't move with either dskmgmt or diskpart, only add, extend or delete partitions. I don't know how to move (ie. copy over another sector) a boot partition with those tools. I will look into creating a new EFI partition though; this seems to be the easiest solution. Commented Mar 13 at 20:03
  • I wasn't suggesting you move anything with diskmgmt, though. Commented Mar 13 at 21:26
  • I misunderstood. I don't exactly know how or why this dummy works, since the using the dummy would make boot | esp | empty space | dummy, and after deleting it, the ESP would be #1 in boot | empty space | esp. Recreating the ESP would mean approximately following tenforums.com/installation-upgrade/… , right? Commented Mar 13 at 21:53
  • No, it would be "dummy | boot | esp | empty space" (before using GParted to turn it into "esp | boot | empty space"). Its only purpose is to make Windows think that 'boot' has become the 2nd partition. Commented Mar 13 at 22:08
  • Ah! That makes sense. I will see if it works, but it would require a move of both ESP and boot in advance, since the ESP does not fit in the empty space to the left. If harrymc's answer doesn't work, I'll try this. Commented Mar 13 at 22:22

You must log in to answer this question.

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