Triple Boot, Part 3: Install OpenSolaris

<< Back to Part 2: Install Ubuntu

Installing OpenSolaris 2008.05 is very similar to the process I used for installing Ubuntu 8.04: download the .iso image file, burn it to a CD, and then boot the CD.  On startup the CD will display a GRUB menu - I selected the first entry (click for full size on this screen snapshot - or any other in this entry):

After the boot completes, there is a desktop displayed that includes an icon for Install OpenSolaris:

I right-clicked that icon and then selected Open from the context menu to start the installer.  The first thing the installer wants to know is where on the system to install OpenSolaris. In the 2008.05 release, the installer only offers two options: use the entire disk or use an existing partition.  It does not offer an option for creating a new partition - hopefully this will be fixed in a future release.

I do not want to use the whole disk for OpenSolaris - the third primary partition is the one that I set aside for OpenSolaris (ignore the partition sizes shown here - I got these screen snapshots from a test environment):

And I changed the type for that partition from Linux Swap to Solaris in order to select that partition for the install:

After I clicked Next I got prompted to fill in the usual stuff: user name, time zone, etc. The actual install process then started and immediately died:

Clicking the link for the installation log brought up this window:

The two interesting lines start with:

fdisk: fdisk -n -F failed.
Couldn't create fdisk partition table on disk

It turns out, this is not related to my attempt to have a triple-boot system.  Because of the geometry on the disk drive in my system, I just happened to run into a bug in fdisk. Full details are included in the comments added to the bug that I filed against the OpenSolaris installer, but the bottom line is that when invoked by the installer, fdisk was unable to make the required changes to the partition.

Luckily for me, Jan Damborsky of the installer team was able to help me out with an easy workaround. I shutdown the installer and then at a terminal window typed in this command:

pfexec format -e

Which then gave me this output:

       0. c5d0 <DEFAULT cyl 9295 alt 2 hd 255 sec 63>
Specify disk (enter its number): 

I typed in 0 and got a long list of available commands.  I then typed in:


And got the following output back:

             Total disk size is 24321 cylinders
             Cylinder size is 16065 (512 byte) blocks
      Partition   Status    Type          Start   End   Length    %
      =========   ======    ============  =====   ===   ======   ===
          1                 Other OS          0   888     889      4
          2       Active    IFS: NTFS       888  8972    8085     33
          3                 Solaris        8973  18270    9298     38
          4                 EXT LBA        18270  24321    6052     25

   1. Create a partition
   2. Specify the active partition
   3. Delete a partition
   4. Change between Solaris and Solaris2 Partition IDs
   5. Exit (update disk configuration and exit)
   6. Cancel (exit without updating disk configuration)
Enter Selection:

The installer needs for fdisk to do two things: Set the partition type to Solaris2 and mark the partition as Active.  When invoked using the command line from the installer, the bug in fdisk causes it to error-exit but when invoked interactively via the format command, it works without any problems. 

Which meant that all I had to do was choose option 4 from the menu and then when prompted, enter 3 for the partition number that I wanted changed from Solaris to Solaris2.  Then I chose option 2 and selected partition 3 again so that it became the Active partition. That resulted in the following partition table:

             Total disk size is 24321 cylinders
             Cylinder size is 16065 (512 byte) blocks
      Partition   Status    Type          Start   End   Length    % 
     =========   ======    ============  =====   ===   ======   ===
          1                 Other OS          0   888     889      4
          2                 IFS: NTFS       888  8972    8085     33
          3       Active    Solaris2       8973  18270    9298     38
          4                 EXT LBA        18270  24321    6052     25

I selected option 5 to save my changes and exit fdisk and then entered quit to shutdown the format command. I then restarted the installer and the installation worked without any problems.

You might be wondering: What is the deal with the two Partition Type values in fdisk: Solaris and Solaris2? Frankly, I don't even like to use those names because they can cause confusion; I prefer the underlying hexadecimal values: 0x82 (Solaris) and 0xBF (Solaris2). As I mentioned back in Part 1 of this series of blog entries, partition type 0x82 is overloaded since it is used both by older versions of Solaris and for Linux swap partitions.  So the newer 0xBF (which, other than this bug in Ubuntu's installer is not overloaded) is referred to as Solaris2.

At the end of the install process, there is a button to click to reboot the system.  I did not see, however, an option for removing the CD before the reboot.  So the system restarted and I saw the exact same GRUB menu, since the CD is first in the boot order:

The solution is easy enough: select the final entry so that the new GRUB menu that was just installed on the hard disk is displayed.  It will have only one entry; selecting that entry will boot OpenSolaris from the hard disk.

After OpenSolaris starts, there is only one more step to achieve the triple-boot goal: add the necessary entries for the other operating systems to the GRUB menu.lst file.  I was thinking that menu.lst would be in /boot/grub, but examining that file shows that:

#                                                                       #
# For zfs root, menu.lst has moved to /rpool/boot/grub/menu.lst.        #
#                                                                       #

Which means that the command I really want to use is:

pfexec gedit /rpool/boot/grub/menu.lst

As I mentioned in Part 2, I saved off the menu.lst file from Ubuntu onto a USB drive so that I could add its entries to my OpenSolaris menu.lst file:

title        Ubuntu 8.04, kernel 2.6.24-18-generic
root        (hd0,4)
kernel        /vmlinuz-2.6.24-18-generic root=UUID=1ed7fa17-6d77-4b49-be1a-22481310fd1b ro quiet splash
initrd        /initrd.img-2.6.24-18-generic

