Why?
If you have any sense, you've already virtualized your DC. And if you have a lack of cents, you've standardized on Xen based on a commodity Linux like Debian, Ubuntu, Centos/Red Hat or openSUSE/SLES. Solaris/ZFS still fits well in that environment as an iscsi or nfs server.
Plus, it's cool.
Prerequisites
I'm assuming you already have a working Xen 3 install on Linux, and that you have some familiarity with creating and running Xen guests. I'm using Ubuntu 7.10 and the xen-hypervisor-3.1 package. Here's details on the hardware.
Getting down to business
- Download the iso from http://www.opensolaris.com/get/index.html
- Mount the iso in your dom0: mount -o loop os200805.iso /mnt
- Copy the install kernel and ramdisk into your dom0 file system:
cp /mnt/platform/i86xpv/kernel/amd64/unix /home/xen/kernels/sol-indiana/unix
cp /mnt/boot/x86.microroot /home/xen/kernels/sol-indiana/x86.microroot - Create a xen conf file for the installation. It should look something like this, and dear god please change /dev/changeme to a meaningful block device on your system. Bonus points for using a different mac address.
name = 'solaris-indiana'
memory = '1024'
disk = [ 'file:/dev/changeme,0,w', 'file:/home/xen/iso/os200805.iso,6:cdrom,r' ]
kernel = '/home/xen/kernels/sol-indiana/unix'
ramdisk = '/home/xen/kernels/sol-indiana/x86.microroot'
extra = '/platform/i86xpv/kernel/amd64/unix - nowin -B install_media=cdrom'
vif = [ 'mac=00:16:3e:0c:61:50,bridge=xenbr0' ] - Start the domain:
xm create -c sol-indiana-install.cfg
- Select keyboard layout, then your language
- Login as jack/jack
- Type ifconfig -a to find your ip address assigned by dhcp
- Login remotely with ssh -X jack@[ip address]
- Start the install process: su root -c gui-install (when prompted the root password is 'opensolaris')
- Go through the install process, and at the end choose quit rather than reboot
- Use scp to copy boot_archive to dom0 disk:
scp /a/platform/i86pc/amd64/boot_archive root@[dom u ip address]:/home/xen/kern els/sol-indiana/boot_archive
- Shutdown the solaris instance: su root -c 'halt'
- Create a new config file (sol-indiana.cfg):
name = 'solaris-indiana'
memory = '1024'
disk = [ 'file:/dev/changme,0,w' ]
kernel = '/home/xen/kernels/sol-indiana/unix'
ramdisk = '/home/xen/kernels/sol-indiana/boot_archive'
extra = '/platform/i86xpv/kernel/amd64/unix -B zfs-bootfs=rpool/27'
vif = [ 'mac=00:16:3e:0c:61:50,bridge=xenbr0' ] - Start it back up: xm create -c sol-indiana.cfg