How to Install Windows on Your Mac (When All Else Fails)
I have a 2011 iMac and I’ve installed Windows on it successfully before. The process was extremely straightforward. I popped in my Windows disk and let Bootcamp do its thing. Recently though I had to reinstall and I found that my built-in Superdrive is broken. Installing Windows went from being a breeze to being a nightmare in an instant.
This guide is for those of you who have tried every solution – and upon reading the numerous forums which conclude that Windows "can only be installed via Bootcamp" – have given up.
It took me a while to stumble on to the solution, which uses a combination of different tools, but it works like a charm and once you’ve done it once, it’s not that difficult. Skip ahead to the "What Does Work" section if you want to get down to work.
Read Also: How to Clean Install OS X Mavericks
What won’t work
During the course of my Windows install venture I figured out at least 6 ways which didn’t work. They all have their eureka moments, but don’t work out in the end.
1. Cleaning the superdrive
Apparently you can drape something like a lens cleaner over a thin business card, stick the thing into the slot and get to work on it. The business end of the drive is at the bottom so if you wiggle it just right, and you’re lucky, you could be successful in cleaning the thing. You can also try blowing some compressed air into it.
If you were successful in doing so you can basically skip this guide and install via Basecamp, well done!
2. Bootable USB via bootcamp
The only snag with this was that I didn’t have this option. Apparently this is only available for computers without an optical drive. There is a way in which you can enable this pretty easily though. This is something we will need to do further on as a part of our installation, but it still doesn’t work on its own.
When I saw the option, I promptly clicked on it and let Bootcamp create a startup USB for me. It worked at first, but then refused to even acknowledge it in the boot menu. I tried this with and without Bootcamp drivers and I even tried checking the "Install Windows" options which would automatically start the process for me.
I was a bit downcast but I thought: hey, let’s create a bootable USB in Windows! I found a Windows laptop and created an USB using Rufus. Of course, it didn’t work, it wasn’t seen by the boot manager. I went back and used the Windows USB/DVD Download Tool which was made by Microsoft. Still nothing. Changed another pen drive. Nope. Sigh.
3. Firmware update
Good news, my iMac model has a firmware update, and what’s more, this update has to do with "booting" stuff (is luck finally on my side?). I downloaded and installed the firmware update and after a terrifying BIOS beep, everything was back to the good old not working ways.
Oh well, at least my firmware is updated.
4. rEFInd Boot Manager
After reading a whole lot of forums I saw that using rEFInd, an alternative bootloader may help.
Once installed and loaded on startup it "saw" the USB, however, while it was able to access the drive, I always receive a "No bootable disk found" message. This was weird since the message obviously came from the boot device, why is it looking for (maybe) a CD? Try as I may, rEFInd was not the answer, although just like Bootcamp, it is a part of the final solution.
5. Using an external drive
Nope. This was the second thing I tried but it didn’t even see the CD. Once I had rEFInd installed I tried again; the CD showed up in the boot manager, but it refused to boot from it. All I got was a horizontal cursor and nothing more. One thing I didn’t try was an Apple-made external drive but while it’s possible that (for some unknown reason) this would work, I have read that it doesn’t.
6. Virtual machines
I remember from using Parallels that it can use a Bootcamp partition, allowing me to use the bootable partition as a virtual machine. I had a feeling this wouldn’t work, but it was worth a shot. Parallels (and other virtualization apps) can’t install Windows as boot partitions. They can use them once created, but only if created separately.
Again, virtual machines will be a part of our solution, but not THE solution.
What does work
Technically, it is a specific series of operations that works. My source for it is Yes, This Big – a huge thank you to them for figuring out the final solution.
Here is the simplified rundown of the solution:
- Force Bootcamp to create a bootable disk
- Create a custom virtual machine with VMware (the trial version is sufficient)
- Modify the virtual machine and install Windows onto the Bootcamp partition
- Delete all the files and copy them, from the USB key
- Boot into the Bootcamp partition using rEFInd and Install Windows normally
- Curse Apple a little bit for making this so difficult
Let’s take a look at the specifics of all these steps, by the end of which you will have a nice little Windows install!
1. Force Bootcamp to create a bootable disk
If you don’t have this option enabled, you’ll need to edit some files.
You’ll need your computer’s (1) Boot ROM version and (2) Model Identifier which can be found in System Report. (Open up Spotlight, with Cmd + Space, and type "System Information".)
Here’s a sample of what you will see:
Head on over to the Applications/Utilities folder, right-click "Boot Camp Assistant.app" and choose "Show Package Contents".
Go into the "Contents" folder and make a copy of "info.plist" somewhere, just in case. Next, open the original "info.plist" file in a text editor, and search for "USBBootSupportedModels" – it should be somewhere at the bottom.
Look up your model identifier and add it as a string, something like this:
<key>USBBootSupportedModels</key> <array> <string>Your Model Identifier</string> <string>MacBook7,1</string> <string>MacBookAir3,2</string> <string>MacBookPro8,3</string> <string>MacPro5,1</string> <string>Macmini4,1</string> </array>
Next, find the section labeled "DARequiredROMVersions" and add your Boot ROM Version in a similar fashion:
<key>DARequiredROMVersions</key> <array> <string>Your Boot ROM Version</string> <string>IM41.0055.B08</string> <string>IM42.0071.B03</string> <string>IM51.0090.B03</string> <string>IM52.0090.B03</string> <string>IM61.0093.B01</string> <string>MP11.005C.B04</string> <string>MB11.0061.B03</string> <string>MBP11.0055.B08</string> <string>MBP12.0061.B03</string> <string>MM11.0055.B08</string> </array>
You can now save and close this file.
Open Bootcamp and wonder at the appearance of the "Create a Windows 7 or later version install disk". Click all the checkboxes and let Bootcamp do its thing. You’ll need to supply it with an ISO image which you can generate with Rufus or the Windows USB/DVD Download Tool.
Once Bootcamp is done, it won’t be able to install Windows. When it reboots, press the alt button until the boot manager comes up and boot back into OS X.
2. Create a custom virtual machine with VMware
Note: I’m pretty sure this can be done with other virtualization software as well but I don’t know enough about this topic to go rogue. The trial version of VMware is more than enough for this task so you can get it done free either way.
Before we jump in, we’ll need to take a look at the disk identifier of our Bootcamp partition.
Using Spotlight to type "Disk Utility", click on the BOOTCAMP partition and press CMD + i. This will bring up a disk info window where you can find the Disk Identifier – make a note of it.
Open VMware fusion and press CMD + N to create a new virtual machine. You’ll need to click "More options…" and select "Create a custom virtual machine". Then click Continue.
Now, select the operating system you are installing, click Continue and select "Create a new virtual disk" from the next menu. Click Continue and select "Customize Settings" from the bottom of the next screen; this will let you specify the location for the virtual machine. I selected my desktop for easy access – you can safely delete it once this is all over anyway. Finish up and close VMware.
3. Modify the virtual machine and install Windows onto the Bootcamp partition
Now, we’ll use some trickery to make VMware use our Bootcamp partition as the target location for the install.
To edit the settings for the virtual machine you’ll need to open up a terminal. Once ready, type "cd " (add a space at the end) and drag the icon of your virtual machine into the terminal and press Enter.
Now you’ll need to issue a command which will link the VM to Bootcamp, take care to replace [X] and [Y] with the correct values.
/Applications/VMware\ Fusion.app/Contents/Library/vmware-rawdiskCreator create /dev/disk[X] [Y] win7_raw lsilogic
In the screenshot of my BOOTCAMP partition the disk identifier was disk0s4. The first number (0) would be X and the second (4) would be Y.
So in my case the command would be:
/Applications/VMware\ Fusion.app/Contents/Library/vmware-rawdiskCreator create /dev/disk0 4 win7_raw lsilogic
You won’t see any feedback from the terminal but if it worked, you should see a new file within the VM file.
Click on the icon for your virtual machine on the Desktop and click "Show Package Contents". This should result in a list of files – the new file you should be looking for is "win7_raw.vmdk". The next step is to edit the "Windows 7 x64.vmx" file.
Open it in your text editor and search for the line starting with "scsi0.virtualDev" and edit its value to "lsilogic". Then search for "scsi0:0.fileName" and edit its value to "win7_raw.vmdk".
Open VMware and start the virtual machine. It will ask for your password because it needs to access the Bootcamp partition. You’ll need to install Windows from the iso file you created earlier. You may need to press CMD + A to open the settings and go to the CD/DVD section. Click Autodetect and choose the iso image and click enable.
Let the installer do its thing. You’ll need to format the Bootcamp partition using the drive tools because it won’t install on a FAT32 partition. Other than that, all should be well.
4. Delete all the files and copy them from the USB key
When the installation is complete, stop VMware and delete all files from Bootcamp.
OS X will still not be able to boot from the Bootcamp partition so we’ll delete everything we’ve done, and copy the files from our USB device (I’m not quite sure what’s happening here, I suspect that we are essentially using VMware to make the drive bootable, but we need a proper bootsector from our USB drive).
In any case, you may run into some problems while deleting because OS X may refuse to write the files on your NTFS drive. I used the Tuxera trial version to get this done (worked like a charm).
Now, copy all files from your USB key onto the Bootcamp partition.
5. Boot into the Bootcamp partition using rEFInd & install Windows normally
The last step is installing rEFInd. This is usually a simple matter of running a shell script, but with Yosemite, this has been complicated a bit.
Go to the download page and download the first option, the binary zip file and unzip it.
Open the terminal, type "cd ", drag the unzipped folder (it’s something like "refind-bin-0.8.3") into it and press enter. Type the following command:
sudo bash install.sh –esp
If you’re on Mavericks or earlier this should suffice, but if you’re on Yosemite, you’ll need to do some extra work. Yosemite users should go to "/Volumes/esp/EFI/refind/" and open the "refind.conf" file in their text editor. Find the line that has "dont_scan_volumes" in it. By default this line should be commented out, indicated by a hash sign at the beginning.
Uncomment the line and add two dummy values to it, mine looks like this:
dont_scan_volumes foo,bar
Once this has been done, reboot your Mac – it should use the new boot manager automatically. If it doesn’t reboot, hold down alt and select the "EFI Boot" option in the default boot manager.
Once in, select the Bootcamp partition and install Windows as usual. Once done it is a good idea to install the Bootcamp drivers. You can grab them from Apple and install them through your brand-spanking new Windows.
6. Curse Apple a little bit for making this so difficult
Seriously, Apple? There is no need for such complexity here.
First of all, if Macs do offer the opportunity of installing Windows in the first place, and the option to do it via a bootable USB that’s already built in, why hide this from some users just because they have a disk drive? Also, I’m pretty sure that the default boot manager not seeing boot devices is an artificial limitation, it has nothing to do with the Mac not supporting things.
But in any case, hopefully this article has helped some of you who were struggling with installing Windows on your Macs. I can finally play my Windows games from Steam which was kind of the goal of this whole enterprise in the first place!