Follow Slashdot stories on Twitter


Forgot your password?
DEAL: For $25 - Add A Second Phone Number To Your Smartphone for life! Use promo code SLASHDOT25. Also, Slashdot's Facebook page has a chat bot now. Message it for stories and more. Check out the new SourceForge HTML5 Internet speed test! ×
Operating Systems

Journal Journal: Triple-booting Vista, Mac OS X and Solaris

Vista has hit the shelves now, and some people might want to dual-boot it with other operating systems, if only for testing purposes.

But you will see triple-booting with these operating systems isn't obvious.

This journal essentially gives you clues about how to trouble-shooting OSs with incompatible MBRs. The computer used is an Intel Pentium 4, 1.5Gib RAM with a Radeon 9500. It's not a Mac ;) I suggest you read the wikipedia MBR entry.

To sum it up, there are three parts of interest :

  • code area, offset 0x000, the actual boot code
  • disk signature, offset 0x1b8
  • partition table, offset 0x1be

Quick procedure

  1. Make a Mac OS partition with MacOS X partitionning tool,install MacOS X.
  2. Make partitions for Vista (NTFS, 0x07) and Solaris (0xBF), save MBR, unset bootable flag.
  3. Install Vista.
  4. Install Solaris.
  5. Restore MBR.

Alternative procedures


It might be a bad idea to use partitioning tools included with these OSs install disks because of legacy geometry concerns, and because Mac OS X partitionning tool seems to be quite intolerant with filesystems it can't write on.

The quick procedure assumes you don't have a valid standard boot code.

If you already have a valid standard boot, I would recommend doing full partitionning before installing Mac OS X with something like cfdisk. Use a geometry with 255 heads and 63 sectors/track. That's what some OSs are expecting, but Linux doesn't always use it. Force that geometry if needed. The partition id for Mac OS X is 0xAF. Don't set an active partition, the OS installer will set it itself and might get annoyed.

Mac OS X 10.4.1

Only use its partitionning tool if it's the first OS you're installing.
If you did partitionning beforehand, format (Erase) the partition you chose for Mac, then install. Even with a non-compatible boot code, you can boot with the Mac OS X DVD in the drive at boot time.

Microsoft Windows Vista RTM

Vista won't install if a partition is active. Unset bootable flag if needed, then install. Vista should boot as long as the disk signature isn't changed.

Solaris 10 with GRUB

Just install.

Dual-booting with Mac OS X then Vista

Overwrite the boot sector with the one you previously saved. You can now dual-boot (press a key to get to boot options to boot in Vista)

Dual-booting with Vista then Mac OS X

Quite hard. After installs, you need a replacement boot code that works with Mac OS X. If it changes disk signature, you must save and rewrite that disk signature.

Dual-boot Solaris then MacOS X

Just works (tm).

Dual-boot MacOS X then Solaris

Set the active partition on MacOS X and use its own boot menu,
Additionally / Alternatively edit GRUB menu.lst to add an entry for MacOS X.

MacOS X needs to be active to boot, so the entry will look like :

title MacOS X
rootnoverify (hd0,X)
makeactive (hd0,X)
chainloader +1

This will actually make MacOS X partition active for following boots.


Vista relies on disk signature to boot, so you need to restore it. You can either edit it manually from the signature you will find in the previously saved boot sector, or just overwrite the boot sector with the saved one.

What they do and implications (work in progress)

MacOS X 10.4.1

MacOS X doesn't change boot sector if you don't use its partionning tool to repartition, apart setting itsef as the active partition. It will boot with a standard boot code, though, but full boot procedure requires Mac OS X partition to be active. When you use it to partition your disk, it will overwrite the whole boot sector with its boot code, a disk signature, and the modified partition table.

Microsoft Windows Vista

It will write its own code area, and set a disk signature. Its boot code doesn't seem really standard as Mac OS X won't boot, but maybe is it just due to code relocation. Vista won't overwrite disk signature if it finds one. Vista will boot as long as the signature hasn't been changed.

Solaris 10 with GRUB

Write its own code area, overwriting disk signature (with zeros). It's a standard boot code, and not GRUB stage 1, which is located on Solaris partition.
Note that some Linux distributions don't do that.

Slashdot Top Deals

"Catch a wave and you're sitting on top of the world." - The Beach Boys