After creating VHD using VirtualBox and registering the template with CS 4.1.1 (Other PV), creating the VM from that template fails. To me it seems that pygroup doesn't find the root. Any help would be greatly appreciated. In return i can provide a link to VHD 12.04 LTS image i created.

Here is the error from CS:
--
errorInfo: [Using <class 'grub.GrubConf.Grub2ConfigFile'> to parse /grub/grub.cfg, WARNING:root:Unknown directive load_video, WARNING:root:Unknown directive terminal_output, WARNING:root:Unknown directive else, WARNING:root:Unknown directive export, WARNING:root:Unknown image directive recordfail, WARNING:root:Unknown image directive gfxmode, WARNING:root:Unknown directive submenu, Traceback (most recent call last):, File "/usr/bin/pygrub", line 850, in ?, raise RuntimeError, "Unable to find partition containing kernel", RuntimeError: Unable to find partition containing kernel, ]
--

Here is the actual grub config if i mount that VHD and take a look at it:
--
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  set have_grubenv=true
  load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function recordfail {
  set recordfail=1
if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi
}

function load_video {
  insmod vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}

insmod lvm
insmod part_msdos
insmod ext2
set root='(ubuntu-vg-root)'
search --no-floppy --fs-uuid --set=root b57488e9-5f29-407c-b3c1-767d37331494
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  insmod part_msdos
  insmod ext2
  set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 770a59b2-6d31-413f-862d-c172a6a042d1
  set locale_dir=($root)/grub/locale
  set lang=en_US
  insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ]; then
  set timeout=-1
else
  set timeout=2
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
    set gfxpayload="${1}"
    if [ "${1}" = "keep" ]; then
        set vt_handoff=vt.handoff=7
    else
        set vt_handoff=
    fi
}
if [ "${recordfail}" != 1 ]; then
  if [ -e ${prefix}/gfxblacklist.txt ]; then
    if hwmatch ${prefix}/gfxblacklist.txt 3; then
      if [ ${match} = 0 ]; then
        set linux_gfx_mode=keep
      else
        set linux_gfx_mode=text
      fi
    else
      set linux_gfx_mode=text
    fi
  else
    set linux_gfx_mode=keep
  fi
else
  set linux_gfx_mode=text
fi
export linux_gfx_mode
if [ "${linux_gfx_mode}" != "text" ]; then load_video; fi
menuentry 'Ubuntu, with Linux 3.8.0-30-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 770a59b2-6d31-413f-862d-c172a6a042d1
    linux    /vmlinuz-3.8.0-30-generic root=/dev/mapper/ubuntu--vg-root ro
    initrd    /initrd.img-3.8.0-30-generic
}
menuentry 'Ubuntu, with Linux 3.8.0-30-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 770a59b2-6d31-413f-862d-c172a6a042d1
    echo    'Loading Linux 3.8.0-30-generic ...'
linux /vmlinuz-3.8.0-30-generic root=/dev/mapper/ubuntu--vg-root ro recovery nomodeset
    echo    'Loading initial ramdisk ...'
    initrd    /initrd.img-3.8.0-30-generic
}
submenu "Previous Linux versions" {
menuentry 'Ubuntu, with Linux 3.8.0-29-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 770a59b2-6d31-413f-862d-c172a6a042d1
    linux    /vmlinuz-3.8.0-29-generic root=/dev/mapper/ubuntu--vg-root ro
    initrd    /initrd.img-3.8.0-29-generic
}
menuentry 'Ubuntu, with Linux 3.8.0-29-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 770a59b2-6d31-413f-862d-c172a6a042d1
    echo    'Loading Linux 3.8.0-29-generic ...'
linux /vmlinuz-3.8.0-29-generic root=/dev/mapper/ubuntu--vg-root ro recovery nomodeset
    echo    'Loading initial ramdisk ...'
    initrd    /initrd.img-3.8.0-29-generic
}
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 770a59b2-6d31-413f-862d-c172a6a042d1
    linux16    /memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 770a59b2-6d31-413f-862d-c172a6a042d1
    linux16    /memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
### END /etc/grub.d/30_uefi-firmware ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
--

When installing under VirtualBox I installed grub to MBR. Also i decided to use LVM partitions. I also upgraded the system and tested reboot (apt-get update; apt-get dist-upgrade; reboot). Install has the standard kernel.

Regards,
F.


On 6/9/13 1:21 PM, France wrote:
Tnx for suggestion/answer Kirk. I'll go and create Ubuntu 12.04 LTS PV VHD using VirtualBox on my desktop machine.

So when i have a working Ubuntu 12.04 LTS PV image/VHD for XS 6.0.2 i have to import it into CS 4.1.1 with XS 6.0.2. Which option should i select then for "OS Type" when "registering template". Other PV 64bit? If I choose Ubuntu 12.04 i'm sure i'll get the same error as before: [xen.resource.CitrixHelper] (DirectAgent-92:) XenServer 6.0.2 DOES NOT support Guest OS type Ubuntu 12.04 (64-bit)

Regards,
F.

On 6/9/13 1:08 AM, Kirk Kosinski wrote:
The problem is that installing Ubuntu (any version) from ISO is not
supported by XenServer.  Using the "Other" (not "Other PV") OS Type will
allow it, but the result is an HVM mode VM which has disadvantages (poor
performance, no XS Tools, no live migration).  The supported way to
install Ubuntu on XenServer is a network-based installation, but this is
not possible to do through CloudStack.

My usual recommendation is to do a supported installation of Ubuntu on a
standalone XenServer to get a PV mode VM, export the VHD, and import it
as a template to CloudStack.  If no XenServer host is unavailable,
install one in VirtualBox on a laptop and setup a PV mode Ubuntu VM
there.  It is possible to convert an HVM mode VM to PV mode, but it is
an error prone and time consuming process, so it is usually better to
build the in PV mode to begin with.

Best regards,
Kirk



Reply via email to