• Bug#1099001: zfs-initramfs: Root pool not recognized/imported at boot

    From Shengqi Chen@21:1/5 to All on Fri May 2 10:00:01 2025
    Hi,

    For what it's worth, my kernel (grub) commandline is: /BOOT/debian@/vmlinuz-6.12.16-amd64 root=ZFS=/ROOT/debian

    This seems to be the problem. It should be root=ZFS=rootpool/ROOT/debian
    in your case. This is due to grub uses its own zfs implementation with limited feature sets (and often with bugs [1][2]). It would refuse to probe your root dev
    in its grub-mkconfig stage if some of your pool features make it unhappy.

    You could try the following in order to fix your booting process:

    1. Upgrade to grub 2.12 in bookworm-backports, and if not working,
    2. Hardcode root=ZFS=... options in /etc/default/grub

    Also, if possible, you can use a separate boot pool with compatibility=grub2 set, or
    a /boot partition with other filesystems like ext4. This could totally get rid of
    grub’s zfs driver at boot time, but you still need to take care of the erroneous
    kernel cmdline.

    Try: `zpool import -N; zpool import <poolname> -R /root`
    ... and maybe a shortened URL to help the poor sod who ever sees the
    message.

    Great! Actually it took me a while to learn it should be /root when I was hit by
    the same issue some time ago. The hint in initrd stage comes from [3], you could
    submit a PR to upstream if you want (and I’m happy to do that also).

    [1]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=848945
    [2]: https://github.com/openzfs/zfs/issues/13873
    [3]: https://github.com/openzfs/zfs/blob/27f3d94940490d891c70e0c148f80d0c0ce09ed4/contrib/initramfs/scripts/zfs#L901-L911

    Thanks,
    Shengqi Chen

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)