I've spent a lot of time trying to get my Windows 8 PC to boot again after cloning to a new SSD and try to summarise how I finally got it all working -
Firstly, boot from a UEFI Windows 8 recovery disk (CD/DVD/USB) - I found that the automated recovery process didn't find the correct Windows partition, nor when I managed to add it to BCD settings would it make it reliably bootable e.g. using BCDEDIT I got it to find and launch the Windows partition but it refused to cold boot or would not "keep" the settings after a 2nd reboot or power off.
Go into the Advanced options and run the Command Prompt.
Enter diskpart
to use the DiskPart tool to ensure you have all the right partitions and to identify your EFI partition - the key thing here is that your EFI partition is formatted as FAT32:
DISKPART> sel disk 0
Disk 0 is now the selected disk.
DISKPART> list vol
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ----- ---------- ------- --------- --------
Volume 0 E DVD-ROM 0 B No Media
Volume 1 C NTFS Partition 195 GB Healthy Boot
Volume 2 WINRE NTFS Partition 400 MB Healthy Hidden
Volume 3 FAT32 Partition 260 MB Healthy System
Then assign a drive letter to the EFI partition:
DISKPART> sel vol 3
Volume 3 is the selected volume.
DISKPART> assign letter=b:
DiskPart successfully assigned the drive letter or mount point.
Exit DiskPart tool by entering exit
and at the command prompt run the following:
cd /d b:\EFI\Microsoft\Boot\
bootrec /fixboot
Delete or rename the BCD file:
ren BCD BCD.bak
Use bcdboot.exe
to recreate BCD store:
bcdboot c:\Windows /l en-gb /s b: /f ALL
The /f ALL
parameter updates the BIOS settings including UEFI firmware/NVRAM, /l en-gb
is to localise for UK/GB locale. The localisation defaults to US English, or use en-US.
Reboot and cross your fingers.
This gave me headaches. I was going in circles for a long while. There isn't a lot of reliable info about fixing UEFI/Windows 8 at the time of writing.
[EDIT]
To re-enable Hyper-V, I also had to run the following from an Administrator Command Prompt within Windows after rebooting:
bcdedit /set {default} hypervisorlaunchtype Auto
bcdedit /set {default} nx OptIn
This doesn't apply if you're using Dynamic disks – rainabba – 2015-05-24T16:20:05.593
What is wrong with the current solutions? – soandos – 2012-08-26T00:33:06.233
@soandos I had the same problem. I executed the commands from you and harrymc, and everything works fine now! Many thanks to you both. – ComFreek – 2012-09-07T13:14:23.223
2
Just as an FYI, but we've recently released an automated EFI repair tool for Windows 8: http://neosmart.net/blog/2013/download-efi-and-uefi-repair-cds-for-windows/
– Mahmoud Al-Qudsi – 2013-03-05T16:36:36.8671I did not expect people to be having so much trouble with UEFI windows 8... How does the system partition just vanish or get corrupt anyway? It's not even mounted in windows normally so filesystem corruption can't be it. And all current OSes are bug-free enough not to muck up an existing windows installation. In fact, even windows doesn't muck up linux on UEFI, surprise of surprises. – Milind R – 2014-02-11T20:01:51.857