After reading Jonathan's blog a few weeks ago, I really wanted to try running OpenSolaris from a LiveUSB. Unfortunately when I read that blog, I only had a 512 Mb flash drive, so I shopped around and finally bought a Kingston 1Gb drive on Amazon for about $25. I had also had an old Belenix LiveCD 0.4.2 lying around, so I thought I would try that first.
I downloaded the latest disk image of the the Belenix LiveCD (which was 0.5.1) and the usbdump script and put them in my home directory on my Solaris 10 partition on my Ferrari 3400 laptop. Then, I booted up the old Belenix LiveCD 0.4.2 and it worked fine. It even automatically mounted my home directory from the Solaris 10 partitition in /mnt/solaris1.
I ran the usbdump.sh script:
# ./usbdump.sh /mnt/solaris1/uejio/belenix0.5.1.iso
It did give me a nice WARNING saying that all data on my USB device would be destroyed. I also got a few other errors such as:
umount: warning: /mnt/microroot not in mnttab
and some other error about a missing stage1 file from the installgrub command. That didn't sound good.
Next, I tried to boot from my USB drive. That actually is kind of tricky on my Ferrari 3400. I thought there might be some BIOS setting to boot from USB, but could not find any. Finally, I searched the net and found that I needed to set the BIOS to boot from harddisk. When I select the boot menu, the harddisk had a little plus sign to the left of it. When I selected it, I saw two entries: one for my harddisk and the other for the flash drive. The flash drive must be plugged in before turning the computer on. Once I had that set, my laptop tried to boot from the flash drive, but then I got a "bad PBR sig" or something like that.
Oops... I guess I shouldn't have ignored that error from installgrub. So, back to booting the Belenix LiveCD. But, then I thought to myself, why can't I just boot from my Solaris 10 partition and run installgrub from there? That would be much quicker since I'm booting from the harddisk instead of CD. (Infact, why can't I try running usbdump from Solaris 10? I'll have to try that someday.)
After looking at the usbdump.sh script, I found that it does:
# cd /boot/grub
# installgrub -mf stage1 stage2 $devs > /dev/null
Fortunately, Solaris 10 has the stage1 and stage2 files in /boot/grub, so I disabled volfs and ran the installgrub command. I used the rmformat to tell me where the USB device was and used d0s0 instead of d0p0. (I'm not really sure what I'm talking about, though.)
So, after all that, I tried booting from the flash drive again. The darn Ferrari doesn't seem to save it's boot settings, so I had to select F2, then from the boot menu, select the "+harddisk" and move the flash drive above the harddisk. I wish is would save that setting so I don't have to keep doing that...
Finally, here I am running Firefox 2.0. from Belenix 0.5.1 off of a liveUSB!
Next to try: getting Solaris installed on a liveUSB similar to "World's smallest bootable Solaris media?"
I think I'll save that for another holiday.