Installing in Xen 3.0

-as of Mon Oct 12 09:04:08 EDT 2009-

These instructions are for Xen 3. See installing in xen for Xen 2.0 instructions.

INSTALL XEN

  • Grab xen and install it. Releases 3.0.2 - 3.0.4 and 3.2.1 are known to work.
  • Start xend
	xend start

CREATE A PLAN9 DOMAIN

  • setup your directory with your kernels and the plan9 install cd. You can get the 9xenpcf, 9xenpccpuf and 9xeninst kernels from /n/sources/xen/xen3. If your Xen hypervisor runs in PAE mode, use 9xenpcf-pae, 9xenpccpuf-pae and 9xeninst-pae instead. The install CD is available at the Plan9 website.
	 linux$ mkdir /usr/xen9
	 linux$ cd /usr/xen9
	 linux$ mv /somepath/9xeninst.gz .
	 linux$ mv /somepath/9xenpcf.gz .
	 linux$ mv /somepath/9xenpccpuf.gz .
	 linux$ mv /somepath/plan9.iso .
  • create a disk image. Here we make a 1GB drive, but you can use any size you like:
	 linux$ dd if=/dev/zero of=plan9.img seek=$((1024 * 1024 * 1024 - 1)) bs=1 count=1
  • create a xen config file for the plan9 installer. Here we use 96MB of RAM, but you can use any amount you like:
	 linux$ cat > /etc/xen/plan9inst
	 kernel = "/usr/xen9/9xeninst.gz"
	 memory = 96
	 name = "plan9"
	 vif = [ 'mac=aa:00:10:00:00:10' ]
	 disk = [ 'file:/usr/xen9/plan9.img,sda,w',
	          'file:/usr/xen9/plan9.iso,sdb,r' ]
	 restart = 'never'
	 
	 # This is the equivalent of plan9.ini:
	 extra="""
	 nobootprompt=local!/boot/bzroot
	 bootfile=sd01!cdboot!bootdisk.img
	 """
	 ^D
  • boot the installer and run through the install process. You will be using the console which is a little clunky. The cdrom is on sd01 and your disk is on sd00. Don't worry about spurious error messages like this:
	dev 3 sector xx, write: 0, should be 4608
When asked for the location of the archive simply enter "/" for the root of the cdrom. At the end of the install when it asks for a blank floppy simply reboot the machine:
	 linux$ xm create plan9inst -c
	 ...
	 % inst/textonly
	 ...
	 ^T^Tr      <- to reboot when you're done
  • create a xen config file for plan9 and boot it. The new config should use the 9xenpcf kernel (for a terminal) or 9xenpccpuf kernel (for a cpu server) instead of the 9xeninst kernel. The extra arguments provide the name of the fossil disk partition:
	 linux$ cat > /etc/xen/plan9
	 kernel = "/usr/xen9/9xenpcf.gz"
	 memory = 96
	 name = "plan9"
	 vif = [ 'mac=aa:00:10:00:00:10' ]
	 disk = [ 'file:/usr/xen9/plan9.img,sda,w' ]
	 restart = 'never'
	 
	 # This is the equivalent of plan9.ini:
	 extra="""
	 bootargs=local!#S/sd00/fossil
	 """
	 ^D
	 linux$ xm create plan9 -c
  • you'll want to grab the xen bits from /n/sources/xen/xen3/9 and put them in /sys/src/9. To rebuild your kernel, first bind or copy the xen/include/public directory from your Xen3 source distribution to /sys/src/9/xen3/xen-public. Then do
	 % cd /sys/src/9/xen3 && mk 'CONF=xenpcf'

To build a kernel to run in PAE mode, add 'PAE=yes' to the mk command (or edit the mkfile to make it the default).