Difference between revisions of "OpenSolaris Xen domU"

From Tardis
Jump to: navigation, search
m (New page: This page describes the installation of OpenSolaris on a Xen domU running under a Linux dom0. The following is based on the July 2007 update of OpenSolaris for Xen. == Getting the In...)
 
m
Line 6: Line 6:
  
 
I downloaded each file, verified them using the supplied md5sums, and then ran the following from bash to unzip and recombine them:
 
I downloaded each file, verified them using the supplied md5sums, and then ran the following from bash to unzip and recombine them:
<pre>for foo in `ls 66-0624-nd-iso-[a-f].zip`; do
+
<pre>mkdir /usr/lib/xen-solaris/
 +
for foo in `ls 66-0624-nd-iso-[a-f].zip`; do
 
     unzip -p $foo;
 
     unzip -p $foo;
done >66-0624-nd.iso</pre>
+
done >/usr/lib/xen-solaris/66-0624-nd.iso</pre>
  
 
== Extracting the Kernel and Initial ramdisk ==
 
== Extracting the Kernel and Initial ramdisk ==
Line 15: Line 16:
 
<pre>mkdir /mnt/tmp
 
<pre>mkdir /mnt/tmp
 
mount -o loop,ro 66-0624-nd.iso /mnt/tmp
 
mount -o loop,ro 66-0624-nd.iso /mnt/tmp
cp /mnt/tmp/boot/x86.miniroot x86.miniroot-66-0624-nd
+
cp /mnt/tmp/boot/x86.miniroot /usr/lib/xen-solaris/x86.miniroot-66-0624-nd
cp /mnt/tmp/boot/platform/i86xpv/kernel/unix unix-66-0624-nd
+
cp /mnt/tmp/boot/platform/i86xpv/kernel/unix /usr/lib/xen-solaris/unix-66-0624-nd
 
umount /mnt/tmp</pre>
 
umount /mnt/tmp</pre>
  
Line 32: Line 33:
 
kernel = '/usr/lib/xen-solaris/unix-66-0624-nd'
 
kernel = '/usr/lib/xen-solaris/unix-66-0624-nd'
 
ramdisk = '/usr/lib/xen-solaris/x86.miniroot-66-0624-nd'
 
ramdisk = '/usr/lib/xen-solaris/x86.miniroot-66-0624-nd'
extra = '/platform/i86xpv/kernel/unix -kd - nowin -B install_media=cdrom'</pre>
+
extra = '/platform/i86xpv/kernel/unix - nowin -B install_media=cdrom'</pre>
  
This creates a domU called argolin with 1024MB of RAM, a virtual DVD drive from the image in '/mnt/tmp/66-0624-nd.iso', a virtual disk from the device '/dev/xenvg/argolin.disk', the default virtual network interface and the kernel and ramdisk extracted earlier.   
+
This creates a domU called argolin with 1024MB of RAM, a virtual DVD drive from the image in '/mnt/tmp/66-0624-nd.iso', a virtual disk from the device '/dev/xenvg/argolin.disk', the default virtual network interface and the kernel and ramdisk extracted earlier.  This configuration file should be saved in '/etc/xen/' and given a name like 'argolin.conf' but this is up to you.   
  
'''Note:''' The '-kd' kernel parameter causes the kernel to open the debugger as soon as possible after boot.  This can be used to enable workarounds as described below.
+
== SMP-related IO Hang ==
  
 +
My first tries at booting OpenSolaris as a domU resulted in the installer hanging at some point during the unpacking process.  After much help from LALALALALALALLALAALALALLALALALALLAAA
 +
<pre>extra = '/platform/i86xpv/kernel/unix -kd - nowin -B install_media=cdrom'</pre>
  
<pre>/a/usr/bin/scp -S /a/usr/bin/ssh /a/platform/i86xpv/kernel/unix 10.0.0.1:</pre>
+
The '-kd' kernel parameter causes the kernel to open the debugger as soon as possible after boot.  This can be used to enable workarounds as described below.
 +
 
 +
== Booting the Installer ==
 +
 
 +
Once you have the DVD image, have extracted the kernel and ramdisk, and have created the [[Xen]] configuration file you can boot the installer like so:
 +
