August 26, 2009

Multi-Boot openSolaris and Linux

I have recently been setting up a "mini-server", using a Dual-Atom CPU system, and wanted to have openSolaris on it along with various Linux server distributions.  Here are a few tips based on what I have found so far:

- openSolaris uses a significantly modified GRUB bootloader.  After numerous attempts and failures, and one success, it appears to me that the general rule is that you can boot Linux from the openSolaris GRUB, but you can't boot openSolaris from a Linux GRUB.

- openSolaris does not support the ext4 filesystem yet, so at least the boot partitions of the Linux installations have to be ext3 (or something else supported by openSolaris, I didn't look any further than ext3).

- openSolaris uses the ZFS filesystem, which is not supported by any of the major Linux distributions that I have tried.  This is one of the reasons you can't boot openSolaris from Linux, but it also means that you can't mount an openSolaris partition under Linux.

- Since you need to end up with the openSolaris GRUB as the installed bootloader, the simplest way to proceed is to install whatever Linux distributions you want first, and then openSolaris last.  There are other ways to do this, of course, but they involve special manipulation when installing (or not installing) the Linux GRUB.

- openSolaris does not understand Extended Partitions on the disk, but the openSolaris GRUB does understand them.  This means that you can multi-boot from Logical Partitions within an Extended Partition, but when running openSolaris you will not be able to mount them.

- In addition to not handling Extended/Logical Partitions, openSolaris is not particularly good at finding and identifying other Linux installations when setting up its GRUB configuration.  So be prepared to add the Linux installations to the openSolaris GRUB configuration manually.  This is made somewhat less painful by the fact that the openSolaris GRUB does understand the configfile directive, and it generally understands ordinary Linux GRUB menu.lst files, so you can add them using only the title, root, and configfile directives.  Of course, if you want to you can put in the complete kernel and initrd commands.

Using these general guidelines, I have succeeded  in setting up the mini-server as follows:

 Primary Partition0: openSolaris 2009.06

Primary Partition 1: CentOS 5.3

Primary Partition 2: Linux Swap

Extended Partition 3:

  Logical Partition 4: Debian 5.0.2

  Logical Partition 5: openSuSE 11.2 Milestone 6

  Logical Partition 6: Fedora 11 Leonidas

 So far, so good!


Click Here!