[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-users] pvgrub2 launch of Xen 4.5.1 DomU just drops to grub2 prompt ?
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/cmdlineroot=/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 ]; thensearch --no-floppy --fs-uuid --set=root --hint='hd2,msdos1' a1100344-3f89-4c5c-b5c7-7657b9135fc1 elsesearch --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 ]; thensearch --no-floppy --fs-uuid --set=root --hint='hd0,msdos1' f8f5e4ca-3f78-4db4-bba5-1a405f896f0a elsesearch --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 ]; thensearch --no-floppy --fs-uuid --set=root --hint='hd0,msdos1' f8f5e4ca-3f78-4db4-bba5-1a405f896f0a elsesearch --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 ]; thensearch --no-floppy --fs-uuid --set=root --hint='hd0,msdos1' f8f5e4ca-3f78-4db4-bba5-1a405f896f0a elsesearch --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 ]; thensearch --no-floppy --fs-uuid --set=root --hint='hd0,msdos1' f8f5e4ca-3f78-4db4-bba5-1a405f896f0a elsesearch --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 ]; thensearch --no-floppy --fs-uuid --set=root --hint='hd0,msdos1' f8f5e4ca-3f78-4db4-bba5-1a405f896f0a elsesearch --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 ]; thensearch --no-floppy --fs-uuid --set=root --hint='hd0,msdos1' f8f5e4ca-3f78-4db4-bba5-1a405f896f0a elsesearch --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@xxxxxxxxxxxxx http://lists.xen.org/xen-users
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |