openzfs / openzfs-docs

OpenZFS Documentation
https://openzfs.github.io/openzfs-docs/
128 stars 184 forks source link

openSUSE Root on ZFS: UEFI + grub problems #258

Open gmelikov opened 2 years ago

gmelikov commented 2 years ago

At least openSUSE Tumbleweed Root on ZFS with UEFI guide may have problems with GRUB FS check:

localhost:/ # zpool list
NAME    SIZE  ALLOC   FREE  CKPOINT  EXPANDSZ   FRAG    CAP  DEDUP    HEALTH  ALTROOT
bpool   960M  55.6M   904M        -         -     0%     5%  1.00x    ONLINE  /mnt
rpool  18.5G  1.44G  17.1G        -         -     0%     7%  1.00x    ONLINE  /mnt
localhost:/ # zfs list
NAME              USED  AVAIL     REFER  MOUNTPOINT
bpool            55.4M   776M       96K  /mnt/boot
bpool/BOOT       54.9M   776M       96K  none
bpool/BOOT/suse  54.8M   776M     54.8M  /mnt/boot
rpool            1.44G  16.5G       96K  /mnt
rpool/ROOT       1.43G  16.5G       96K  none
rpool/ROOT/suse  1.43G  16.5G     1.43G  /mnt
rpool/home        204K  16.5G       96K  /mnt/home
rpool/home/root   108K  16.5G      108K  /mnt/root
rpool/var         740K  16.5G       96K  /mnt/var
rpool/var/lib      96K  16.5G       96K  /mnt/var/lib
rpool/var/log     420K  16.5G      420K  /mnt/var/log
rpool/var/spool   128K  16.5G      128K  /mnt/var/spool

localhost:/ # grub2-probe /boot
zfs

localhost:/ # grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.16.2-1-default
Found initrd image: /boot/initrd-5.16.2-1-default
Warning: os-prober will not be executed to detect other bootable partitions.
Systems on them will not be added to the GRUB boot configuration.
Check GRUB_DISABLE_OS_PROBER documentation entry.
done

localhost:/ # grub2-install --target=x86_64-efi --efi-directory=/boot/efi \
    --bootloader-id=opensuse --recheck --no-floppy
Installing for x86_64-efi platform.
grub2-install: error: ../grub-core/kern/fs.c:121:unknown filesystem.

verbose part of output:

