Solaris 10 x86 - updating boot device

less than 1 minute read

Recently at work I had a situation where I had to move a Solaris 10 x86 virtual machine from a VMware Server environment to a VMware ESXi environment. Unfortunately, the Server architecture presents IDE drives to the VM, and the ESXi environment presents SCSI drives to the VM, so when you move the VM between them Solaris has no idea how to boot.

After much searching, I found this post on an OpenSolaris mailing list which helped me out.

To summarize:

  • Boot Solaris into the Failsafe mode from Grub
  • Get the name of the new drive device using the format command
  • Change the boot device path in the file /a/boot/solaris/bootenv.rc
  • Run the command bootadm update-archive -R /a
  • Run disks -r /a to rebuild all the /dev/dsk and /dev/rdsk entries
  • Edit /a/etc/vfstab to reflect the updated /dev/dsk entries (you can do some of this after reboot)
  • Cross your fingers and reboot

Note that I’m not using zfs or ODS or anything exciting for the drives, just plain disks with file systems. Other configurations would likely be even more exciting.

Hopefully this can help someone else…