What I ended up doing was looking at my working CentOS PV guest, listing all the modules, and finding the ones that were not loaded in my AsteriskNow guest. That seemed to do the trick, and it booted. (Once I realized that the initrd file had to be in /boot on the _host_, not the guest!)
Unfortunately, as it turns out, there are then a bunch of additional Asterisk modules that I would need to build for the xen kernel, and I didn't have any luck finding the source, so I think I might give up on this for a while.
Thanks very much for your help!
Ken
p.s., I felt like I spent a bunch of time scratching my head on this stuff because I couldn't find good, clear documentation. Is there such documentation to be found somewhere, or is it just lacking at this point?
p.p.s., In case it's useful for others, this is the mkinitrd command I used within the guest, and then copied the initrd to /boot on the host:
mkinitrd --with=i2c_dev --with=ip6table_filter --with=ip6_tables --with=ip6t_REJECT --with=ip_conntrack --with=ip_conntrack_netbios_ns --with=iptable_filter --with=ip_tables --with=ipt_REJECT --with=nfnetlink --with=xenblk --with=xennet --with=x_tables --with=xt_state --with=xt_tcpudp /boot/initrd-2.6.18-92.1.13.el5xen.img.new 2.6.18-92.1.13.el5xen
Todd Deshane wrote:
On Thu, Oct 30, 2008 at 8:04 PM, Kenneth Tanzer ktanzer@desc.org wrote:
I am not seeing the errors in the red hat based boot that I am familiar with,
As I understand it, this Asterisk disk I have is built on Centos 5.2, so I'm assuming Asterisk=CentOS=Redhat, at least for this purpose.
Yeah, I meant Red Hat-based, CentOS, fedora etc. are quite similar
it seems that you are running into one of the following (or similar:
Your guest root file system is not where you expect it to be. If you haven't already, check the grub.conf in the guest.
Here's my grub file:
title CentOS (2.6.18-92.1.13.el5xen) root (hd0,0) kernel /xen.gz-2.6.18-92.1.13.el5 module /vmlinuz-2.6.18-92.1.13.el5xen ro root=/dev/VolGroup00/LogVol00 module /initrd-2.6.18-92.1.13.el5xen.img
Here's the corresponding xen entries:
kernel="/boot/vmlinuz-2.6.18-92.1.13.el5xen" ramdisk="/boot/initrd-2.6.18-92.1.13.el5xen.img" root="/dev/VolGroup00/LogVol00" extra="ro"
They seem to match to me. Sanity check: the "root" in the xen config is specified as seen by the guest, right?
Yes, with the guest disk image.
OR
You are missing modules in your ramdisk that are needed by your guest (in which case you would need to use mkinitrd to rebuild your xen initrd and make sure you include the necessary modules)
I can boot the xen kernel as a fully-virtualized machine (with the grub.conf mentioned above). Is that a fair indicator that all the required modules exist? If not, any idea how to figure out what might be missing?
Actually no, the fully virtual kernel modules in the guest are not used when booting with the kernel and ramdisk options in the xen config.
Some of those more familiar with centos might be able to jump in to help with specific modules, but if I was you I would boot the full virtual guest, do an lsmod and compare the modules, especially the ones to do with disk drivers, lvm, device mappers etc. with the /lib/modules/<xen kernel version>/modules
Simply rebuilding the initrd with a mkinitrd and the right modules included might be all you need. This only the basic idea, I would suggest to take some time to search xen.markmail.org for either error messags or key words that may lead you to some exact instructions of the mkinitrd that will work for your setup.
Hope that helps, Cheers, Todd