26 April 2009

Install Windows on Macbook Air with no external drive

Normally to install Windows on a Macbook Air through Boot Camp, you require an external SuperDrive. What a pain - I'm not prepared to pay for something I won't use for any other purpose. Of course I could (and have) installed Windows in a VM but it just isn't as speedy; sometimes I need good performance for my Windows apps.

The "normal" way to install apps on a Macbook Air is to use downloaded versions or Remote Disc. Neither will work for your Windows install. However after much experimentation I have come with a solution that will work.

Disclaimer: The solution I am proposing requires you to be both technically literate and careful. You could completely destroy your data if you are not careful so create full backups of everything before you begin. I'm not responsible for anything you do. Additionally, you shouldn't assume that I've done anything the "right" way - this process was created through trial and error, not an expert knowledge of the software or processes in question.


Here's what you need:

  • A Macbook Air with plenty of free hard drive space.
  • A full, legal copy of Windows Vista or Windows 7 (I haven't tried this with XP).
  • Parallels Desktop (A trial version should be enough).
  • A USB drive of any size.
  • Another computer with a DVD drive and Remote Disc software.
  • Your Macbook Air OS X install disc.
To clarify the above, I believe this is more likely to be a success with Vista or 7 because of their image based install process - a generic image is copied to the hard drive and then customised for your system. This process might work with Windows XP but I haven't tried it. If you do feel adventurous enough to try it then let me know how you got on. Additionally, I'll note that although Apple states that only 32-bit operating systems are supported, I have used 64-bit Windows 7 with no problems.

Let's begin.

If you don't have it already, you should download and install Parallels now. If you already have Parallels, be sure to get the latest Parallels updates. Earlier releases don't work with Windows 7, for example.

Now we need to get our Windows installation files onto the Mac. Use another computer to create an ISO disc image of your Windows DVD (unless your Windows is an ISO already). I like ImgBurn (a Windows app) for these purposes. Copy the ISO to your Mac in your favourite way (network, usb drive etc).

Now it's time to launch the Boot Camp Assistant. Follow the process as normal, right up to the point where it's time to start the Windows installation.

At this stage, just quit the installer (⌘+Q).

Hint: Check now that your Boot Camp partition has not decided to mount itself, otherwise Parallels sometimes gets upset. You can unmount it from Disk Utility if needed.
Start up Parallels and create a new virtual machine.
Skip Detection and select your version of Windows. Be sure to choose the Custom option.
 
The defaults are fine until you get to the Hard Disk Options.
As tempting as it is to select Boot Camp Partition, don't do that. Instead, choose No hard disk. Sometimes Parallels seems to set things up wrong when you choose the Boot Camp Partition option here.
Open the configuration for the virtual machine and configure the CD/DVD-ROM. Choose the Windows ISO file you copied over earlier.
 
Click the + button and add a Hard Disk. Now you can choose the Boot Camp Partition option.
 
Last thing to check - choose the Boot Order option and make sure the CD/DVD-ROM is top of the list.
Time to begin! Start your virtual machine.
Hint: Parallels can be really fussy about Boot Camp partitions sometimes. If you get an error when you try to save your configuration or start the VM, a fix that often works is to close Parallels and then run this command in your terminal: mv "/Library/Parallels/Parallels Service.app/Contents/MacOS/BootcampConfigurator" "/Library/Parallels/Parallels Service.app/Contents/MacOS/BootcampConfigurator.old"
Good ol' Windows installer.
Make sure you choose your BOOTCAMP partition. You might find you need to click the Drive Options link then Format your BOOTCAMP partition, depending on the version of Windows your are installing.
Follow the typical installation process but keep your eyes on it. You want it to keep on installing until the first time it tries to reboot. Just as it shuts itself down to reboot, stop the VM!
Quit Parallels.

Here comes the tough part. If you were to reboot now and try to force your Mac to boot Windows it won't work. A typical PC's hard disk has code right at the beginning of the disk which tells it where to find crucial operating system files - the MBR. Windows has gone ahead and installed the MBR but it's installed in its VM, not to the real hard disk. We have to copy this MBR to the real hard disk and at the same time be careful not to mess up the Mac install.

First we need to find the VM's MBR. To do this, locate your Windows VM on your Mac hard drive. Typically this will be in your Documents/Parallels folder. To get to the MBR, right click your VM and choose  Show package contents. Repeat this for your VM hard drive which will share the name of your real hard drive (mine is called SAMSUNG HS082HB.hdd). The PhysicalMbr.hds file is what we need. Copy this to your USB drive.

Now start up Terminal.

We'll use Fdisk to view and modify our MBR as necessary. Let's start by running sudo fdisk -e /dev/disk0. Enter your password.

Type print followed by pressing return to view your current MBR information.

It's important now to note this information, just in case. Note specifically the id column - notice how there's an EE? That's for the GUID Partition Table the Mac uses. You might want to read up about GPT. The takeaway point is that the first sector of the drive is reserved for the MBR, even though we've also got a GPT partition. Note that the Boot Camp partition is listed as Fat-32 despite the fact that I used NTFS on my Windows partition. This is because the real MBR has not been updated with the new partition information.

Type exit and return.

Now we're going to write the new MBR. This part is very dangerous if done incorrectly. Additionally, Mac OS does not allow you to write a new MBR from within the OS. If you try, you will find that access is denied (even for the super user). Instead, we need to boot the Mac OS X Installer and write the MBR from there. So reboot your Mac and use Remote Disc to start the Mac OS X Installer

Hint: Sorry, you can't use your wired ethernet here, only wireless. This is because we have to keep our one USB port free for the USB flash drive. A hub might work if you have one though.


When the OS X installer is ready to go, do not proceed with it. Instead, go to the Utilities menu and open Disk Utility. Click each of your hard drive's partition and unmount each.

Now we will open the Terminal. Make sure your USB drive is plugged in.


Hint: In case you don't know, you must press return after every command in the terminal.

Navigate to your flash drive. To do this, first type

cd /Volumes

Type ls and identify which is your flash drive. Type
cd

The first thing to do is back up your old MBR.

Be very careful entering these commands.
dd if=/dev/disk0 of=backup.mbr bs=512 count=1

This will back up the MBR to a file called backup.mbr on your USB drive.

Now we replace the physical MBR with the one copied from the VM.
dd if=PhysicalMbr.hds of=/dev/disk0 bs=512 count=1


This assumes you didn't rename the VM MBR when you copied it to your USB drive.


Hint: If something bad happens and you need to restore your MBR, type the same command as directly above, but substitute PhysicalMbr.hds for backup.mbr.

Now that we've replace the MBR we need to check it looks ok. Type

fdisk -e /dev/disk0

Type print to view your MBR. The most important thing to check which Windows may have stuffed up is the id of each partition. Your first partition must have an id of EE, your Mac Partition must have an id of AF. If either of these is wrong you must change them (don't worry, this doesn't modify the data on these partitions). For each that is wrong, type setpid n where n is the number of the partition whose id you are changing. Then, when prompted, type the correct id.

When you are done with fdisk, type write and then exit.

You can quit the Mac OS X Installer now.

As the computer boots, just after you hear the chime, hold down the option key on the keyboard. Windows should now be one of the options in your boot menu, so choose it.


Windows should start and continue with installation.


When Windows restarts, remember that you will have to hold down the option key again and choose Windows.

And finally...


Hello Windows.

16 comments:

maligor said...

Great write. Had a problem at the last step (writing the new MBR). I used refit to write the new MBR. Thanks!

KaZ said...

The last part about the PMBR doesn't work somehow for me. I shutdown the VM when it goes for reboot (you only have 10 seconds in Windows 8, so you have to be quick) and copied the MBR as explained.

But windows doesn't boot. I am still able to load the partition into parallels, but not boot natively from it. It says it can't find a bootable device or drive.

I had to modify the ID of the mac partition from AC to AF, but somehow it's back. My is still happily booting. I have a Fusion drive with whole disk encryption (Filevault 2), which I re-enabled just before taking the following output with gdisk:

Disk size is 500118192 sectors (238.5 GiB)
MBR disk identifier: 0x00000000
MBR partitions:

Number Boot Start Sector End Sector Status Code
1 1 409639 primary 0xEE
2 409640 364082983 primary 0xAC
3 364082984 365352519 primary 0xAB
4 365352960 500117503 primary 0x0B

Any idea?

Anonymous said...

Thank you so much! I could not find a way to successfully install BC on my mid 2010 MBP after replacing the internal optical drive with an SSD. The Windows installer just kept getting stuck at "loading files." This procedure did the trick. You could update this by just mentioning that for Lion and Mountain Lion, you can just boot into the recovery partition to run Terminal. (You'd also have to update the Parallels stuff since the setup and everything has changed in newer versions, but all the options are still the same or similar.) Also, as others have stated, reFit seems to be necessary. After the first reboot, just selecting the Windows partition from the regular Apple boot selection screen froze. After selecting it from reFit, it worked.

Miguel de Benito Delgado said...

Hi,

thanks for the post, it's been very helpful. However, I'd like to advise against blindly copying the MBR from the virtual machine onto the hard disk. I checked the contents of both with hexdump and the partition tables (starting at byte 16E) were completely different. Had I used dd to overwrite the one on the harddisk, I'd probably have ended up needing to copy the original back again.

So what I did was, after stopping the virtual machine as you say, use fdisk to examine the partitions, and fix the type of the one with windows from FAT32 to NTFS (id 07, shared between HPFS and NTFS and listed as the first by Apple's version of fdisk), leaving the size as it was. For some reason (probably my previous attempts at this) it was already flagged as bootable, YMMV.

Rebooting and using rEFInd to start windows was all that was left, though I doubt rEFInd is necessary. I guess I could've used the startup config in the system preferences and probably will in the future to speed up booting.

Buy Computer Online said...

Its really useful information you have shared.
Wireless router price India

Anonymous said...

Great, except you didn't do a very good job (or a job at all) explaining the whole remote disc part, you just kind of said, "Okay now that you're in remote disc...". So I've copied the MBR to my flash drive and now I'm sitting here trying to figure out what to do next.

Anonymous said...

First I would like to thank Inside the Brackets for this amazing post. It helped me a lot and inspired me to write this post with images using Parallels Desktop v9.
I also use a slight different technique that do not mess with the MBR in order to install windows 7 on a MacBook Pro.

Hope it help anyone.

http://wp.me/p18Ccl-2N

Kevin Collins said...

Hi. I really enjoyed my brief visit on your site and I’ll be sure to be back for more.
Can you please consider placing my website on your link list?

Please email me back.

Thanks!
Kevin
kevincollins1012 gmail.com

Anonymous said...

This worked very well on my 2006 Macbook Pro A1211, with no optical drive installed.

Chistes cortos said...

Its really useful information you have shared. many thanks!

Tarot gratis said...

Very nice, really really useful information

Frases celebres said...

This worked very well on my 2009 Macbook Pro, thx!

gadgets y tecnologia said...

very good job, Great information!

Keano said...

You saved my day Bro !
Many thanks !

Anonymous said...

Guys, i had a problem. I did the replacement of the MBR but after the boot, Windows was not a Boot Menu option. Any idea?

Pernille Juels said...

An appreciated effort done by you by sharing important information. Download VLC Media Player 2.1.5 (64-bit) for free.

Post a Comment