Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
Well it seems my drives are about to die. :( I have to do a reinstall. But it's ok. this allows me to double check my procedure tonight, as well as check if AHCI is actually supported by the disks.

edit: N/M disks are healthy. AHCI is enabled. Check screenshot. I will be finishing up the procedure I used in a few hours.

http://i.imgur.com/GgUod.png

Does anyone have questions about this setup or things they want me to check before I finish?
 
Last edited:
Well it seems my drives are about to die. :( I have to do a reinstall. But it's ok. this allows me to double check my procedure tonight, as well as check if AHCI is actually supported by the disks.

edit: N/M disks are healthy. AHCI is enabled. Check screenshot. I will be finishing up the procedure I used in a few hours.

http://i.imgur.com/GgUod.png

Does anyone have questions about this setup or things they want me to check before I finish?

If you're running an SSD run crystaldiskmark. :)
 
Yea no SSD. My Macbook Pro has an SSD in it, albeit small capacity. Luckily this disk does enough. AHCI is enabled as well, so it's about as quick as its going to get.
 
Well it seems my drives are about to die. :( I have to do a reinstall. But it's ok. this allows me to double check my procedure tonight, as well as check if AHCI is actually supported by the disks.

edit: N/M disks are healthy. AHCI is enabled. Check screenshot. I will be finishing up the procedure I used in a few hours.

http://i.imgur.com/GgUod.png

Does anyone have questions about this setup or things they want me to check before I finish?

Where guide? ;) Did you have problems 2nd time around?
 
No problems. I just want to make sure that it is a complete guide. From finding the proper registers to install.
 
Intro
-----------------------

I have been keeping up with this thread since late 2011. Since I got my Mac Pro, I have wanted an EFI boot. I am a Systems Administrator and unfortunately, there are some things you cannot test inside a virtual machine. I have reached a point where the number of operating systems has surpassed the ability of MBR/BIOS boot methods. Therefore, I have been looking for a workaround for my problem.

It appears that this thread is all over the map. This is an effort to get the most practical issue out of the way, installation. There is a lot of theory and programming being thrown around at the beginning of the thread. We really need to split this off in it's own section. People like me are definitely interested in this aspect of the discussion. However, some just want to attempt an EFI install. That is ok as well.

This is my work spanning 21 straight days of labor + a couple weeks of intermittant attempts at getting things working the way I want them to. I cannot guarantee this will work for you. Good luck. Most of this info is freely available on the thread. However, I do not believe someone has used my method.

Prerequisites
-----------------------

1. WinPE 4.0 CD. I have atached the files to the following link:

http://dl.dropbox.com/u/4308827/WinPE4.zip

Please make sure you are able to boot this off of USB. The awesome thing about the method I used is that it cuts back on coasters. EFI is great in that you can boot off of FAT32 formatted partitions. `

2. EFI shell binary that you can drop on your EFI partition (I used rEFIt's).

3. An OS X install disk so you can be sure you can bless the EFI shell binary.

4. Slipstreamed Windows 7 install.wim that will be called from the Windows 8 installer. This is important. WinPE just allows us to boot into the environment that we need to get SOME graphical output. I tested the Win7 installer using this method and it still will not allow you to select EFI, even when you are clearly booted into it and have graphical output. The installer expects it to be called from winload.efi. If this does not happen, it will report the Drive is of type GPT error. A Windows 7 install.wim slipstreamed into Windows 8 ISO is the only way to get past this.

5. A USB drive that is large enough to just hold the contents of your ISO (I used no physical media. I installed from my Nokia N9)

6. Patience and commitment. This isn't easy, especially the 2nd part of the install where you don't see anything. You have to be able to test different drivers.

7. This isn't necesasry, but maybe a USB device that indicates it is connected will be helpful. I have a Logitech microphone with a green LED.

8. Please feel free to modify this method for your purposes. I require a dual boot System for programming in Xcode. Therefore, I will be covering a dual boot situation with OS X and Windows 7.

9. Make sure that you slipstream drivers that come directly from the Apple CD or from the boot camp distrubution itself. I did not have much success slipstreaming current nvidia drivers EVEN after expanding them and slipstreaming the drivers. I have tested this and you WILL be able to update drivers AFTER you have a Windows desktop.

Step 1 - OS X install
-----------------------------------------------

1. First make sure that WinPE live CD performs a proper EFI boot. I made a UEFI WinPE 4.0 boot disk that is located here:

Basically all you need to do is format a USB drive with fat32 and drop the files onto that disk. When you hold down Option,The EFI boot from USB icon should appear on the screen. If this step does not work, there is no reason to continue, as my method is dependent on this Live CD to work.

2. Install OS X with 2 partitions (1 being the amount of space you want allocated for OS X, and the other free space). OS X will lie to you and say it only creates 2 partitions, when it fact, it creates the proper EFI layout.

3. Finish installing OS X until you get to your desktop.

4. Mount EFI partition manually:

# mkdir /Volumes/EFI
# mount /dev/disk0s1 /Volumes/EFI

5. Extract the contents of the following file to /Volumes/Efi:

http://dl.dropbox.com/u/4308827/Grub.zip

This needs to be in here because we want EFI shell to kick everything off.

6. Bless the bootx64.efi file like so:

bless --mount /Volumes/EFI --setBoot --file /Volumes/EFI/EFI/BOOT/BOOTIX64.efi

7. Reboot. Make sure your machine kicks off EFI shell. To boot OS X manually do the following:

fs1:\usr\standalone\i386\boot.efi

Step 2 - Finding your registers
-----------------------------------------------

I only have a single GPU machine. Therefore, you will need to tweak this method to fit your hardware. Here is how you find out the proper registers if this is your first time in the shell. The end goal of this is to get the proper mm commands to set the PCI registers on the correct hardware. Trial and error is the only way I could figure out the proper hardware. Here is my quickest way to find out this info.

EFI shell:

I. Run the following command:
> pci -i -b

II. Look for hardware that says VGA controller.

III. Once you find the the line that says VGA controller, notate the BUS, DEV, FUNC column. These numbers are what you will need to run the mm command. I have illustrated this in the following picture:

http://i.imgur.com/f2dkR.jpg

IV. Trial and error phase. You will need to run the pci -i -b command using the same column of numbers for ever PCI bridge device. Luckily this shouldn't take too long. You are searching for the bus number that was notated by your VGA controller. I have illustrated the section that you are looking for in the next picture:

http://i.imgur.com/n50e5.jpg

V. Notate the bridge number. Now you will modify the PCI registers:

BB = bus
DD = device
FF = function

> mm BBDDFF3E 8 -PCI (Enable VGA on the PCI bridge)
> mm BBDDFF04 7 -PCI (Enable bus master)

And we're done. You will want to script this in startup.nsh later on. Here is how mine looks like:

bash-3.2# cat /Volumes/EFI/startup.nsh
mode 240 63
echo Setting PCI registers
mm 0003003E 1 ;PCI :8
mm 05000004 1 ;PCI :7

Let's move onto the Windows install

Step 3 - Installing Windows through WinPE
-----------------------------------------------------------

1. Shutdown the machine. Let's get a clean boot going.

2. Hold down option. Plug in the USB drive. We want to see that the USB is still a valid EFI boot medium.

3. Select EFI boot. You should see the stupid Microsft Fish. Beta != betta.

4. This environment will not load ANY installers. This is key though. It will provide a preinstallation environment. We can use this to run .exes.

5. Wait for wpeinit.exe to finish.

6. Plug in your USB drive with the contents of your ISOs.

7. Load up Diskpart to check what letter the USB drive was assigned:
>diskpart
DISKPART> LIST VOLUME
DISKPART> EXIT
>E:\ (or letter that was assigned to your USB drive)
E:\

8. cd /path/to/modified_win8_install

9. setup.exe

10. Enter the Serial for your version of Windows 7 at the prompt

11. You should be able to create an install in the free space section of the drive. The installer will create an MSR before your
newly created Partition. However, this is ok. Format the new partition just to give the installer one less hop to choke on.

12. Wait for install to finish.

13. once the install is finished, be sure to let the EFI shell load. Once it has, remove all USB drives. and type the reset command.

14. Your machine will reboot back into EFI shell. Check if the MS bootloader installed correctly:
fs0:\
ls EFI\
If you do not see Microsoft here, something possibly went wrong.

15. either run startup.nsh or ensure your registers are set correctly.

16. boot Windows:
fs0:\EFI\Microsoft\Boot\bootmgfw.efi

17. Hit caps lock and monitor if it comes back up. You need to try and determine if the install is going properly. most people get stuck here. I highly suggest plugging in a USB device with an LED so you can see USB reinitalize and determine what step the installer is in. If your machine reboots, keep loading bootmgfw.efi and start windows normally until eventually you are sitting for a long period of time. You may want to check if your caps lock key works. I leave both the caps lack key and the device with the LED on until install is complete. You may also want to hit enter on the keyboard to see if you can initiate a reboot. If you do, keep booting into windows. Do not stop.

18. The machine will reboot. Repeat the process of booting windows. Eventually your video will come up with the Setting up your machine for first user screen.

19. Once you see this screen, you know video is working. Nothing else needs to be done. Reboot normally.
Note: You may get a message stating that windows failed to boot normally. That's fine. Keep rebooting.

20. Test dual booting between OS X and Windows

21. Enjoy and have a beer or anything to regain your sanity.
 
Setting up my environment now and will try it. Also: I have made a successful upgrade of my 2009 mac to a 2010 through the awesome little tool provided on the netkas forums.
 
@DaGr8Gatzby - Nice job & thx for Guide...!!!

Don't you think you can create a new thread (e.g. "Tutorial for Install Windows in EFI") with your guide in first post.

Then you could edit and add some resources like registry for access the option of the bootcamp panel that we still could not launch (e.g. two fingers tap for trackpad, ...).

I have an installation of win7 in EFI; it works but without graphic acceleration. Do you think that if I set the correct PCI registers with your guide it could works with graphic acceleration OR I have to reinstall with the correct PCI registers.

Last question we know that PCI Registers for Graphic card are false because we could see it BUT don't you think that some other(s) PCI register(s) for other devices are false but "silent" and could make the computer unstable ?
 
Code:
C:diskpart
select disk 1
clean
convert gpt 
create partition efi size=200
create partition msr size=128
create partition primary align=1024
exit

REBOOT

I forgot about one more thing to add to that:

after create partition efi size=200
format fs=fat32 quick

that part is actually pretty important, or else the installer can't write to the filesystem, and it doesn't create or format it. the msr partition isn't as important. when you create your windows partition in empty space the msr partition will automatically get created. it's the efi partition that's a doozie, it already needs to be there and formatted at boot time or else you'll have problems during the installation. Hope this helps.

----------

example:

Code:
This is what mine looked like when i did it:

x:\sources\> diskpart
diskpart
version bla bla bla loading

diskpart> list disk
bla bla bla - the hdd that i was installing to was disk 0. may or may not be the same for you so always good to check. change 0 to whatever disk you're installing to.

diskpart> sel disk 0
diskpart> clean
diskpart> convert gpt
diskpart> crea part pri size=200

     #you can actually abbreviate down to 3 letters in diskpart

diskpart> format fs=fat32 quick label=efi

     #i labeled the drive efi for convenience, it's not necessary though


reboot

from here you should just be able to go ahead with the installer. create the partition in the wizard by clicking on the empty space, hitting advanced, and hitting new. you'll get the message "windows will create extra partitions for bla bla bla" and just hit ok and proceed with installation. You shouldn't have any errors at this point at the end regarding bcd. you'll just have the graphics thing to deal with when your computer reboots after the install... (maybe, tell me how it goes)

I wonder if I can reformat the ESP and then restore the Apple directory. I think the Windows installer does not like how OS X created the ESP. This probably means I will have to blow away OS X (again)... sigh...
 
I used SP1 from MSDN. You can PM me if you need any additional assistance.

I did use SP1. The BCD issue I'm seeing was discussed earlier in this thread. Even if I set up the BCD manually and then shutdown, the EFI shell will freeze when executing bootmgfw.efi.

I think I was better off with what I had earlier. My Win8 installs has a resource conflict that hopefully an AMD driver update can solve.

I also tried setting up the EFI partition and MSR as the only partitions on the disk and I still see the same BCD error. I have a copy of the log, if anyone wants to check it out. Every copy operation to the EFI partition fails. The only thing that seems to succeed is creating the Microsoft\Boot directory.
 
I did use SP1. The BCD issue I'm seeing was discussed earlier in this thread. Even if I set up the BCD manually and then shutdown, the EFI shell will freeze when executing bootmgfw.efi.

I think I was better off with what I had earlier. My Win8 installs has a resource conflict that hopefully an AMD driver update can solve.

I also tried setting up the EFI partition and MSR as the only partitions on the disk and I still see the same BCD error. I have a copy of the log, if anyone wants to check it out. Every copy operation to the EFI partition fails. The only thing that seems to succeed is creating the Microsoft\Boot directory.

Can you run through the install process for me? I was not able to reproduce the BCD error discussed. I am really interested.
 
Can you run through the install process for me? I was not able to reproduce the BCD error discussed. I am really interested.

2. Install OS X with 2 partitions (1 being the amount of space you want allocated for OS X, and the other free space). OS X will lie to you and say it only creates 2 partitions, when it fact, it creates the proper EFI layout.


I installed OS X with one partition and later shrunk the size after I finished updating OX.

11. You should be able to create an install in the free space section of the drive. The installer will create an MSR before your
newly created Partition. However, this is ok. Format the new partition just to give the installer one less hop to choke on.

12. Wait for install to finish.

During step 12. The BCD error occurs. I looked at the setup log under C:\Windows\Panther.... the installation stops right after creating the BCD fails. I noticed that the EFI\Microsoft\Boot\ directory didn't have most of the files I expect to see after the initial installation.

I tried to shutdown and continue installing Windows using the method that was posted earlier. Attempting to execute bootmgfw.efi causes a system freeze.
 
@duffman9000

I had same problem as you when i slipstream drivers. I was able to install using non-customize/slipstream install.wim. I can tell by way installation process went & looking at partition via OSX it install correctly. Only problem im having now is getting register right, im not able to get video.
 
@duffman9000

I had same problem as you when i slipstream drivers. I was able to install using non-customize/slipstream install.wim. I can tell by way installation process went & looking at partition via OSX it install correctly. Only problem im having now is getting register right, im not able to get video.

Hi mac-hacks,

I thinking about trying again... but I don't feel up to it right now. When you slipstreamed drivers was the EFI\Microsoft\Boot directory almost empty? That alone told me something was really wrong.

What system are you installing on? Are you also dual booting OS X?
 
How are you guys slipstreaming drivers?

I've had the AIK for Windows 7 installed for some time. IIRC, it's from not the AIK update for Windows 7 SP1. I used this during my previous install of Windows 8.

I followed the following to slipstream drivers:
http://www.techpowerup.com/forums/showpost.php?p=2129202&postcount=5

However I had to deviate somewhat when I used the /ForceUnsigned option.
The link doesn't unmount the image after committing the changes so I deviated again.

dism /mount-wim /wimfile:c:\test\install.wim /index:1 /mountdir:c:\test\install
dism /image:c:\test\install /add-driver /driver:c:\test\drivers /recurse /ForceUnsigned
dism /unmount-wim /mountdir:c:\test\install /commit

The BootCamp directory includes files (like .DLLs) that cause the slipstream to complain, but it still completes.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.