grehan-freebsd / grub2-bhyve

GNU General Public License v3.0
51 stars 21 forks source link

grub2-bhyve fails to boot XFS file system with Centos7 / RHEL7 #8

Open girgen opened 7 years ago

girgen commented 7 years ago

Hi,

Downloaded CentOS-7-x86_64-Everything-1611.iso, and also rhel-server-7.3-x86_64-dvd.iso, and tried to install on

After successful installation of the linux host from ISO image, restart the bhyve with GRUB and it fails to read the XFS file system – [see also this forum post (https://forums.freebsd.org/threads/58981/):

grub> ls
(lvm/cl-root) (lvm/cl-swap) (hd0) (hd0,msdos2) (hd0,msdos1) (host) 
grub> ls (lvm/cl-root)/
error: not a correct XFS inode.
...
grub> ls (hd0,msdos2)/
error: unknown filesystem.
grub> ls (hd0,msdos1)/
error: not a correct XFS inode.
...

I tried all options for standard partition, btreefs, LVM, etc with the latest Centos and RHEL7 ISO:s. There is no alternative that works, they all give the same problem.

$ cat device-cd.map 
(hd0) /dev/zvol/tank/bhyves/rhel/disk
(cd0) /home/girgen/rhel-server-7.3-x86_64-dvd.iso
$ cat grub-cd.in 
linux  (cd0)/isolinux/vmlinuz
initrd  (cd0)/isolinux/initrd.img 
boot
$ cat rhel-cd.sh 
#! /bin/sh

grub-bhyve -m device-cd.map -r cd0 -M 16384 rhel < grub-cd.in 
bhyve -A -H -P -s 0:0,hostbridge -s 1:0,lpc -s 2:0,virtio-net,tap0 \
    -s 3:0,virtio-blk,/dev/zvol/tank/bhyves/rhel/disk \
    -s 4:0,ahci-cd,/home/girgen/rhel-server-7.3-x86_64-dvd.iso \
    -l com1,stdio -c 4 -m 16384 rhel
bhyvectl --vm=rhel --destroy

running the script, all is dandy. after installation has finished, restarting grub with grub-bhyve -m device-cd.map -M 16384 rhel gives the problems above.

benkard commented 7 years ago

This looks related: https://bugzilla.redhat.com/show_bug.cgi?id=1001279

girgen commented 7 years ago

Indeed, seems to be exactly the problem.

I worked around my problem by installing using UEFI. Seems to med they describe exactly the problem I experienced.

Palle

26 feb. 2017 kl. 22:28 skrev Matthias Andreas Benkard notifications@github.com:

This looks related: https://bugzilla.redhat.com/show_bug.cgi?id=1001279

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.

jeroen92 commented 7 years ago

I also stumbled upon this issue. My first attempt to work around this issue was to re-create the XFS filesystem and disabling CRCs (mkfs.xfs -m crc=0). However, in grub-bhyve this resulted in grub either throwing the same inode errors, or magic number errors. Then I decided to ditch XFS and went with ext4, which works solid, at least in the grub-bhyve part.

jjurkus commented 7 years ago

This should be fixed in grub 2.02, so maybe this version can be imported?

grehan-freebsd commented 7 years ago

It could, but I suspect it's a fair amount of work. I had an preliminary attempt at pulling in just the XFS changes, but the surrounding 2.02 changes were big enough that it is probably easier to move forward to 2.02. Still a big job though.

anteract commented 6 years ago

Since XFS isn't going away, is anyone working on making this work yet? Any chance that we can continue using Centos post XFS?

grehan-freebsd commented 6 years ago

I'm not working on it. As above, it's a big job.

For Centos, using UEFI as the bootloader works, and perhaps selecting EXT4 for the filesystem (if that's possible; I've not tried it).

jpiper commented 4 years ago

I've had to build my own VM using Hashicorp packer with a kickstart script, and then ensuring that the boot partition is ext4.