grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

grub PVHv2 booting patch series - no block devices available in guest


From: Andy Smith
Subject: grub PVHv2 booting patch series - no block devices available in guest
Date: Tue, 23 Jan 2018 07:18:33 +0000
User-agent: Mutt/1.5.23 (2014-03-12)

Hi Juergen,

I am trying out your grub PVHv2 guest support patch series as found
at <https://lists.gnu.org/archive/html/grub-devel/2017-11/msg00054.html>

I have a Xen 4.10.0 host on which I've cloned
https://git.savannah.gnu.org/git/grub.git and applied your patch
series.

When the guest is booted as type = "pvh" and using the generated pvh
grub image as kernel, it does boot grub which does successfully find
/boot/grub/grub.cfg within the guest. The selected kernel and
initramfs are read and it does boot that but there do not appear to
be any block devices so it ultimately fails to find root filesystem.

Doing PVHv2 direct kernel boot does seem to boot normally.

It also works under PV with pvgrub image or direct kernel boot.

Here is guest config file which results in a boot with no block
devices:

name       = "debtest1"
type       = "pvh"
memory     = 2048
vcpus      = 2
vif        = [ "mac=00:16:5e:00:02:39, ip=192.168.82.225, vifname=v-debtest1" ]
kernel     = "/opt/grub/lib/pvhgrub.bin"
disk       = [ "phy:/dev/vg0/domu_debtest1_xvda,xvda,w",
               "phy:/dev/vg0/domu_debtest1_xvdb,xvdb,w" ]

It ends up dumped at busybox prompt since there is no root
filesystem. cat /proc/partitions at that time shows no block devices
at all.

Here is guest config file which boots okay as PVHv2 guest:

name       = "debtest1"
type       = "pvh"
memory     = 2048
vcpus      = 2
vif        = [ "mac=00:16:5e:00:02:39, ip=192.168.82.225, vifname=v-debtest1" ]
# kernel and initramfs manually extracted from out of guest
kernel     = "/var/tmp/vmlinuz-4.13.0-31-generic"
ramdisk    = "/var/tmp/initrd.img-4.13.0-31-generic"
cmdline    = "root=/dev/xvda1 ro console=hvc0"
disk       = [ "phy:/dev/vg0/domu_debtest1_xvda,xvda,w",
               "phy:/dev/vg0/domu_debtest1_xvdb,xvdb,w" ]

And previous situation of being booted as PV guest also is fine:

name       = "debtest1"
memory     = 2048
vcpus      = 2
vif        = [ "mac=00:16:5e:00:02:39, ip=192.168.82.225, vifname=v-debtest1" ]
kernel     = "/opt/grub/lib/grub-x86_64-xen.bin"
disk       = [ "phy:/dev/vg0/domu_debtest1_xvda,xvda,w",
               "phy:/dev/vg0/domu_debtest1_xvdb,xvdb,w" ]

Build process for my /opt/grub/lib/pvhgrub.bin:

./autogen.sh && \
sudo tar -C /opt/grub/share/memdisk -cvf /opt/grub/share/memdisk.tar grub.cfg 
&& \
./configure --prefix=/opt/grub --with-platform=xenpvh && \
make && \
sudo make install && \
sudo /opt/grub/bin/grub-mkimage \
    -O i386-xenpvh \
    -c /opt/grub/etc/grub-bootstrap.cfg \
    -m /opt/grub/share/memdisk.tar \
    -o /opt/grub/lib/pvhgrub.bin \
    -p /boot/grub \
    -v /opt/grub/lib/grub/i386-xenpvh/*.mod

/opt/grub/share/memdisk/grub.cfg just looks for /boot/grub/grub.cfg
in guest and uses that. This part is working as it does display the
menu, allow selection of the boot entry and then boots it.

Any ideas what is wrong there?

Thanks,
Andy



reply via email to

[Prev in Thread] Current Thread [Next in Thread]