Just summarize how I managed to install and boot an opensolaris domU (latest drop, nv66) under a Linux dom0 (RHEL 5, x64)
1. The instructions in the community documentation here doesn't include a kernel or a ramdisk specification, so the Linux dom0's tools didn't care for it. To get around this, I loop mounted the DVD image.
# mount -o loop 66-0624-nd.iso /mnt
# mkdir /etc/xen/kernel
# cp /mnt/boot/platform/i86xpv/kernel/amd64/unix /etc/xen/kernel/osol_xpv_b66.kernel
# cp /mnt/boot/amd64/x86.miniroot /etc/xen/kernel/osol_xpv_b66.miniroot
2. Create the virtual disk for the Solaris domU
Surf to www.rpmfind.net, and search the rpm package with the key words "qemu, el5, x86_64". Download the matched rpm file, qemu-0.9.0-2.el5.rf.x86_64.rpm.
# rpm -ivh qemu-0.9.0-2.el5.rf.x86_64.rpm
# qemu-img create -f raw solaris.raw 10G
Or, directly create the raw file.
# dd if=/dev/zero of=/etc/xen/vdisks/solaris.raw bs=1k seek=8192k count=1
1+0 records in
1+0 records out
1024 bytes (1.0 kB) copied, 4.4e-05 seconds, 23.3 MB/s
The following xen python config file is created and stored at /etc/xen/configs/opensol.cfg.
[root@localhost xen]# cat opensol.cfg
name = "solaris"
memory = "512"
vcpus = "1"
disk = [ 'file:/home/export/images/ISO/66-0624-nd.iso,6:cdrom,r','file:/etc/xen/vdisks/solaris.raw,hda,w' ]
vif = [ '' ]
on_shutdown = 'destroy'
on_reboot = 'restart'
on_crash = 'destroy'
kernel = "/etc/xen/kernel/osol_xpv_b66.kernel"
ramdisk = "/etc/xen/kernel/osol_xpv_b66.miniroot"
rootdisk = "/dev/dsk/c0d0s0"
extra = '/platform/i86xpv/kernel/amd64/unix -B install_media=cdrom'
Note:
1. The statement in Solaris such as
'file:/etc/xen/vdisks/solaris.raw,0,w'
doesn't work on Linux. Replace it with
'file:/etc/xen/vdisks/solaris.raw,hda,w'
2. [root@localhost xen]# xm creat -c opensol.cfg
Using config file "./opensol.cfg".
Error: (22, 'Invalid argument')
This looks like the error Xen gives you when you try to boot a 32-bit domU on 64-bit dom0 (which is supported in 3.1, but not in 3.0.4-1 which our current bits are based off of).
> kernel = "/etc/xen/kernel/osol_xpv_b66.kernel"
> ramdisk = "/etc/xen/kernel/osol_xpv_b66.miniroot"
for a 64-bit domU:
make sure kernel is the one from:
/cdrom/boot/platform/i86xpv/kernel/amd64/unix
and bootadm is the one from:
/cdrom//boot/amd64/x86.miniroot
also, extra should have the 64-bit kernel:
extra = '/platform/i86xpv/kernel/amd64/unix -B install_media=cdrom'
3. By changing the kernel and miniroot to the 64-bit versions under amd64,
the original failure is really gone. :)
But the new issue comes:
The installation process blocks at the point of
"Setting up Java. Please wait ..."
I've waited for about half a hour. It still blocks there.
4. You need at least 768M for the install bits
included with that iso.. I expect that to
go down in time.
Once the install is complete, you can lower
the memory back down.
5. Yes, it passes if I increase the virtual memory to 1024.
However, it still comes into another failure on the way of installation.
I used the file-backed virtual disk and made the file with:
# dd if=/dev/zero of=/etc/xen/vdisk/solaris.raw bs=1k seek=8192k count=1
and pass this file-backed v-disk to Solaris domU with:
disk = [ 'file:/home/export/images/ISO/66-0624-nd.iso,6:cdrom,r','file:/etc/xen/vdisks/solaris.raw,hda,w' ]
During installation after typing 'xm create -c opensolaris.cfg', I allocated the entire disk to SOLARIS and made it auto-layouted.
After this, it comes to an error:
The following disk configuration condition(s) have been
detected. Errors must be fixed to ensure a successful
installation. Warnings can be ignored without causing the
installation to fail.
ERROR: The '/' slice extends beyond HBA cylinder 1023
I tried to layout the partition manually, but not helpful.
1. The instructions in the community documentation here doesn't include a kernel or a ramdisk specification, so the Linux dom0's tools didn't care for it. To get around this, I loop mounted the DVD image.
# mount -o loop 66-0624-nd.iso /mnt
# mkdir /etc/xen/kernel
# cp /mnt/boot/platform/i86xpv/kernel/amd64/unix /etc/xen/kernel/osol_xpv_b66.kernel
# cp /mnt/boot/amd64/x86.miniroot /etc/xen/kernel/osol_xpv_b66.miniroot
2. Create the virtual disk for the Solaris domU
Surf to www.rpmfind.net, and search the rpm package with the key words "qemu, el5, x86_64". Download the matched rpm file, qemu-0.9.0-2.el5.rf.x86_64.rpm.
# rpm -ivh qemu-0.9.0-2.el5.rf.x86_64.rpm
# qemu-img create -f raw solaris.raw 10G
Or, directly create the raw file.
# dd if=/dev/zero of=/etc/xen/vdisks/solaris.raw bs=1k seek=8192k count=1
1+0 records in
1+0 records out
1024 bytes (1.0 kB) copied, 4.4e-05 seconds, 23.3 MB/s
The following xen python config file is created and stored at /etc/xen/configs/opensol.cfg.
[root@localhost xen]# cat opensol.cfg
name = "solaris"
memory = "512"
vcpus = "1"
disk = [ 'file:/home/export/images/ISO/66-0624-nd.iso,6:cdrom,r','file:/etc/xen/vdisks/solaris.raw,hda,w' ]
vif = [ '' ]
on_shutdown = 'destroy'
on_reboot = 'restart'
on_crash = 'destroy'
kernel = "/etc/xen/kernel/osol_xpv_b66.kernel"
ramdisk = "/etc/xen/kernel/osol_xpv_b66.miniroot"
rootdisk = "/dev/dsk/c0d0s0"
extra = '/platform/i86xpv/kernel/amd64/unix -B install_media=cdrom'
Note:
1. The statement in Solaris such as
'file:/etc/xen/vdisks/solaris.raw,0,w'
doesn't work on Linux. Replace it with
'file:/etc/xen/vdisks/solaris.raw,hda,w'
2. [root@localhost xen]# xm creat -c opensol.cfg
Using config file "./opensol.cfg".
Error: (22, 'Invalid argument')
This looks like the error Xen gives you when you try to boot a 32-bit domU on 64-bit dom0 (which is supported in 3.1, but not in 3.0.4-1 which our current bits are based off of).
> kernel = "/etc/xen/kernel/osol_xpv_b66.kernel"
> ramdisk = "/etc/xen/kernel/osol_xpv_b66.miniroot"
for a 64-bit domU:
make sure kernel is the one from:
/cdrom/boot/platform/i86xpv/kernel/amd64/unix
and bootadm is the one from:
/cdrom//boot/amd64/x86.miniroot
also, extra should have the 64-bit kernel:
extra = '/platform/i86xpv/kernel/amd64/unix -B install_media=cdrom'
3. By changing the kernel and miniroot to the 64-bit versions under amd64,
the original failure is really gone. :)
But the new issue comes:
The installation process blocks at the point of
"Setting up Java. Please wait ..."
I've waited for about half a hour. It still blocks there.
4. You need at least 768M for the install bits
included with that iso.. I expect that to
go down in time.
Once the install is complete, you can lower
the memory back down.
5. Yes, it passes if I increase the virtual memory to 1024.
However, it still comes into another failure on the way of installation.
I used the file-backed virtual disk and made the file with:
# dd if=/dev/zero of=/etc/xen/vdisk/solaris.raw bs=1k seek=8192k count=1
and pass this file-backed v-disk to Solaris domU with:
disk = [ 'file:/home/export/images/ISO/66-0624-nd.iso,6:cdrom,r','file:/etc/xen/vdisks/solaris.raw,hda,w' ]
During installation after typing 'xm create -c opensolaris.cfg', I allocated the entire disk to SOLARIS and made it auto-layouted.
After this, it comes to an error:
The following disk configuration condition(s) have been
detected. Errors must be fixed to ensure a successful
installation. Warnings can be ignored without causing the
installation to fail.
ERROR: The '/' slice extends beyond HBA cylinder 1023
I tried to layout the partition manually, but not helpful.