Resizing an EFI Partition on Windows 11
I’ve been having Windows Update failures (I’m on Windows Insider Beta Channel) on my SER 6 Max for about a year. Until recently, I was doing the short-term fonts delete fix (see below). Last night I did the proper fix and it was a lot easier than expected. Good preparation and testing afterward is the key to make sure EFI / bootmgr is healthy.
If you haven’t seen this issue with Windows update, you will soon:
- “We couldn’t update the system reserved partition”
- Error 0x800f0922
- Error (0xc1900104)
These errors are due to our 100 MB EFI System Partition (aka UEFI) being too small. The good news is the vendor left > 900MB of additional free space. It’s not just a Beelink issue, many PC vendors default to 100MB EFI, but Windows Update is expecting 512MB
How to Know if your EFI is Too Small
To view your current layout, open the Command Prompt (as Administrator) and execute the following sequence:
- Start the utility:
diskpart - Select your boot drive:
select disk 0(Note: If you have multiple drives, uselist diskfirst to identify which one contains your OS). - Display the partitions:
list partition
Example: Typical OEM 100 MB Layout
My Beelink SER 6 Max looked like this and your output will likely look similar to the table below. Note that Partition 1 is only 100 MB, which is the root cause of the update errors. Look for the offset of partition 3, or use diskmgr . You may have existing free space, and resizing partition 3 is will be unnecessary.
| Partition ### | Type | Size | Offset |
|---|---|---|---|
| Partition 1 | System | 100 MB | 1024 KB |
| Partition 2 | Reserved | 16 MB | 101 MB |
| Partition 3 | Primary | 929 GB | 117 MB |
| Partition 4 | Recovery | 847 MB | 929 GB |
The Temporary “Band-Aid”: Deleting Fonts
There is a quick (but potentially messy) workaround that often buys enough space for one update cycle: deleting unnecessary font files from the ESP.
⚠️ Warning: if the wrong files are deleted, this will break your boot manager and your system won’t boot . Run the bcdedit /enum command to verify afterward.
mountvol y: /s
cd EFI\Microsoft\Boot\Fonts
del *.*
The Proper (and Permanent) Fix: Rebuilding the EFI at 512MB
The true solution is to increase the size of the ESP to 512MB, which provides ample space for the foreseeable future. However, you cannot simply “resize” this critical partition while Windows is running. You must rebuild it.
This process is advanced and requires booting into the Windows Recovery Environment (RE) or a Bootable Windows Installation Media (USB/DVD).
⚠️ Heads Up: Disconnect all external USB drives and secondary hard drives before proceeding to prevent accidental data loss. This process modifies the system drive.
⚠️ Heads Up #2 : If you have multiple drives, run bcdedit /enum and diskpart (see below) on both to identify the active EFI partition . Take clear notes and double check every operation to make sure you are managing the proper drive.
Booting into Recovery Mode
1. The Shift + Restart Method (From within Windows)
- Step 1: Click the Start button (or click the power icon on the login screen).
- Step 2: Hold down the Shift key on your keyboard.
- Step 3: While holding Shift, click Restart.
- Step 4: Continue holding the Shift key until the blue “Choose an option” screen appears.
2. The Settings App Method
If you are already logged into your desktop, you can navigate through the system menu to trigger a recovery boot.
- Step 1: Press
Win + Ito open Settings. - Step 2: Navigate to System > Recovery (on Windows 11) or Update & Security > Recovery (on Windows 10).
- Step 3: Under the Advanced startup section, click the Restart now button.
- Step 4: Confirm the restart when prompted, and the system will boot directly into the recovery menu.
High-Level Overview of the Process
- Boot to Command Prompt: Access the Command Prompt through the recovery options (Troubleshoot > Advanced Options > Command Prompt).
- Delete the Old Partition (using
diskpart**):** You will usediskpartto identify and remove the existing, too-small System partition. - Find or Create Unallocated Space: You may need to shrink the main Windows Partition (C:) to create about 1GB of unallocated space.
- Create the New 512MB Partition: Use
diskpartto create a new EFI system partition (the syntax is critical:create partition efi size=512). - Format and Rebuild: Format the new partition (as FAT32) and then use the
BCDBoot.execommand to copy the essential Windows boot files from your main Windows installation (usually C:) back onto the new EFI partition.
Simplified Diskpart Steps (Conceptual)
This requires careful identification of your disks and volumes.
DOS
diskpart
list disk (Identify the correct disk number)
select disk <number>
list partition (Identify the System partition)
select partition <number>
delete partition override (DANGER: Ensure this is the correct partition!)
(Optional: Shrink existing main partition if no free space exists)
list volume (Identify the main C: volume)
select volume <number>
shrink desired=1000
(Create the new, larger EFI)
create partition efi size=512
# Check the EFI Type GUID (System Partition) = c12a7328-f81f-11d2-ba4b-00a0c93ec93b
detail partition
# [OPTIONAL] If not correct, be sure to set the ID
set id=c12a7328-f81f-11d2-ba4b-00a0c93ec93b
format fs=fat32 quick label="System"
assign letter=S (Or another free letter)
# Create the 16MB Microsoft Reserved Partition (MSR) # This will sit immediately after the 512MB EFI create partition msr size=16 # Note: MSR GUID (e3c9e316-0b5c-4d88-bb35-65855410a014) is set by default
exit
Rebuilding the BCD (The critical step)
After exiting diskpart (and with S: now representing your new EFI partition and C: representing your Windows volume):
bcdboot C:\Windows /s S: /f UEFI
If successful, this command rebuilds the entire Boot Configuration Data (BCD) store, placing the necessary files on the new 512MB partition.
You can then reboot your computer, remove any installation media, and Windows should boot normally from the new, larger EFI partition. Subsequent Windows Updates will no longer fail due to lack of space in the system reserved partition.
Verifying the Process
Once you have executed the bcdboot command, it is critical to verify that the boot configuration is pointing to the correct partition before attempting to reboot into Windows. You can do this using the Boot Configuration Data Editor.
- While still in the Command Prompt, type the following:
bcdedit /enum - Analyze the Output: Look for the Windows Boot Manager section (usually the first block).
- Device: This should now point to
partition=S:(or whichever letter you assigned to your new 512 MB partition). - Path: This should point to
\EFI\MICROSOFT\BOOT\BOOTMGR.EFI.
- Device: This should now point to
- Check the Windows Boot Loader section:
- Device and Osdevice: These should still point to
partition=C:, as your Windows installation itself has not moved.
- Device and Osdevice: These should still point to
If the device under Windows Boot Manager shows the correct drive letter for your new EFI partition, the rebuild was successful. You can now remove the temporary drive letter using diskpart (e.g., remove letter=S) and restart your computer.