Solaris & Vista Dual Boot

31 May

Got a new SONY VGN-FE48G preinstalled with Vista Home Premium. Here is how I configured that with Solaris and Vista dual boot, thanks to help from Moinak, Pavan and others at IEC.

Required items:

  • Two blank DVDs to backup Vista Recovery.
  • GParted LiveCD (0.3.4-7)
  • Belenix LiveCD (0.5.1)
  • Solaris Express Build 65 DVD for x86 platform
  • A patched installgrub (I got this temp binary from Moinak)

Step 1: Prepared recovery DVDs for Vista.

Step 2: Booted the system with GParted LiveCD. Left the recovery partition as is. Resized Vista partition to about 45GB. This took about 2 hours. Then I created an ext2 primary partition with the leftover (approx 100GB) space.

Then I went to shell mode in GParted and did the following steps using fdisk.

  • Delete partition 3 (100GB one)
  • Create a new primary partition (id 3) in that space. fdisk creates a Linux partition by default.
  • Now change the partition type to 0xbf, Solaris partition.

Rebooted, Yanked out the GParted CD and booted to Windows. It runs a small recovery process and booted fine.

That completes Step 2.

Step 3: Backed up the MBR in its current state. To do this, boot using Belenix. Go to a terminal/shell. Attache the pen drive to which the MBR is backed up. Assuming that the hard disk is /dev/dsk/c1d0 and my pen drive for backup of MBR is /media/SecureII, then the command would look like:

dd if=/dev/dsk/c1d0p0 of=/media/SecureII/mbrback bs=512 count=1

Now proceed to the next step of Installing Solaris.

Step 4: Inserted Solaris Developer Express Build 65 DVD and rebooted the system. Installed Solaris in the 100GB partition.

Step 5: Once Solaris is installed, booted to Solaris and backed up the MBR. Here is the command.

dd if=/media/SecureII/mbrback of=/dev/dsk/c1d0p0 bs=512 count=1

Step 6: Run the patched installgrub. To do this, took the patched installgrub and saved it as /var/tmp/myinstallgrub. Made sure that it has execute permissions and ldd-ed it to ensure that the linked libraries are available. Then I ran this command:

/var/tmp/myinstallgrub -m /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1d0s0

Note that you refer to /dev/rdsk/… (not /dev/dsk) while running installgrub.

Done! Now my laptop is dual boot with Solaris and Vista!