11

Here is a screenshot in Windows Disk Management showing the partition layout on my disk:

enter image description here

I wish to expand the Windows partition (C:\ drive, "Boot") into the 16 GB of unallocated space. However, Windows has "helpfully" put a Recovery Partition and EFI System Partition in the way, preventing me from expanding the Boot partition. Neither can be moved in Disk Management. I tried to use a live CD with gparted, but encountered another problem: to the right of the Recovery partition and EFI System Partition, was a Microsoft Reserved Partition of size 128 MB with the flag msftres, which could not be moved using gparted - effectively "trapping" the two partitions in.

My technique would have been to move the two partitions to the right, move the Boot partition to the right by 550 MB, put the two partitions in the newly created space, and then expand the Boot partition. However, this has been foiled by this Microsoft Reserved Partition, probably created by the Windows installation process. Wikipedia states that deleting this partition can break the boot-loader which I'd rather not do.

How can I expand my boot partition without full-on formatting the SSD and starting fresh?

3 Answers 3

18

Okay, I took the plunge and decided to try and fix it anyway, even if it involved deleting my Microsoft Reserved Partition. As Rod Smith said, the EFI System Partition is in a non-standard location as I had manually created the NTFS partition at the start of the SSD prior to installing Windows, so it placed the partition in the only place it could. Following are steps I followed to fix my problem and make room to expand the drive.

You will need the installation media, or some Windows recovery environment with DISKPART.

  1. Using GParted, move the EFI System Partition and Recovery partition out of the way, to make room for the Boot partition to move around, and apply changes.

  2. Move the Boot partition to the right, leaving enough space. The Recovery Partition is 450 MB, the EFI System Partition is 100 MB, and the Microsoft Reserved Partition is 128 MB. This gives 678 MB in total. To leave room for Windows to create more of its stupid extra partitions in the future I added 1024 MB onto this, meaning I moved the Boot partition to the right by a total of 1702 MB. Apply changes (and have a cup of tea in the meantime as this takes a while).

  3. Delete the Microsoft Reserved Partition in GParted, and apply changes.

  4. Right-click and copy the EFI System Partition in the GUI, and then paste it into the free space preceding the Boot partition - I put the EFI system Partition at the very start of the disk, as that's the standard place. Right-click the new partition, and apply the exact same flags as the old one (boot, esp). Repeat this procedure for the Recovery partition and apply the same flags as the original again, but put it at the end of the free space (next to the Boot partition) rather than at the start. Apply changes. The drive layout should now look like this:
    EFI System Partition | Free space | Recovery Partition | Boot partition | ...

  5. Delete the original EFI System Partition and Recovery Partition, and apply changes. The Boot partition is now free to grow, so I resized it to the right to fill the free space there.

  6. Boot into the Windows installation media, and press SHIFT+F10 to open the command prompt. Type diskpart. Type list disk, and then select disk X where X is the number of the physical drive containing the Boot partition. Type list partition to give you the partition list. I had the EFI System Partition at the start of the disk now which is 100 MB in size, and the partition list says that it began at an offset of 1024 kB. Windows considers a megabyte to be 1024 kB so the free space begins at an offset of 1024 + (100*1024) = 103424 kB. Type the command create partition msr size=128 offset=103424. If you have the sizes and offsets right, this should work, and in my case, it indeed did.

  7. Reboot into Windows to ensure it works fine.

I live on the edge so I didn't make a backup before I did all this, and it was fine - however I'd recommend you backup any important information on the Boot partition before doing this.

2
  • 2
    This worked excellently. I had this: EFI System Partition | Ubuntu | Microsoft Reserved Partition | Windows | Recovery and all I did was delete the Reserved one (16MB), move/resize Ubuntu a couple gigs to the right, do step 6 (but with the 16MB size of course), test Windows, boot into Ubuntu USB, let Ubuntu absorb remaining space to the left of it, shrink/move Windows to the right the desired amount, expand Ubuntu to the right, done. Everything went flawlessly and fairly quickly (due to the disk being an NVMe with 2GB/s speed). Also live on the edge so no backups or anything. Step 6 was key! Nov 8, 2018 at 14:40
  • This worked excellently for me as well. Also, if you need to recreate the Windows 10 bootloader on your EFI system partition, make sure to follow these steps as most of the other tutorials floating around out there only work to fix a MBR Windows bootloader and not a UEFI one.
    – Nathan2055
    Jun 3, 2019 at 9:13
1

The EFI System Partition (ESP) normally goes before most other partitions. Thus, either you (or a previous owner or helper) have done something unusual on your computer (re-partitioning or re-installing) or your computer's manufacturer has done something very strange. If the latter, you might want to complain to them, and perhaps even to Microsoft.

In any event, both of those partitions should be movable. I'm less familiar with the capabilities of Windows tools, but GParted normally won't move a partition if it doesn't understand its filesystem type or if the partition is mounted. Because both FAT and NTFS are known to GParted (depending on installed support packages), my guess is that your Linux emergency disk has mounted those partitions. You may be able to unmount them by right-clicking the partitions in GParted and selecting the option to unmount the partitions. (You'll do this one at a time.) Remember that moving partitions is never risk-free, though, so you should back them up before moving them. The ESP in particular is used when booting the computer, so you should be doubly careful in backing it up.

As an alternative, you might consider simply creating a new partition in the available space. Depending on how you like to arrange your files, you might be able to get this to work by storing an appropriate class of files on the resulting new partition.

2
  • I think the ESP came after the Boot partition because, prior to installing Windows, I manually created an NTFS partition at the start of the SSD.
    – Tom Galvin
    Sep 13, 2015 at 12:03
  • Windows 10 seems to do fresh installs like this now: Recovery | EFI Boot | MS Reserved | OS Partition
    – UpTheCreek
    Feb 22, 2019 at 14:55
1

I bought an Asus transformer trio (2015) which I opened only after 4 years (2019), so a Windows 10 upgrade was in order. After the update, partition setup was like this:

Recovery | EFI Boot | MS Reserved | OS

I wanted to recover disk space by deleting RECOVERY partition from the new SSD I had cloned it into and merge it with the OS partition, here was my solution:

  • Delete RECOVERY partition with mini partition tool.

  • Image the resulting partition setup sans RECOVERY, UNALLOCATED SPACE in lieu on a USB disk.

  • Recover image to my SSD via macrium reflect, with method of dragging one partition at a time to destination disk in this order: EFI Boot | MS Reserve | OS.

  • What will remain at the left/end is the UNALLOCATED SPACE which I was able to merge back to the OS partition with ease using mini partition tool.

Hope that Helps!

You must log in to answer this question.

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