grub-core/kern/fs.c:57: Detecting zfs...
grub-core/osdep/hostdisk.c:380: opening the device `/dev/sda4' in open_device()
grub-core/fs/zfs/zfs.c:1199: label ok 0
grub-core/osdep/hostdisk.c:359: reusing open device `/dev/sda4'
grub-core/fs/zfs/zfs.c:1014: check 2 passed
grub-core/fs/zfs/zfs.c:1025: check 3 passed
grub-core/fs/zfs/zfs.c:1032: check 4 passed
grub-core/fs/zfs/zfs.c:1042: check 6 passed
grub-core/fs/zfs/zfs.c:1050: check 7 passed
grub-core/fs/zfs/zfs.c:1061: check 8 passed
grub-core/fs/zfs/zfs.c:1071: check 9 passed
grub-core/fs/zfs/zfs.c:1093: check 11 passed
grub-core/fs/zfs/zfs.c:1119: check 10 passed
grub-core/fs/zfs/zfs.c:1135: str=com.delphix:hole_birth
grub-core/fs/zfs/zfs.c:1135: str=com.delphix:embedded_data
grub-core/fs/zfs/zfs.c:1144: check 12 passed (feature flags)
grub-core/fs/zfs/zfs.c:1884: zio_read: E 0: size 4096/4096
grub-core/fs/zfs/zfs.c:1906: endian = -1
grub-core/fs/zfs/zfs.c:597: dva=8, 21000d8
grub-core/osdep/hostdisk.c:359: reusing open device `/dev/sda4'
grub-core/fs/zfs/zfs.c:2692: endian = -1, blkid=0
grub-core/fs/zfs/zfs.c:2030: endian = -1
grub-core/fs/zfs/zfs.c:2061: endian = -1
grub-core/fs/zfs/zfs.c:1884: zio_read: E 0: size 131072/4096
grub-core/fs/zfs/zfs.c:1906: endian = -1
grub-core/fs/zfs/zfs.c:597: dva=8, 1f00248
grub-core/osdep/hostdisk.c:359: reusing open device `/dev/sda4'
grub-core/fs/zfs/zfs.c:2030: endian = 1
grub-core/fs/zfs/zfs.c:2056: endian = 1
grub-core/fs/zfs/zfs.c:1884: zio_read: E 0: size 16384/4096
grub-core/fs/zfs/zfs.c:1906: endian = 1
grub-core/fs/zfs/zfs.c:597: dva=8, 4000a0
grub-core/osdep/hostdisk.c:359: reusing open device `/dev/sda4'
grub-core/fs/zfs/zfs.c:2697: alive
grub-core/fs/zfs/zfs.c:2503: looking for 'features_for_read'
grub-core/fs/zfs/zfs.c:2030: endian = 1
grub-core/fs/zfs/zfs.c:2056: endian = 1
grub-core/fs/zfs/zfs.c:1884: zio_read: E 0: size 16384/4096
grub-core/fs/zfs/zfs.c:1906: endian = 1
grub-core/fs/zfs/zfs.c:597: dva=8, 70
grub-core/osdep/hostdisk.c:359: reusing open device `/dev/sda4'
grub-core/fs/zfs/zfs.c:2513: zap read
grub-core/fs/zfs/zfs.c:2526: fat zap
grub-core/fs/zfs/zfs.c:2030: endian = 1
grub-core/fs/zfs/zfs.c:2056: endian = 1
grub-core/fs/zfs/zfs.c:1884: zio_read: E 0: size 16384/4096
grub-core/fs/zfs/zfs.c:1906: endian = 1
grub-core/fs/zfs/zfs.c:597: dva=8, 68
grub-core/fs/zfs/zfs.c:2286: fzap: length 18
grub-core/fs/zfs/zfs.c:2530: returned 0
grub-core/fs/zfs/zfs.c:2692: endian = -1, blkid=1
grub-core/fs/zfs/zfs.c:2030: endian = -1
grub-core/fs/zfs/zfs.c:2061: endian = -1
grub-core/fs/zfs/zfs.c:1884: zio_read: E 0: size 131072/4096
grub-core/fs/zfs/zfs.c:1906: endian = -1
grub-core/fs/zfs/zfs.c:597: dva=8, 1f00248
grub-core/fs/zfs/zfs.c:2030: endian = 1
grub-core/fs/zfs/zfs.c:2056: endian = 1
grub-core/fs/zfs/zfs.c:1884: zio_read: E 0: size 16384/4096
grub-core/fs/zfs/zfs.c:1906: endian = 1
grub-core/fs/zfs/zfs.c:597: dva=8, 2300180
grub-core/osdep/hostdisk.c:359: reusing open device `/dev/sda4'
grub-core/fs/zfs/zfs.c:2697: alive
grub-core/fs/zfs/zfs.c:2030: endian = 1
grub-core/fs/zfs/zfs.c:2056: endian = 1
grub-core/fs/zfs/zfs.c:1884: zio_read: E 0: size 1536/1536
grub-core/fs/zfs/zfs.c:1906: endian = 1
grub-core/fs/zfs/zfs.c:597: dva=8, 200218
grub-core/osdep/hostdisk.c:359: reusing open device `/dev/sda4'
grub-core/fs/zfs/zfs.c:2117: zap: name = org.illumos:lz4_compress, value = 1, cd = 0
grub-core/fs/zfs/zfs.c:2117: zap: name = com.joyent:multi_vdev_crash_dump, value = 0, cd = 0
grub-core/fs/zfs/zfs.c:2117: zap: name = com.delphix:hole_birth, value = 1, cd = 0
grub-core/fs/zfs/zfs.c:2117: zap: name = com.delphix:extensible_dataset, value = 8, cd = 0
grub-core/fs/zfs/zfs.c:2117: zap: name = com.delphix:embedded_data, value = 1, cd = 0
grub-core/fs/zfs/zfs.c:2117: zap: name = org.open-zfs:large_blocks, value = 0, cd = 0
grub-core/fs/zfs/zfs.c:2117: zap: name = org.zfsonlinux:large_dnode, value = 8, cd = 0
grub-core/kern/fs.c:79: zfs detection failed.

Meanwhile, it works for at least Debian-based distros.

For ex., grub2 disabled for EFI boot on some platforms because of problems https://openzfs.github.io/openzfs-docs/Getting%20Started/RHEL-based%20distro/RHEL%208-based%20distro%20Root%20on%20ZFS/5-bootloader.html?highlight=unknown%20filesystem

@Zaryob do you have time to look at it? Based on offline dialog with @ndruba , let's track it here.

gmelikov commented 2 years ago

Sidenote - Gnome livecd have linux user by default (tested on https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-GNOME-Live-x86_64-Current.iso ) linux:x:1000:1000:Live-CD User:/home/linux:/bin/bash

It may be updated in guides too. In addition - add link to live cd?