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