Fixing Windows 8.1 Boot by Create EFI System Partition Manually

I had made a mistake on my laptop OS configuration, which turned out wasted me 3 hours to research and fix the issue.

My laptop has a 256GB SSD disk on its SATA slot and has Windows 8 OS on it. I decided to install a separate copy of Windows 8.1 on a new 128GB MSATA disk and retire the 256GB SSD. And for make the migration easier, I installed the Windows 8.1 along with Windows 8 OS, which was a big mistake.

The boot loader for the new OS is still on the old 256GB disk. And it can make the dual boot perfectly, so I did not realized there is no boot loader on my new SSD. Then things broken up after I remove the 256GB disk as planned, as there was no boot loader on the 128GB disk and there was no EFI partition on it. The whole disk was assigned to a single primary partition with Windows 8.1 OS installed on it.

I have tried using Windows 8.1 installtion disk to make a auto-fix, but it failed. I guess the reason was simply because no EFI partition found on disk.

According to this article and this article, what I had missed were two special partitions, the System and MSR partition:

The solution came out for my problem is to shrink my Windows partition, create the two system partitions manually, then install EFI boot loader to the system partition.

Steps I have taken:

1. Boot with setup disk and enter rescue command prompt, run diskpart.exe, select disk then select my windows volume. Issue a shrink command as:

shrink desired=600

run ‘list disk’ again, now I can see I have 600MB free space on the disk.

2. Then create  and format the EFI partition:

create partition efi size=260
format quick fs=fat32 label="System"

create partition msr size = 128

3. Finally follow this post, run:

bootrec /fixboot
bcdboot c:\Windows /s b: /f ALL

to fix boot record.

4. Lastly for those who enabled hyper-v, run:

bcdedit /set {default} hypervisorlaunchtype Auto
bcdedit /set {default} nx OptIn

5. Reboot and my Windows 8.1 comes back.

Looking into my partition layout, the System partition (EFI boot partition) is on the tail of the disk. It looks wired but works.

System Partition  -Disk Management


To make further configuration to Recovery Image, see references below:

21 thoughts on “Fixing Windows 8.1 Boot by Create EFI System Partition Manually

  1. WOW I can’t believe I found this article with a single Google search. You did pretty much EXACTLY what I did. So much for making migration easy huh?

    Thank you very much for documenting your process though. I haven’t tried it yet but I will as soon as I get home. Next Challenge after fixing this will be using my old SSD for dual booting Win8.1 with either Ubuntu or Linux Mint.

  2. Out of many instructions on the web on hd migrating to SSD, this is the only one mentions bcdboot and that solved my startup repairing issue. Thank you!

  3. Thank you so much! This guide is the first that actually fixed the problem! So many thank! BTW this site is bookmarked :3

  4. I messed up my partition table by installing Linux, this helped me recover my Windows installation without losing anything!

    Thank you!

  5. thanks for this, it is obviously the solution judging from everyone elses comments,

    UNFORTUNATLY i am a relative newb and there fore do not understand how to actually take any of the actions recommended here. This is the only post i have been able to find that specifically addresses this issue to conclusion, so my only hope other than starting over from scratch is that you will kindly take the time to lay out your instructions for a novice level user explaining where to go and how to enter the recommended commands.

    thank you in advance

  6. i have a bootable flash drive that i used to install win8 from. I have since deleted the install files. must i redownload the os install files again to do this? if so, will it work from a flash drive.?

  7. Where is the 128MB MSR partition that you had created ? Not able to see in the Partition screenshot. Is msr part really necessary in the first place ?

  8. Hello,
    windows 8.1 64bit
    So far so good
    b:\efi\microsoft>bcdboot c:|\windows /l nl-nl /s b: /f ALL
    b: systeem efi partion
    c: windows partition

  9. Cloned a mbr disk to gpt, followed the instructions in this post and was able to boot with the new drive after enabling UEFI. Thanks for the info.

  10. My SSD disk have GRUB. I want change it to BCD, but the command bcdboot fails. Do I need clean all files of the ESP partition before the restore procedures with the Prompt Command?

  11. Thank you, thank you, thank you!!

    I blew an entire weekend trying to make my UEFI machine boot into a GPT drive and wondering why it couldn’t, and then trying to figure out why UEFI wouldn’t recognize the drive as bootable. Turns out, the drive cloning solution I’d used had not created a primary GPT partition.

    I was about to reformat the whole drive, and start from scratch, when I encountered this article – and it totally fixed my problems. I must have visited 30 or 40 pages before yours, and none of them had anything approaching this suggestion.

    Thank you so much!

  12. I’m too tired to go it, but I think this is my solution. I bought a laptop with Windows 10 installed on the onboard 64gb eMMC storage. There was an available m.2 slot and a put a 256gb SSD and installed Windows 10 on that. I deleted the original from the 64gb drive, but the EFI partition still existed on it. That is until I installed a Linux OS on it. That killed the EFI partition. My computer skills are not advanced by any means and didn’t even know this terminology earlier today. I reinstalled Windows on the original 64gb eMMC drive and was able to see SSD as the D: drive. It just can’t boot. It only has one partition which has the OS on it. It was using the EFI off the other drive. I’ll follow these instructions.

  13. When I gave “shrink desired=600”, it said “The volume cannot be shrunk because filesystem doesn’t support it”.

    I had created a ubuntu boot-install disk using Yumi EFI Beta. it is FAT32.


  14. then I deleted everything on the usb disk and reformatted it to NTFS,
    then I selected the volume of the usb disk and shrank by 600.

    it gave message of successful shrinking by 600

    then I gave the command to create efi partition,
    it said no free area(?) can be found to create a partition.

    then I created the original partition also so that it had entire unallotted space,
    when I again gave command to create efi partition,
    it said it can be created only on GPT disk, so convert your disk to GPT,

    how do I convert the usb disk to GPT?

    I went to w8.1 disk management, created a volume of 600 MB LESS than the total usb disk size so that the usb has 600 MB unallotted space. w8.1 formatted it to FAT32, the option to format in NTFS is just not appearing.

    let’s see how it proceeds. shall add further after trying

    not a single thing in your article is working as said.


  15. You forgot to mention that you have to assign a temporary letter after creting an EFI partition before it will be able to copy boot files. letter b: in your case

  16. finding this post makes me so happy I could cry. thank you so much for documenting this. it was the exact same issue that I was dealing with, but no other documentation had accounted for the lack of system partition. thank you thank you thank you! i’m able to access my files once again!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.