Multibooting Solaris, Ubuntu, and Windows XP
By blogfinger on Dec 28, 2006
I recently installed Windows XP and Ubuntu Linux on my OpenSolaris laptop. Of course, after the XP installation, I could not boot Solaris anymore, as the XP installation wrote over the master boot record to install its own boot loader. I then installed Ubuntu Linux 6.10, and got Grub 1.5 installed. Unfortunately, this did not recognize my Solaris installation.
Modifying grub 1.5 menu.lst which was created during the Ubuntu installation
I searched the web and played around with some settings and finally, the following version worked for me:
title OpenSolaris root (hd0,1) chainloader +1 title Ubuntu 6.10, kernel 2.6.17-10-generic root (hd0,6) kernel /boot/vmlinuz-2.6.17-10-generic root=/dev/hda7 ro quiet splash initrd /boot/initrd.img-2.6.17-10-generic quiet savedefault boot title Windows XP root (hd0,0) savedefault makeactive chainloader +1
The system first boots into the Ubuntu installed grub, from where I can go for Solaris and Windows XP. Well, not directly. When choosing Solaris, the Solaris installed grub is called, with its own boot menu. When choosing Windows XP, NTLDR is called, which also has its own boot menu. So I even can boot Linux or NT from the Solaris grub menu, and I am sure I could also boot Linux and Solaris from the NTLDR menu, after following the procedure mentioned here.
Modifying grub 0.9 menu.lst which was created during the OpenSolaris installation
Here is the modified menu.lst from the Solaris installed grub:
#---------- ADDED BY BOOTADM - DO NOT EDIT ---------- title OpenSolaris kernel /platform/i86pc/multiboot module /platform/i86pc/boot_archive #---------------------END BOOTADM-------------------- title Ubuntu 6.10, kernel 2.6.17-10-generic root (hd0,6) kernel /boot/vmlinuz-2.6.17-10-generic root=/dev/hda7 ro quiet splash initrd /boot/initrd.img-2.6.17-10-generic quiet savedefault boot title Windows XP rootnoverify (hd0,0) chainloader +1
So I just copied the Linux lines from the grub/Ubuntu menu.lst to the grub/OpenSolaris menu.lst.
Before I forget: This is my disk layout:
hda1 FAT (FreeDOS) hda2 UFS (OpenSolaris) hda5 extended partition: hda6 NTFS (Windows XP) hda7 Linux swap hda8 ext3 (Linux) hda9 FAT32 (data)
So why not use just one boot manager? I decided to leave all boot managers in place and instead reduce the timeouts to 3 seconds or less, so I am more flexible after future upgrades which, I am sure, will modify or destroy at least one of my boot managers.
As always, no warranty. Backup all your data before playing around with disk partition tools or boot managers.