Help - Search - Members - Calendar
Full Version: Force Windows 7 install DVD to do an EFI Boot
InsanelyMac Forum > Apple World > OS X > Boot Camp
meego
Hi,

I've been trying to install Windows 7 x64 on a pure (read: no hybrid GPT/MBR) GPT disk on a MacBook Pro.

The Windows installer only allows it if it was booted from EFI. However, the hybrid BIOS/EFI implementation on Intel Mac confuses the hell out of the Windows 7 install DVD, which default to BIOS boot.

So I've been trying to force the Windows install DVD to do an EFI boot.

I think I can do that using rEFIt's shell to launch the DVD's EFI bootloader. I took my clues from this MS Technet article.

The article advises to type:
CODE
Shell> Fs0:
fs0:> \EFI\BOOT\BOOTX64.EFI

in EFI shell (here, rEFIt's)

However, this file does not exist in my W7 x64 install DVD.

There is a single \EFI\MICROSOFT\BOOT folder with the following files inside:
CODE
bcd
cdboot_noprompt.efi
efisys_noprompt.bin
cdboot.efi
efisys.bin
fonts [folder]


This is where I'm stuck. I'd love to start trying loading on of these *.efi files but rEFIt's shell can't read anything inside the DVD.

That is how it goes:
CODE
fs2:\› ls
ls/dir: Cannot open current directory - Not Found


Does anyone know what is it I am doing wrong? I think it has to do with rEFIt not being able to read the DVD's UDF filesystem. Is there a workaround?

Alternatively, I've been thinking of editing the Windows 7 install DVD to remove the BIOS bootloader to force an EFI boot. Does that sound possible?

As a side note, i recommend Rod Smith's gdisk to anyone interested in converting an Apple hybrid GPT/MBR partition table into a pure GPT table.

Cheers everyone
Keshav
QUOTE (meego @ Sep 5 2009, 10:02 PM) *
Hi,

I've been trying to install Windows 7 x64 on a pure (read: no hybrid GPT/MBR) GPT disk on a MacBook Pro.

The Windows installer only allows it if it was booted from EFI. However, the hybrid BIOS/EFI implementation on Intel Mac confuses the hell out of the Windows 7 install DVD, which default to BIOS boot.

So I've been trying to force the Windows install DVD to do an EFI boot.

I think I can do that using rEFIt's shell to launch the DVD's EFI bootloader. I took my clues from this MS Technet article.

The article advises to type:
CODE
Shell> Fs0:
           fs0:> \EFI\BOOT\BOOTX64.EFI

in EFI shell (here, rEFIt's)

However, this file does not exist in my W7 x64 install DVD.

There is a single \EFI\MICROSOFT\BOOT folder with the following files inside:
CODE
bcd
           cdboot_noprompt.efi
           efisys_noprompt.bin
           cdboot.efi
           efisys.bin
           fonts [folder]


This is where I'm stuck. I'd love to start trying loading on of these *.efi files but rEFIt's shell can't read anything inside the DVD.

That is how it goes:
CODE
fs2:\�€� ls
           ls/dir: Cannot open current directory - Not Found


Does anyone know what is it I am doing wrong? I think it has to do with rEFIt not being able to read the DVD's UDF filesystem. Is there a workaround?

Alternatively, I've been thinking of editing the Windows 7 install DVD to remove the BIOS bootloader to force an EFI boot. Does that sound possible?

As a side note, i recommend Rod Smith's gdisk to anyone interested in converting an Apple hybrid GPT/MBR partition table into a pure GPT table.

Cheers everyone


Try launching cdboot.efi file. Also it is also possible to remove BIOS booting support from Windows Installation Disc and make it boot in UEFI mode only. For this u need oscdimg.exe file from Windows Pre-installation Kit provided by Microsoft.

Copy all the files from the CD (or extract the files from the ISO file using 7-zip or something else)(including the hidden/system files) in a Windows OS. Say you copied it to D:\WIN64ISO folder.

Copy the oscdimg.exe file into D: . Then type the following commands in Command Prompt.

(i) d:

(ii) oscdimg -w4 -os -lWin_7_x64_UEFI_ISO9660 -m -o -n -pEF -e -bd:\WIN64ISO\efi\microsoft\boot\efisys.bin d:\WIN64ISO d:\Win_7_x64_UEFI_ISO9660.iso

Replace the "WIN64ISO" folder name by name of the folder where you extracted the Windows Setup disc files. After the process completes, write the Win_7_x64_UEFI_ISO9660.iso file to a disc. This disc will not boot in a BIOS system but it will boot in a UEFI system.

Note that Windows x64 versions requires a UEFI 2.x (not EFI 1.1) x86_64 (64-bit) efi firmware and compulsorily require a EFI System Partition to boot in a UEFI system. Even a 32-bit UEFI 2.x firmware will not be able to launch Windows Setup.

I currently have Windows 7 x64 RC and Windows Vista x64 SP2 in a Dual boot setup in a UEFI system in a GPT disk ( mine is not a Mac system, it is a Dell Studio 1537 - I use edk.tianocore.org DUET firmware for UEFI booting).

I have attached the 32-bit oscdimg.exe file here.
meego
Thanks Keshav for the comprehensive answer. I'll try removing BIOS support using oscdimg. However I think my Mac has an 1.1 UEFI firmware. It's a bit of a disappointment as I did a lot of research to understand the inner workings of EFI, GPT, and Apple's implementation of both, and it sounds like I won't be able to have a pure GPT/EFI sytem in the end.

Thanks for the help anyhow.
dxr
The current generation of Intel Macs run UEFI 1.1 and most defintely will not native boot Windows 7 using EFI.

I went through all the permutations (setup/oscdimg/rEFIt/WinPE/and got as far as loading a Windows 7 kernel through UEFI on a 2009 Mac Mini where it finally hung during the final osloader (winload) to kernel handoffs without booting.

Until Apple moves to UEFI 2.0 we are stuck with BootCamp.

http://darobins.spaces.live.com/blog/cns&#...5!529.entry



meego
QUOTE (dxr @ Oct 5 2009, 02:11 AM) *
The current generation of Intel Macs run UEFI 1.1 and most defintely will not native boot Windows 7 using EFI.

I went through all the permutations (setup/oscdimg/rEFIt/WinPE/and got as far as loading a Windows 7 kernel through UEFI on a 2009 Mac Mini where it finally hung during the final osloader (winload) to kernel handoffs without booting.

Until Apple moves to UEFI 2.0 we are stuck with BootCamp.

http://darobins.spaces.live.com/blog/cns&a...5!529.entry


Pretty interesting post. I went through most of these steps too before learning of that EFI version problem. This whole thing is only moderately inconvenient as Boot Camp does its job properly but a clean EFI/GPT would be so much more elegant.
mister fusion
hi, i am new to this forum, but this thread is really interesting, cause i have the same problem, and it makes me a little mad.

so if it is not possible to install vista/7 x64 using efi, maybe it's possible to later boot the installed windows using efi?
dxr
QUOTE (mister fusion @ Oct 11 2009, 04:06 PM) *
hi, i am new to this forum, but this thread is really interesting, cause i have the same problem, and it makes me a little mad.

so if it is not possible to install vista/7 x64 using efi, maybe it's possible to later boot the installed windows using efi?


NO!

In the experiments (see link above) that I did, I was attempting to boot Windows directly through UEFI. It was hard hanging during the transition from winload.exe loading the boot drivers to starting the actual NT kernel. Even if you were able to get Windows installed, this exact code path would fail.

Installing is not actually the problem, that can be done using BIOS/MBR and the boot configuration can be "fixed" to use UEFI, but it will still fail as there is some UEFI 2.0 feature that Windows requires. Version 2.0 is in the minimum configuration requirements, looks like there was a real reason for it.

Now how to convince Apple to upgrade their firmware...




maclu
Hi i am also a newbie i installed my snow leopard with Dx58so on a hardrive then windows 7 on a seperate hardrive i tried dual booting it with easybcd 2 but

1. firstly i both os shows when i should choose the os but i can only choose windows seven

2. if i try only booting my snow leopoard it shows that my operating system is missing.

i realy want to dual boot but i realy want my snow leopard working please i realy need some help.

Keshav
QUOTE (mister fusion @ Oct 12 2009, 04:36 AM) *
hi, i am new to this forum, but this thread is really interesting, cause i have the same problem, and it makes me a little mad.

so if it is not possible to install vista/7 x64 using efi, maybe it's possible to later boot the installed windows using efi?


It is possible to boot an installed Windows x64 (Vista SP1+ or 7) system in UEFI-GPT mode, even if it was previously installed in BIOS-MBR boot mode. Check out this link http://www.insanelymac.com/forum/index.php?showtopic=186440 on how to do this. This is a slightly long process but it definitely works. If you have any comments regarding the method reply in that forum link itself.
dxr
QUOTE (Keshav @ Oct 15 2009, 10:54 PM) *
It is possible to boot an installed Windows x64 (Vista SP1+ or 7) system in UEFI-GPT mode, even if it was previously installed in BIOS-MBR boot mode. Check out this link http://www.insanelymac.com/forum/index.php?showtopic=186440 on how to do this. This is a slightly long process but it definitely works. If you have any comments regarding the method reply in that forum link itself.


While the link is a great description of the conversion process that is available, be VERY SURE to read Note #1. It says that you MUST have 64-bit UEFI 2.x firmware. Apple ships NO systems with that combination. Most of this thread is discussing Apple hardware.

If you have non-Apple hardware which have UEFI 2.x, that link is great (although I would first try installing Windows using UEFI instead of converting).






QUOTE (maclu @ Oct 15 2009, 11:45 AM) *
Hi i am also a newbie i installed my snow leopard with Dx58so on a hardrive then windows 7 on a seperate hardrive i tried dual booting it with easybcd 2 but

1. firstly i both os shows when i should choose the os but i can only choose windows seven

2. if i try only booting my snow leopoard it shows that my operating system is missing.

i realy want to dual boot but i realy want my snow leopard working please i realy need some help.


I have not done exactly what you are trying to do, but it should be possible.

One area to consider is that Apple does not use the "standard" UEFI mechanism putting the initial OS loader code into the ESP partition. Apple firmware knows how to read HFS+ so when you "bless" a partition the firmware directly reads the HFS+ partition. Obviously a Dx58so doesn't have that firmware so you will probably need to copy the necessary .efi files into the ESP.

Also, most operating system installers blindly assume they own the whole system and quietly clobber anything that already exists, so the second installed OS "wins". :-(

A first step is to individually install each OS as the only OS on the system, and examine and copy the contents of the ESP. Then when you set the system up dual boot, make sure that all the necesary files exist. If you have all the correct files, any good EFI Shell should allow you to dual boot.

Other simple possibility is that you have the wrong device path for the SL drive...


Keshav
QUOTE (dxr @ Oct 16 2009, 11:22 PM) *
While the link is a great description of the conversion process that is available, be VERY SURE to read Note #1. It says that you MUST have 64-bit UEFI 2.x firmware. Apple ships NO systems with that combination. Most of this thread is discussing Apple hardware.

If you have non-Apple hardware which have UEFI 2.x, that link is great (although I would first try installing Windows using UEFI instead of converting).


I am the same person who wrote that post. Well, I do not own any Intel Mac hardware or for that matter any Mac hardware (not even the old PowerPC Macs) to try this conversion method. As I mentioned in that post I have done this conversion only in Dell India Studio Laptops till now (using DUET in USB), but it will work with any UEFI based system which is currently running in BIOS compatibility mode (like HP EliteBooks, Sony Vaio Z-series etc.). That's the reason why I put that post in Windows Discussion forum (this is purely a Windows based topic with no reference to Mac hardware).

I myself have Windows Vista and 7 x64 installed in UEFI-GPT setup. I use edk.tianocore.org DUET (UEFI64 build) in a 1GB FAT32 USB pen drive to boot Windows x64.

I have not tried to find out the effect of using EFI 1.1 x86_64 firmware (that runs in recent Intel Macs) on Windows UEFI-GPT booting process, because from the start I have been using only UEFI 2.0 x64 DUET firmware. But one thing that I am sure of, is that 32-bit EFI/UEFI firmware will not boot Windows x86 (32-bit) or x86_64 version under any circumstances (I have tried this myself). Still I like to have a Pure UEFI-GPT Windows installation rather than a BIOS + Hybrid GPT-MBR setup to boot Windows. That's why I prefer to boot Windows through a pendrive (UEFI - Pure GPT) rather than have Hybrid MBR-GPT and boot using BIOS itself.

You can check out these links if you want to try the DUET firmware compiled by me http://www.insanelymac.com/forum/index.php...t=#entry1300176 and http://www.4shared.com/file/141748872/63cea9d9/EDK_DUET.html (the actual download link).
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.