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

Reply via email to