PDA

View Full Version : Why can't find winload.efi when boot in UEFI?



demonguy
11-15-2013, 04:34 PM
I just install windows 8 using BIOS , but now i want to change it to UEFI boot. so i followed steps below

1.create and format a new FAT32 partition K:
2.my windows8 is in I: so , i use this command bcdboot i:\windows /f all /s k: and succeeded.
3.i checked with the bootice about the BCD in my K: and found it indeed point to i:\windows\ just like the picture below
https://1ke1pq.dm2302.livefilestore.com/y2pqUpLZbcZuorXES3PlpD88H5Y-9czcSIop2JdmAPWiepxAQyDpF6UEbcv9rf8CLhOxQh0uqK4X8w h9NNF0leoygtK67acALIcaBv8Y_Bz5LY/5.jpg?psid=1


4. and i restart, choose uefi boot in BIOS configuration and it showed like this:
https://cbzpmw.dm2301.livefilestore.com/y2piLorRDPDxCO19bDExf4J4ZtLD27Kjk-McLFeGmzV1Sd-snhWJ7pO_2TieYBmmEY4kvQOatVMbQZwTbe6vM-XYeQRbu3KKExzlZchzo9T4wo/1.jpg?psid=1


5. i checked my k:/windows/system32/ , there is a winload.efi file...
https://1ke1pq.dm2302.livefilestore.com/y2pqUpLZbcZuorXES3PlpD88H5Y-9czcSIop2JdmAPWiepxAQyDpF6UEbcv9rf8CLhOxQh0uqK4X8w h9NNF0leoygtK67acALIcaBv8Y_Bz5LY/5.jpg?psid=1

The most strange thing is that i've copyed my winload.efi to other computer which is already in UEFI mode , and also i've copyed it in my virtual machine, it works fine! So my winload.efi should be OK. Then what the hell is it going on?

anyone who can give me a suggestion?

Nodens
11-16-2013, 06:20 AM
It's simple.

1) Disk has to be partitioned in GPT, not MBR
2) The FAT32 partition mut be flagged as ESP, no normal fat32 primary partition will do ( create name="efi system partition" type=efisys in diskpart).

demonguy
11-16-2013, 02:35 PM
Actually, it surely can be done in MBR... I'm quite sure because i have successeded on another computer as well as in virtual machine.....
And it don't really need a esp partition, if there isn't an esp, it will search all FAT partitions and boot with the first match partition...

Nodens
11-16-2013, 06:28 PM
As far as I know Windows UEFI boot implementation requires both GPT and ESP. The UEFI will search FAT partitions (depending on implementation) but Windows doesn't like it if they're not ESP on GPT. EG in all my tests on the RIVE, the RIVE's UEFI will not find and boot EFI Shell if I place it anywhere else than an ESP partition. Linux/grub-efi is another story. If winload.efi can not be found is simply because bootx64.efi does not like your MBR/plain FAT partition scheme.

demonguy
11-18-2013, 03:20 AM
Since bootx64.efi is successfully loaded, my FAT32 works fine without ESP flag right? because it is bootx64.efi who says "can't find winload.efi"....

Nodens
11-18-2013, 03:51 AM
The UEFI, the boot manager and the boot loader are interconnected. bootx64.efi fails because the drive is not GPT so it can't find winload.efi although it's where its supposed to be. And if it could, winload.efi would fail next because it can't find ESP.. What you are trying to do will simply not work. UEFI-GPT mode is required for Windows UEFI booting. UEFI-MBR is actually legacy mode booting and is only supported via CSM and results in actual Legacy boot. When the disk is partitioned as MBR it must have a bootsector for CSM to pick it up and proceed with Legacy booting. This is what UEFI-MBR mode is.

If you don't take my word for it, you can download the UEFI specification from http://uefi.org/specs/access and read it..