21.05 ZFS root install can't import pool on boot

Post mortem:

Comparing the init scripts from the non-working and working configurations.nix:

$ diff -u kcslbdipnvscycj5kmz7c7wpmypqb947-initrd-linux-5.10.37-initrd/nix/store/75hpmxbddhybn9xzlggfqpir0bspxczx-stage-1-init.sh nnavwyfdi3ys42c1lnxwdxvwa68wl2p7-initrd-linux-5.10.37-initrd/nix/store/67sa12vrayf2r9mgp6phj8c37kgc6vcz-stage-1-init.sh
--- kcslbdipnvscycj5kmz7c7wpmypqb947-initrd-linux-5.10.37-initrd/nix/store/75hpmxbddhybn9xzlggfqpir0bspxczx-stage-1-init.sh     2021-06-17 17:58:16.854130924 -0400
+++ nnavwyfdi3ys42c1lnxwdxvwa68wl2p7-initrd-linux-5.10.37-initrd/nix/store/67sa12vrayf2r9mgp6phj8c37kgc6vcz-stage-1-init.sh     2021-06-17 17:58:38.957757581 -0400
@@ -287,7 +287,7 @@
 }
 poolImport() {
   pool="$1"
-  "zpool" import -d "/dev/disk/by-id" -N $ZFS_FORCE "$pool"
+  "zpool" import -d "/dev/disk/by-partuuid" -N $ZFS_FORCE "$pool"
 }

 echo -n "importing root ZFS pool \"rpool\"..."

it is obvious that using /dev/disk/by-id, which worked in 20.09, isn’t working anymore with 21.05.

2 Likes