<pre>xm create -c argolin.conf</pre>
 +
 
 +
The last argument to the command is the name of the configuration file created above.  You should see OpenSolaris booting and eventually asking you for details of your location and terminal.  Make sure you are using a standard 80x25 terminal and select option 6 (PC console). 
 +
 
 +
<pre>/a/usr/bin/scp -S /a/usr/bin/ssh /a/platform/i86xpv/kernel/unix /a/platform/i86pc/boot_archive 10.0.0.1:/usr/lib/xen-solaris/</pre>

Revision as of 16:49, 26 July 2007

This page describes the installation of OpenSolaris on a Xen domU running under a Linux dom0. The following is based on the July 2007 update of OpenSolaris for Xen.

Getting the Installation Media

The installer is available as DVD image from Sun's Download Centre here. It is distributed as an ISO file, which has been split into six parts and where each part has been zipped.

I downloaded each file, verified them using the supplied md5sums, and then ran the following from bash to unzip and recombine them:

mkdir /usr/lib/xen-solaris/
for foo in `ls 66-0624-nd-iso-[a-f].zip`; do
    unzip -p $foo;
done >/usr/lib/xen-solaris/66-0624-nd.iso

Extracting the Kernel and Initial ramdisk

To boot OpenSolaris under Xen you need both a kernel and initial ramdisk available on your dom0. The documentation seems to assume that you are running an OpenSolaris dom0 and so will already have a copy of the kernel and ramdisk on your dom0. In our case, with a Linux dom0, we will need to extract the kernel and ramdisk from the ISO image like so:

mkdir /mnt/tmp
mount -o loop,ro 66-0624-nd.iso /mnt/tmp
cp /mnt/tmp/boot/x86.miniroot /usr/lib/xen-solaris/x86.miniroot-66-0624-nd
cp /mnt/tmp/boot/platform/i86xpv/kernel/unix /usr/lib/xen-solaris/unix-66-0624-nd
umount /mnt/tmp

Configuring Xen for the Installation

Before you can boot OpenSolaris to begin the installation you will need to create a Xen configuration file defining the virtual disk, virtual DVD drive, kernel, ramdisk, memory size and kernel parameters. Here's an example:

name = 'argolin'
memory = '1024'
disk = [ 'file:/mnt/tmp/66-0624-nd.iso,6:cdrom,r', 'phy:/dev/xenvg/argolin.disk,0,w' ]
vif = [ '' ]
on_shutdown = 'destroy'
on_reboot = 'destroy'
on_crash = 'destroy'
kernel = '/usr/lib/xen-solaris/unix-66-0624-nd'
ramdisk = '/usr/lib/xen-solaris/x86.miniroot-66-0624-nd'
extra = '/platform/i86xpv/kernel/unix - nowin -B install_media=cdrom'

This creates a domU called argolin with 1024MB of RAM, a virtual DVD drive from the image in '/mnt/tmp/66-0624-nd.iso', a virtual disk from the device '/dev/xenvg/argolin.disk', the default virtual network interface and the kernel and ramdisk extracted earlier. This configuration file should be saved in '/etc/xen/' and given a name like 'argolin.conf' but this is up to you.

SMP-related IO Hang

My first tries at booting OpenSolaris as a domU resulted in the installer hanging at some point during the unpacking process. After much help from LALALALALALALLALAALALALLALALALALLAAA

extra = '/platform/i86xpv/kernel/unix -kd - nowin -B install_media=cdrom'
The '-kd' kernel parameter causes the kernel to open the debugger as soon as possible after boot.  This can be used to enable workarounds as described below.

Booting the Installer

Once you have the DVD image, have extracted the kernel and ramdisk, and have created the Xen configuration file you can boot the installer like so:

xm create -c argolin.conf

The last argument to the command is the name of the configuration file created above. You should see OpenSolaris booting and eventually asking you for details of your location and terminal. Make sure you are using a standard 80x25 terminal and select option 6 (PC console).

/a/usr/bin/scp -S /a/usr/bin/ssh /a/platform/i86xpv/kernel/unix /a/platform/i86pc/boot_archive 10.0.0.1:/usr/lib/xen-solaris/