SmartOS ZFS Boot Media
Someone recently asked about this on the mailing list so I decided to get this out of the drafts folder and published.
I used these instructions to create a ZFS formatted USB stick with a pool name of smartos
that I use in my server at home. I update it from time to time by downloading and extracting the latest platform tarball.
This is based on the more complicated wiki page about creating a bootable zones pool (which I generally don't recommend doing.)
-
Boot SmartOS from the live CD in noinstall mode and log in as root.
-
run
diskinfo
to identify your target drive and runrmformat
to identify the CD drive. (In my examplec0t0d0
is my target USB stick andc1t1d0p0
is the CD drive) -
Create the pool, copy the CD content, install GRUB, fix up
menu.lst
, etc.:
zpool create smartos c0t0d0
mount -F hsfs /dev/dsk/c1t1d0p0 /mnt
rsync -av /mnt/ /smartos/
umount /mnt
cd /smartos/boot/grub
installgrub -m -f stage1 stage2 /dev/rdsk/c0t0d0s0
cp menu.lst{,.orig}
< menu.lst.orig > menu.lst awk 'BEGIN{print "findroot (pool_smartos,0)"} {print} /title/{print " bootfs smartos"}'
zfs snapshot smartos@$(uname -v)
cd /
zpool export smartos
poweroff
Now you can remove the CD and boot from your new boot media.
Update: It looks like the resulting image can safely be dropped onto a larger device and expanded to gain the full capacity of your USB stick:
zpool import smartos
zpool online -e c0t0d0
cd /smartos/boot/grub
installgrub -m -f stage1 stage2 /dev/rdsk/c0t0d0s0
I've created a 450MB image for others to use. It can be downloaded from Manta here.
Let me know on twitter if it worked for you.