[prev in list] [next in list] [prev in thread] [next in thread]
List: xen-users
Subject: Re: [Xen-users] pvgrub2 launch of Xen 4.5.1 DomU just drops to grub2 prompt ?
From: PGNet Dev <pgnet.dev () gmail ! com>
Date: 2015-10-31 21:14:24
Message-ID: 56352F30.60202 () gmail ! com
[Download RAW message or body]
On 10/20/2015 02:58 AM, Ian Campbell wrote:
> Where does this file end up? Is it a file within the guest filesystem? The
> runes here suggest it is part of the host, which doesn't seem right.
>
> Once you have started grub in the guest then all of the referenced files
> need to either be in the guest file system or in a memdisk which you have
> built into the grub image.
>
> Remember, Grub cannot see anything in the dom0 filesystem.
>
> I'd suggest exploring what grub can see from the grub prompt using ls on
> each device etc and try executing variants on the commands which you are
> embedding as above directly to experiment and find the correct set of
> things to do.
>
> Also, what does grub.cfg within the guest contain?
After figuring out that grub2-mkstandalone presumes a '/boot/grub/...'
path, and ignores my usage of any other paths, e.g. '/boot/grub2/...',
I've managed to get this manually-cobbled config to boot the guest.
I'm using a DIY'd pvgrub2 blob; atm, the distro-provided blob fails to
launch the guest (ref:
http://lists.opensuse.org/opensuse-virtual/2015-10/msg00014.html)
@ Dom0 host, the simplest config that I can get to work is
cd /home/tmp/pvgrub2
cat << EOF > boot/grub/grub.cfg
insmod part_msdos
set root=(xen/xvda,msdos1)
linux /vmlinuz-xen root=/dev/xvdc1 noresume quiet splash=silent
textmode=1 xencons=xvc0 console=hvc0 noirqdebug elevator=noop
initrd /initrd-xen
configfile /boot/grub2/grub.cfg
boot
EOF
Note^^ the specification of symlinks, "vmlinuz-xen & initrd-xen",
grub2-mkstandalone \
--compress=no \
--fonts="unicode" \
--themes="" \
-O x86_64-xen \
-o grub-x86_64-xen \
boot/grub/grub.cfg
With
cat ~/test.cfg
name = 'test'
builder = 'linux'
kernel = '/home/tmp/pvgrub2/grub-x86_64-xen'
disk = [ '/dev/VG0/testBOOT,raw,xvda,backendtype=phy,rw',
'/dev/VG0/testROOT,raw,xvdc,backendtype=phy,rw' ]
vif = [ 'mac=00:16:3E:10:10:01, bridge=br0, vifname=vifT',]
vfb = [ 'type=vnc, vncdisplay=1001, vnclisten=127.0.0.1' ]
on_shutdown = 'destroy'
on_reboot = 'restart'
on_crash = 'destroy'
maxmem = 1024
memory = 1024
Guest boot
xl create -c ~/test.cfg
completes
Welcome to openSUSE 13.2 "Harlequin" - Kernel 4.2.3-1.gef1562d-xen (xvc0).
In the DomU guest
cat /proc/cmdline
root=/dev/xvdc1 noresume quiet splash=silent textmode=1 xencons=xvc0
console=hvc0 noirqdebug elevator=noop
It appears that the cmd line is passed only from the
grub2-mkstandalone-created memdisk's embedded grub.cfg, ignoring
completely the Guest's 'configfile=/boot/grub2/grub.cfg', which contains,
cat /boot/grub2/grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
if [ -f ${config_directory}/grubenv ]; then
load_env -f ${config_directory}/grubenv
elif [ -s $prefix/grubenv ]; then
load_env
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="${saved_entry}"
fi
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi
export menuentry_id_option
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 load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
if [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_msdos
insmod ext2
set root='hd2,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint='hd2,msdos1'
a1100344-3f89-4c5c-b5c7-7657b9135fc1
else
search --no-floppy --fs-uuid --set=root
a1100344-3f89-4c5c-b5c7-7657b9135fc1
fi
font="/usr/share/grub2/unicode.pf2"
fi
if loadfont $font ; then
set gfxmode=auto
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=en_US
insmod gettext
fi
terminal_output gfxterm
insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint='hd0,msdos1'
f8f5e4ca-3f78-4db4-bba5-1a405f896f0a
else
search --no-floppy --fs-uuid --set=root
f8f5e4ca-3f78-4db4-bba5-1a405f896f0a
fi
insmod gfxmenu
loadfont ($root)/grub2/themes/openSUSE/DejaVuSans-Bold14.pf2
loadfont ($root)/grub2/themes/openSUSE/DejaVuSans10.pf2
loadfont ($root)/grub2/themes/openSUSE/DejaVuSans12.pf2
loadfont ($root)/grub2/themes/openSUSE/ascii.pf2
insmod png
set theme=($root)/grub2/themes/openSUSE/theme.txt
export theme
if [ x${boot_once} = xtrue ]; then
set timeout=0
elif [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=8
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=8
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/10_linux ###
menuentry 'openSUSE' --class opensuse --class gnu-linux --class gnu
--class os $menuentry_id_option
'gnulinux-simple-a1100344-3f89-4c5c-b5c7-7657b9135fc1' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint='hd0,msdos1'
f8f5e4ca-3f78-4db4-bba5-1a405f896f0a
else
search --no-floppy --fs-uuid --set=root
f8f5e4ca-3f78-4db4-bba5-1a405f896f0a
fi
echo 'Loading Linux 4.2.3-1.gef1562d-xen ...'
linux /vmlinuz-4.2.3-1.gef1562d-xen root=/dev/xvdc1
/dev/xvdc1 noresume splash=silent quiet showopts
echo 'Loading initial ramdisk ...'
initrd /initrd-4.2.3-1.gef1562d-xen
}
submenu 'Advanced options for openSUSE' $menuentry_id_option
'gnulinux-advanced-a1100344-3f89-4c5c-b5c7-7657b9135fc1' {
menuentry 'openSUSE, with Linux 4.2.3-1.gef1562d-xen' --class
opensuse --class gnu-linux --class gnu --class os $menuentry_id_option
'gnulinux-4.2.3-1.gef1562d-xen-advanced-a1100344-3f89-4c5c-b5c7-7657b9135fc1'
{
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root
--hint='hd0,msdos1' f8f5e4ca-3f78-4db4-bba5-1a405f896f0a
else
search --no-floppy --fs-uuid --set=root
f8f5e4ca-3f78-4db4-bba5-1a405f896f0a
fi
echo 'Loading Linux 4.2.3-1.gef1562d-xen ...'
linux /vmlinuz-4.2.3-1.gef1562d-xen root=/dev/xvdc1
/dev/xvdc1 noresume splash=silent quiet showopts
echo 'Loading initial ramdisk ...'
initrd /initrd-4.2.3-1.gef1562d-xen
}
menuentry 'openSUSE, with Linux 4.2.3-1.gef1562d-xen (recovery
mode)' --class opensuse --class gnu-linux --class gnu --class os
$menuentry_id_option
'gnulinux-4.2.3-1.gef1562d-xen-recovery-a1100344-3f89-4c5c-b5c7-7657b9135fc1'
{
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root
--hint='hd0,msdos1' f8f5e4ca-3f78-4db4-bba5-1a405f896f0a
else
search --no-floppy --fs-uuid --set=root
f8f5e4ca-3f78-4db4-bba5-1a405f896f0a
fi
echo 'Loading Linux 4.2.3-1.gef1562d-xen ...'
linux /vmlinuz-4.2.3-1.gef1562d-xen root=/dev/xvdc1
showopts apm=off noresume edd=off powersaved=off nohz=off highres=off
processor.max_cstate=1 nomodeset x11failsafe
echo 'Loading initial ramdisk ...'
initrd /initrd-4.2.3-1.gef1562d-xen
}
menuentry 'openSUSE, with Linux xen' --class opensuse --class
gnu-linux --class gnu --class os $menuentry_id_option
'gnulinux-xen-advanced-a1100344-3f89-4c5c-b5c7-7657b9135fc1' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root
--hint='hd0,msdos1' f8f5e4ca-3f78-4db4-bba5-1a405f896f0a
else
search --no-floppy --fs-uuid --set=root
f8f5e4ca-3f78-4db4-bba5-1a405f896f0a
fi
echo 'Loading Linux xen ...'
linux /vmlinuz-xen root=/dev/xvdc1 /dev/xvdc1
noresume splash=silent quiet showopts
echo 'Loading initial ramdisk ...'
initrd /initrd-xen
}
menuentry 'openSUSE, with Linux xen (recovery mode)' --class
opensuse --class gnu-linux --class gnu --class os $menuentry_id_option
'gnulinux-xen-recovery-a1100344-3f89-4c5c-b5c7-7657b9135fc1' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod ext2
set root='hd0,msdos1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root
--hint='hd0,msdos1' f8f5e4ca-3f78-4db4-bba5-1a405f896f0a
else
search --no-floppy --fs-uuid --set=root
f8f5e4ca-3f78-4db4-bba5-1a405f896f0a
fi
echo 'Loading Linux xen ...'
linux /vmlinuz-xen root=/dev/xvdc1 showopts apm=off
noresume edd=off powersaved=off nohz=off highres=off
processor.max_cstate=1 nomodeset x11failsafe
echo 'Loading initial ramdisk ...'
initrd /initrd-xen
}
}
### 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+ ###
### END /etc/grub.d/20_memtest86+ ###
### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###
### 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 ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
### BEGIN /etc/grub.d/80_suse_btrfs_snapshot ###
### END /etc/grub.d/80_suse_btrfs_snapshot ###
### BEGIN /etc/grub.d/90_persistent ###
### END /etc/grub.d/90_persistent ###
(1) I don't yet know why the distro-provided pvgrub2 blob is failing to
launch the Xen guest. I suspect bad search/specific paths.
(2) I'm not yet clear how to correctly 'chainload' the DomU Guest's
grub.cfg to pick-up kernel cmdline params, &/or support multiple kernels
via symlink or version-specific names
_______________________________________________
Xen-users mailing list
Xen-users@lists.xen.org
http://lists.xen.org/xen-users
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic