Saturday, September 06, 2008

Xen Error (22, "Invaid argument"): Pt 2

I give up. The problem was that domains would install correctly, but fail to start.

At first, I thought the failures were when I would install from a kickstart file. During the install, a template kickstart is created as anaconda.cfg, which contains:
bootloader --location=mbr --driveorder=hda --append="rhgb quiet"
If a domain is manually installed, the line is:
bootloader --location=mbr --driveorder=vxda --append="console=xvc0"
My kickstart was actually misconfiguring the boot loader.

To review the bootloader options, I used:
xm create -c domain
This let me get into Grub. Unfortunately, that means Error 22 isn't an MBR problem. No efforts to fix via Grub provided any help.

Next, I found that I could bypass Grub. The trick was to add extra directives to the domain config file:
kernel = "/boot/vmlinuz-2.6.18-1.2798.fc6xen"
root = "/dev/xvda1 ro"
ramdisk = "/boot/initrd-2.6.18-1.2798.fc6xen.img"
#bootloader="/usr/bin/pygrub"
Notice that the bootloader directive is commented out. This failed marvelously, but got further than before. The errors were similar to a lost root partition.

This caused me to realize two things. First: root should not xvda1 but xvda2 or xvda3, as boot would be xvda1. Second: root was on an LVM not a xvda.

So, I reimaged the VM using an image file rather than LVMs. Worked. How strange.

Okay, a couple important issues here: This is Xen 3.0 (as explained in an earlier post), but I don't think that is the prime factor. I am trying to put the image on an logical volume, on a software raid. I know LVM images work fine under 3.1, and others having ti running on 3.0, but I've found no one else trying the three together. It seems the three just don't seem to play well with one another.

No comments:

Post a Comment