I’m a big fan of Virtualbox. It’s easy, fast and free. Recently I had to revive an older Solaris guest that used to run under vmware, and to set it up to run under Virtualbox. I quickly found out that after the grub screen it enters a reboot loop and nothing seemed to help. I could boot into failsafe and mount the root partition as /a/
Someone suggested that the problem was that vmware had the disk as SCSI (c0t0d0s0) and virtualbox enumerated them as IDE (c0d0s0). I tried setting the disk on a virtual SCSI controller but it didn’t help. I set it back to IDE and proceeded to inform Solaris of the new setup: (it takes a bit of tinkering, be sure to have a backup of the image)
- Boot Solaris in safeboot (failsafe) It’s usually the last option in Grub.
- The original root partition should be found and mounted under /a Be sure to say y and mount it read-write. If you, like me, come from the Linux world running /usr/bin/bash will help you. Also export TERM=xterm will allow vi to run.
/a/etc/path_to_instto other names (rename them to .old or .orig or something)
mv /a/dev /a/dev.orig mv /a/devices /a/devices.orig mv /a/etc/path_to_inst /a/etc/path_to_inst
devfsadm -r /ato rebuild the devices folders
- Now you will fix the boot disk path. Edit /a/boot/solaris/bootenv.rc using vi (oh joy) and fix the line that reads
setprop bootpath '/pci@0,0....You will want the line to point to the same path as your disk points. Again if you come from Linux you will ask the same as me. Where the @#$% do I get this. Easy
ls -l /dev/dsk/c0d0s0(or whatever device
/ais mounted from. The same pci path, without
../../devicesneeds to go at setprop bootpath. Save and exit.
/a/etc/vfstabto match (here you will have
/dev/dsk/c0d0s0or similar - see the beauty of this ? 🙂 )
bootadm update-archive -v -R /ato rebuild the boot archive on
- Force to reconfigure on next boot
cd /; sync; sync; sync; umount /aDon’t worry much if it won’t unmount.
init 6to reboot