I ran into one of those *facepalm* moments earlier today when attempting to setup a CentOS 6.5 domU guest on a legacy CentOS 5.8 Xen 4.1.0 dom0 host.
Steps to reproduce the problem.
- Boot CentOS 6.5 domU using netinstall iso and isolinux kernel / initramfs
- Run Anaconda text mode installer
- Configure your server as normal
- Reboot domU using pv-grub
You are then presented with the grubdom prompt as below:
GNU GRUB version 0.97 (524288K lower / 0K upper memory) [ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions. Anywhere else TAB lists the possible completions of a device/filename. ] grubdom>
After a few hours of scratching my head I figured out exactly what was going on. By default the installer sets up the partitions with a ext4 /boot partition which is unreadable by pv-grub (something to do with the extents). Because of this pv-grub is unable to find the kernel on the /boot partition and cannot proceed.
The solution is to either use a kickstart file to partition your /boot and format it with ext3 or run the VNC installer and create a custom partition layout that includes an ext3 /boot partition.
Depending on your partition setup you should end up with something along the lines of the following in your vm.cfg file.
Using an ext3 /boot partition:
kernel = '/usr/lib/xen/boot/pv-grub-x86_64.gz' extra = '(hd0,0)/grub/menu.lst'
Using an ext3 / (whole disk or without /boot) partition:
kernel = '/usr/lib/xen/boot/pv-grub-x86_64.gz' extra = '(hd0,0)/boot/grub/menu.lst'
Of course if you partitioned your disk differently the (hd0,0) portion may be different depending on which disk and partition your kernel is located on.
Hopefully this saves someone a few hours of banging their head against a wall like I was!