title        Ubuntu 8.04, kernel 2.6.24-18-generic (recovery mode)
root        (hd0,4)
kernel        /vmlinuz-2.6.24-18-generic root=UUID=1ed7fa17-6d77-4b49-be1a-22481310fd1b ro single
initrd        /initrd.img-2.6.24-18-generic

And then finally, I also added entries for the recovery partition and Windows Vista:

title VAIO Recovery
    rootnoverify (hd0,0)
    chainloader +1

title Windows Vista
    rootnoverify (hd0,1)
    chainloader +1

After saving the menu.lst file, I now have a triple-boot system.  :-)


How did you take the screenshots?

Posted by W. Wayne Liauh on July 16, 2008 at 03:45 PM GMT #

Most of the screen shots actually came from duplicating my experience in a virtual environment: specifically, VirtualBox. So I ran VirtualBox under OpenSolaris and then created a disk image file for the VirtualBox virtual machine that had both OpenSolaris and Ubuntu installed on it.

Posted by Gregg Sporar on July 16, 2008 at 07:09 PM GMT #

In my instal of opensolaris 05/08, menu.lst in rpool/boot/grub/ denies my access. how should I own the file or change to admin. I have reinstalled it frequently. I want to edit the menu with more intuitive explicit entries. Also the menu brings my backup ntfs hard drives as part of the boot chain that should be deleted. The message reads "you can't save changes to the file..."; something like that. In anyway, a single home user should have access to all parts of his own operating system, even though he damages it.

Posted by Peter Jones on September 04, 2008 at 02:37 AM GMT #

>how should I own the file or change to admin.

The menu.lst file is owned by the root userid. In order to get write access to it, put the command "pfexec" in front of whatever command you are using to edit the file. In other words, if you are using gedit, then type in:

pfexec gedit menu.lst

Posted by Gregg Sporar on September 07, 2008 at 03:15 PM GMT #

Finally got around to installing OpenSolaris 05/08 on my Ferrari 4005. I found your instructions very helpful, even for a more experienced / seasoned Solaris guy. I had an older version of Solaris Nevada installed. One of the reasons I didn't use it was I couldn't get the resolution on the laptop to go to 1680x1050 regardless how I tweaked Xorg, (but I have to admit I'm not an Xorg expert). I've got 1680x1050 right out of the box with no additional tweaks. :-) I'm sure I'll be using this OS much more!

Posted by huntch on September 20, 2008 at 07:14 AM GMT #

Hi I installed OPenSolaris after debian testing . When I add debian's grub entries to solaris's menu.lst I get an error to the effect that grub can't follow the symlink to Debian's kernel. I can't duplicate the error now but I think it has to do with Solaris's grub being a fork of Grub .95 and Debian's Grub being ver .97. Any idea how to get OpenSolaris and debian to coexist? Thanks!

Posted by Cavan on October 16, 2008 at 08:11 AM GMT #

>Any idea how to get OpenSolaris and debian to coexist?

I have not tried that specific combination, but if as you suggest the problem is that OpenSolaris is basing its GRUB on version .95 and Debian requires .97, then one option that might work would be to install Debian's GRUB on the partition that you use for Debian (instead of installing Debian's GRUB on the Master Boot Record). Then in the menu.lst file that OpenSolaris provides for GRUB, instead of having an entry for the Debian kernel, you would just have a chainloader entry for the partition that contains Debian.

Posted by Gregg Sporar on October 28, 2008 at 06:59 AM GMT #

I tried you system for the older opensolaris 2008.5 and it worked, but now I've updated to 2008.11, and it simply doesnt work, any ideas on how to dual boot opensolaris 2008.11 and ubuntu 8.10 itrepid ibex?

Posted by dedguy21 on November 16, 2008 at 11:59 PM GMT #

how to remove solaris and install open solaris?
open solaris cd not showing boot options

Posted by suresh on January 14, 2009 at 12:36 AM GMT #

Thanks for the tutorial. I went through this using 2008.11 and it worked great. XP, Oso, and Ubuntu 8.04.

Posted by PJ on March 04, 2009 at 03:17 PM GMT #

And what you do if you have to upgrade the Linux distro? To my knowledge, currently, OpenSolaris does not have a "grub-install" command and the OpenSolaris CD cannot boot in "rescue mode". So, what can you advice to recover the OpenSolaris boot loader after a Linux upgrade?
BTW, nice entry, it helped me a lot.

Posted by Renato Perini on June 11, 2009 at 02:30 PM GMT #

>what can you advice to recover the OpenSolaris boot loader after a Linux upgrade?

Take a look at this entry - - it should help.

Posted by Gregg Sporar on June 11, 2009 at 06:18 PM GMT #

I installed a triple boot, first I installed
vista ultimate than I installed Open solaris 2008 and upgraded it to 2009.05 than under vista
I had a panel that let me pick eighter vista or a different OS. It was under this that installed
Ubuntu 9.10. Everything worked fine until I tried to install K desktop. It looked like it installed ok as I was able to work with it no problem. That came when I rebooted and when I choose to boot Ubuntu it hangs. When I installed Ubuntu originally I installed it thru' the Wubi download and not from cd.
Now I can't get rid of Wubi or it's files in order to download it again and rerun Wubi.
Wubi wants the old wubi deleted and thats what I can't do??

Posted by H. Peter klobes on November 27, 2009 at 08:03 PM GMT #

Лучше бы научил как загрузить FreeBSD

Posted by Post a Comment on February 18, 2010 at 10:50 AM GMT #

Post a Comment:
  • HTML Syntax: NOT allowed

The Observatory is a blog for users of Oracle Solaris. Tune in here for tips, tricks and more as we explore the Solaris operating system from Oracle.


« July 2016