Ubuntu – Xen hypervisor 4.1 Kernel Panic on Ubuntu 12.04

Ubuntuubuntu-12.04xenxenserver

I have a fresh Ubuntu 12.04.1 amd64 server install following this guide

I have used LVM option used all disk and make 2 LV

/dev/mapper/vg-root / (80GB)
vg-swap swap (4GB)

now i install xen with apt-get install xen-hypervisor-4.1-amd64 and config /etc/default/grub like the guide and add

GRUB_CMDLINE_XEN_DEFAULT="dom0_mem=768M"

later all this i exec update-grub and reboot. but when i try to boot with Xen 4.1-amd64 always i get a kernel panic with the message

Domain-0 allocation is too small for kernel image

my questions are:

  • this error is about what?
  • where i can grow this allocation for avoid this error?

grub.cfg

menuentry 'Ubuntu GNU/Linux, with Xen 4.1-amd64 and Linux 3.2.0-29-generic' --class ubuntu --class gnu-linux --class gnu --class os --class xen {
        insmod part_gpt
        insmod ext2
        set root='(hd0,gpt2)'
        search --no-floppy --fs-uuid --set=root 3541e241-7f39-4ebe-8d99-c5306294c266
        echo    'Loading Xen 4.1-amd64 ...'
        multiboot       /xen-4.1-amd64.gz placeholder  dom0_mem=768M
        echo    'Loading Linux 3.2.0-29-generic ...'
        module  /vmlinuz-3.2.0-29-generic placeholder root=/dev/mapper/backup--xen-root ro rootdelay=180
        echo    'Loading initial ramdisk ...'
        module  /initrd.img-3.2.0-29-generic
}

Note: I've followed this guide too

Best Answer

I know the xen docs state it should be possible to use megabytes but did you try giving the dom0 mem as kilobytes?

submenu "Xen 4.1-amd64" {
menuentry 'Ubuntu GNU/Linux, with Xen 4.1-amd64 and Linux 3.2.0-29-generic' --class ubuntu --class gnu-linux --class gnu --class os --class xen {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos1)'
        search --no-floppy --fs-uuid --set=root 2f49dfec-199f-427a-a6e3-64cf39a94c05
        echo    'Loading Xen 4.1-amd64 ...'
        multiboot       /boot/xen-4.1-amd64.gz placeholder  dom0_mem=2097152 dom0_max_vcpus=2 dom0_vcpus_pin=0,1
        echo    'Loading Linux 3.2.0-29-generic ...'
        module  /boot/vmlinuz-3.2.0-29-generic placeholder root=UUID=2f49dfec-199f-427a-a6e3-64cf39a94c05 ro  
        echo    'Loading initial ramdisk ...'
        module  /boot/initrd.img-3.2.0-29-generic
}

This works for me under Ubuntu 12.04.