Until recently my only computer was a five-year-old Sony VAIO laptop running Windows XP. Since I intend to develop applications for the Apple operating systems, I knew I’d have to buy a Mac at some point. As far as I know, right now there are no reliable emulators for Mac OS X and iOS that run under Windows, and there are also legal issues about running Apple operating systems on a Windows machine. So, trying to run some sort of emulator on my Windows laptop didn’t sound like a good idea at all. If you want to develop software for any of the Apple platforms, the only reasonable (and legal) option is to get a Mac.
And buying a Mac is a good idea for its own sake. While I’m no Apple fanboy, in my experience Macs are slick and elegant, and I actually felt like buying one. But I didn’t want to spend a lot of money and, knowing that Apple products tend to come with a hefty price tag, I decided to buy the cheapest Mac currently on sale: the Mac Mini.
Now the Mac Mini is just a box that you connect to a monitor, and this was the perfect arrangement for me since I already have a monitor and several keyboards and mice. I didn’t really want to get a new monitor and a keyboard and a mouse that would join the stockpile of hardware lying around, so the Mac Mini concept made sense. Now that I’ve been using it for three months, I am quite happy with it, especially because I installed Windows 7 and Linux (Fedora 14) on it, so I can use it for cross-platform development, switching between operating systems without the need to have separate machines.
In this post, I’m going to explain how I did set up the triple boot. I managed to do this thanks to a couple of interesting articles I found on the web (see the references section below), but I came across a few problems along the way, so I thought I would write down a detailed description of the steps I followed for future reference, and for the benefit of others who may want to do the same. I did this on a Mac Mini, but I expect everything should be the same for other Mac computers.
Note that having a full installation for each operating system is not really necessary in order to run Windows and Linux programs on a Mac. There are good emulators like VMWare Fusion or Parallels Desktop, and you can also run Windows programs on a Mac using the Wine compatibility layer software. However, I thought that for my purposes it was safer to have three full installations and avoid any possible pitfalls and glitches due to the emulation/compatibility layer. So I decided to go the whole hog and installed the three operating systems. Unlike Apple with Mac OS X and non-Apple hardware, Microsoft will allow you to install Windows on any computer that can run it. I bought a Windows 7 Professional licence from the Spanish Microsoft online store which set me back €309. And then I downloaded an image of the installation disk for 64-bit Fedora 14, which is free, of course. And so, for a bit more than €1,000 I got a brand new Mac Mini with the latest versions of the main desktop operating systems.
The steps I describe in this post require that you have a Mac computer and the installation disks for Mac OS X, Windows 7 and a Linux distribution. I did it with Fedora 14, which I had to install in the Basic Video mode because the standard mode doesn’t recognise the Mac Mini’s graphics hardware. I had the same problem with the latest version of Ubuntu. Installing Linux in basic mode means that we will have to manually install graphic card drivers later, as well as drivers for the wireless connection and the audio card. All that goes beyond the scope of this post, and those issues may well have been solved in newer versions of Linux (as I’m writing this, there’s a Fedora 15 alpha version, which I haven’t tried yet). During the setup project, we will have to download the rEFIt program, which takes care of the initial boot screen, and we’ll also use the Boot Camp software from Apple, which takes care of setting up all the necessary drivers for Windows to work on a Mac (you could do that by hand without Boot Camp, but I don’t think it’s worth it).
1. Step-by-step guide
1. While the Mac Mini is on, with the default Mac OS X installation running, insert the Mac OS X disk.
2. Restart, and hold down the ‘C’ key so that the Mac will boot from disk (alternatively, if the ‘C’ key doesn’t work with your keyboard, you can go to System Preferences→System→Startup Disk, and select ‘Mac OS X 10.6.3 on Mac O… Install DVD’, which will change the BIOS boot order, and then press the ‘Restart…’ button and confirm).
3. You are prompted to select the language. Choose your preferred language and click ‘Continue’.
4. The ‘Install Mac OS X’ dialog appears, and a ‘Mac OS X Installer’ menu appears at the top. On that menu, select Utilities→Disk Utility… A dialog appears with the available disks displayed on the left-hand panel. Select the top one (‘320.07 GB TOSHIBA MK…’ in my case) and the dynamic menu on the bigger panel will display a ‘Partition’ option at the top (together with ‘First Aid’, ‘Erase’, ‘RAID’ and ‘Restore’). Click on ‘Partition’.
5. On the left-hand side, a graph shows the partitions. There is now one partition called ‘Macintosh HD’. We can select from the dropdown menu a different partition layout. We’ll choose ‘three partitions’. By default, they will appear with the names ‘Untitled 1’, ‘Untitled 2’ and ‘Untitled 3’. Note that you should create an additional partition if you want to have a swap partition for Linux. I didn’t bother to do that. Also, when setting up multiple-boot systems it used to be common to set up a partition for shared data across the various operating systems, typically formatted as FAT32. But this is not really necessary these days, since the NTFS file system used by Windows can be accessed from both Mac OS X and Linux. The Boot Camp software also makes it possible to have read-only access to the Mac partition from Windows, so you shouldn’t have any problem to share your data across systems with just three partitions.
6. We can now edit the names, formats and sizes of these partitions:
- ‘LINUX’ ‘MS-DOS (FAT)’ 80 GB.
- ‘Windows’ ‘MS-DOS (FAT)’ 100 GB.
- ‘Macintosh HD’ ‘Mac OS Extended (Journaled)’ 140.07 GB (remaining space).
7. Check that the three partitions are correct, click ‘Apply’, and confirm.
8. Close the ‘Disk Utility’ dialog. The Install Mac OS X dialog reappears. Click ‘Continue’, and accept the licence.
9. You are now prompted to select the disk where you want to install Mac OS X. Select ‘Macintosh HD’, of course, and click on the ‘Install’ button.
10. Mac OS X is being installed. Time for a coffee.
11. After around half an hour you get prompted to restart the computer.
12. After the system has restarted, a succession of dialogs will prompt you to set up some information, like your country and keyboard layout.
13. Eject the Mac OS X disk.
14. Open Safari and download
rEFIt from http://refit.sourceforge.net/#download (EDIT March 2013: The rEFIt project has apparently been abandoned and there is now an improved fork called rEFInd available at http://www.rodsbooks.com/refind/).
15. Install rEFIt by double-clicking on the rEFIt.mpkg file.
16. Restart the system.
17. Mac OS will load again. Restart the system once more (yes, you need to do it twice).
18. When the system restarts, the rEFIt OS selection screen will appear, with the Apple icon indicating that Mac OS X is installed. In order to start Mac OS X, we simply press Enter while the big Apple icon is highlighted.
19. Insert the Windows 7 disk into the Mac Mini superdrive.
20. Restart the system.
21. In the rEFIt screen new icons appear, select the third one: ‘Boot Windows from CD’.
22. The Windows installation menu appears. After selecting the language and keyboard, and accepting the licence, select ‘Custom’. A dialog prompts you to select the partition where you want to install Windows. If you select ‘Disk 0 Partition 4: WINDOWS’, you will see that the ‘Next’ button stays greyed out. This is because the partition must be reformatted as NTFS. Click on the option to access the partition details (lower right corner), select ‘Format’ and confirm.
23. Now we can click on the ‘Next’ button, which is no longer greyed out.
24. Windows is being installed. Time for one more coffee.
25. After about 11 minutes, Windows restarts. The rEFIt menu now displays five icons, we have to select the third one: ‘Boot Windows from Partition 3’.
26. Windows continues being installed for about five minutes, and it restarts again.
27. When the rEFIt menu appears, select ‘Boot Windows from Partition 3’ again. In order to complete the installation, Windows will now prompt us to specify a user name and a computer name and password, to enter the product key, and to confirm the time zone.
28. The Windows desktop appears.
29. Open Start→Computer, and right-click on the disk drive icon and select ‘Eject’.
30. Insert the ‘Mac OS X Install DVD’ in the superdrive. The Mac setup DVD doubles as a Windows disk that installs the Boot Camp software on a Windows system. By running the setup.exe program, the Boot Camp software will be installed. This will take care of setting up the Windows drivers. If we don’t install Boot Camp, we would have to find and install a lot of drivers manually. Boot Camp does that for us. After installing it, Windows 7 will recognise the hardware so we can connect to the wireless network, hear sounds, access the NVIDIA menu, and so on. It also makes the Mac partition of the hard drive readable from Windows.
31. When you are prompted to restart, confirm that you want to restart.
32. In the rEFIt menu, select ‘Boot Windows from Partition 3’.
33. The Mac Mini is now a complete Windows 7 machine. You can now connect to a wireless network, update software and finish any additional setup you may need under Windows. The Boot Camp program has renamed the Windows partition as ‘BOOTCAMP’, which I renamed back to ‘Windows’.
34. Eject the Mac OS X Install DVD, and insert the Linux disk (in my case Fedora 14 – KDE). Close the ‘What do you want to do?’ dialog, and restart.
35. When the rEFIt screen appears, select the ‘Boot Linux from CD’ option.
36. The default Boot failed for me, so I had to press the Esc key and select the ‘Boot (Basic Video)’ option.
37. Fedora 14 is booting from disk. A white and blue progress bar appears at the bottom of the screen.
38. After a few minutes, we get a desktop where there is a prominent ‘Install to Hard Drive’ icon. Click on it.
39. The ‘Fedora Installer’ dialog appears. Click the ‘Next’ button, and then follow the prompts. In my Fedora 14 KDE installation, I was asked to choose the keyboard layout, ‘Basic Storage Devices’, a hostname, the time zone, and the root password.
40. The installer asks ‘Which type of installation would you like?’. Choose ‘Create Custom Layout’, so that we keep the partitions we already have.
41. The ‘LINUX’ partition is the ‘sda3’ device. Select it and click the ‘Edit’ button.
42. A dialog appears. Check ‘Format as’, and set its value to ‘ext4’. Set ‘Mount point’ as ‘/’ and click ‘OK’.
43. In the device list, the sda3 device should now appear as ‘ext4’, with a tick mark in the ‘Format’ column. Select it and click ‘Next’.
44. A warning appears that we have not specified a swap partition. I think I have enough memory, so I won’t bother with it. I ignore the warning by hitting the ‘Yes’ button (as an answer to the question ‘Would you like to continue with your requested partitioning scheme?’ ).
45. We are asked to confirm that we want to format the /dev/sda3 partition. We confirm by clicking the ‘Format’ button.
46. We are asked to confirm again, and we go ahead by clicking the ‘Write Changes to Disk’ button. A progress bar appears while the partition is being formatted.
47. A dialog appears with the option ‘Install boot loader on /dev/sda3’ checked. We click the ‘Next’ button. Time for our third coffee.
48. About ten minutes later, the installation is complete, and we are prompted to reboot.
49. The system doesn’t actually succeed to reboot, and it stalls after we get the message ‘Restarting system’. We can only restart it manually by switching off the Mac (holding down the power button for about four seconds) and turning it on again.
50. We now see the three icons: Mac, Windows and Linux on the rEFIt OS selection screen. But if we now select the ‘Boot Linux from HD’ penguin icon in order to start Linux we will get a weird error. It took me a while and some web searches to figure this out, but it turns out that rEFIt needs to readjust the MBR partition tables used for booting. In order to do that we need to select the ‘Start Partitioning Tool’ option in the bottom row. The screen will turn black with some white text in the centre, and the last line of the text is the question ‘May I update the MBR as printed above? [y/N]’. We should confirm by hitting the ‘y’ key and then any other key to return to the OS selection screen (I learned about this thanks to this link. It is also mentioned in this other article).
51. And now we can select the ‘Boot Linux from HD’ option. For some reason, the first time I tried it stalled, but after switching the computer off and on (and checking that the Mac and Windows parts were starting fine), it eventually got started and I got to the Fedora Welcome screen
52. Some dialogs will then prompt you to enter some additional information, like your time zone, and a user name and password. The installation is now complete (apart from the drivers, see below). You can now try to boot the different operating systems, and check that the three of them work correctly. At least with Fedora 14 we will need to install some drivers manually, particularly those for the video, audio and network cards. I hope newer versions of Linux will handle this better.
1. The fact that the Mac Mini’s superdrive doesn’t have an eject button can be a bit annoying, as the inserted disk can only be ejected through an operating system command. To eject the disk from the superdrive when running Linux, remember that you need to open a console and type ‘eject cdrom’. In Windows you can open a ‘Computer’ window and right-click on the drive icon and select the ‘Eject’ option.
2. If something goes wrong with the rEFIt installation (or if you try to install the operating systems before rEFIt, as I did in my first attempt) you may find a black screen saying ‘No bootable device — insert boot disk and press any key’. In this case, I was able to boot from the Mac OS X Install DVD again after pressing ‘Alt+Windows+P+R’ in my Windows keyboard (Apple keyboards should support the use of the ‘C’ key to boot from the drive as well as the use of the Option key to display a menu of boot options, but I have found that things get much trickier with non-Apple keyboards). When I got that nasty ‘No bootable device’ problem, I got the idea to try Alt+Windows+P+R from a few web sites (in particular, the last message in this discussion and also this one). This key combination forces a PRAM reset (see this Apple support article for information on what PRAM is).
- MacOSX, Fedora 10, Windows 7.
- How to Triple-Boot your Mac with Windows and Linux, no Boot Camp Required. Article by Whitson Gordon.