[Pkg-zfsonlinux-devel] Bug#1099001: zfs-initramfs: Root pool not recognized/imported at boot

Troy Telford ttelford.groups at gmail.com
Thu Feb 27 04:50:29 GMT 2025


Package: zfs-initramfs
Version: 2.3.0-1
Severity: normal

Dear Maintainer,

*** Reporter, please consider answering these questions, where appropriate ***

   * What led up to the situation?

	I should have kept track of when I noticed the issue.

	Some fateful day in May 2024, I rebooted for the first time in an
	age, I was greeted with:

	> No pool imported. Manually import the root pool
	> at the command prompt and then exit.
	> Hint: Try: zpool import -N

   * What exactly did you do (or not do) that was effective (or
     ineffective)?

	 I've settled on the following (after I'm dumped to the command prompt with
     the above 'hint')

	 zpool export -a # be certain everything exported
	 zpool import -N -R /root rootpool
	 zpool import    # show all pools, of which there are many
	 zfs mount rootpool/ROOT/debian
	 zfs mount -a
	 exit

	 I do not know what zfs property (or what else) is wrong that is
	 causing the zfs initramfs script to fail to see/recognize the rootpool.
	 I've also tried regenerating the zpool.cache, followed by the initramfs (and
	 then validating the new initramfs _contains_ the updated zpool.cache)

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

	 zfs-initramfs has worked for over a decade without any issue, and I'm
	 unaware of any changes that have been made to the zpool.

	 I do have some observations that apply in my particular case:

	 - `zpool import -N` is _not_ helpful; it dies horribly for me, at
	   least, as it still doesn't have an `altroot` the import needs to
	   be mounted against.
	 - It's _easy_ to import a zpool. Or search for how to do so.
	   - What isn't documented, or hinted at, is that the standard
		 `zpool import` isn't going to work, and that additional options
		 are required to mount the pool to the aforementioned altroot (`-R`)
	   - The easy-to-find [Debian Root on ZFS
		 HowTo](https://openzfs.github.io/openzfs-docs/Getting%20Started/Debian/Debian%20Bookworm%20Root%20on%20ZFS.html)
		 has the user mount to `/mnt/ (ie. `-R /mnt`). The `initramfs`,
		 however, expects the pool to be imported to `/root`.
	 - My suggestion would be, for the hint:
		Try: `zpool import -N; zpool import <poolname> -R /root`
		... and maybe a shortened URL to help the poor sod who ever sees the
		message.
	 - It's taken me quite a while (of on-and-off effort) to decide whether the
	   issue was with ZFS-upstream, or with the Debian package; the 'hint' I'm
	   seeing in zfs-initramfs is why I'm reporting this, as it seems the
	   appropriate place.
	 - I'm at the point where I'm not sure where/how to add debug statements to
	   the initramfs zfs script and have them 'stick' so I can see exactly
	   where and why it's failing to see my pool automatically.

   * What was the outcome of this action?

	I'm able to get the system booted, but it's not possible to
	automatically reboot the system. Manual intervention is required
	every time.

Output of `zpool get rootpool`: (Note - I've just apt upgraded to zfs-*
2.3.0-1, but haven't rebooted yet)

NAME      PROPERTY                       VALUE                          SOURCE
rootpool  size                           3.59T                          -
rootpool  capacity                       34%                            -
rootpool  altroot                        /root                          local
rootpool  health                         ONLINE                         -
rootpool  guid                           1246700263549784553            -
rootpool  version                        -                              default
rootpool  bootfs                         -                              default
rootpool  delegation                     on                             default
rootpool  autoreplace                    off                            default
rootpool  cachefile                      none                           local
rootpool  failmode                       wait                           default
rootpool  listsnapshots                  off                            default
rootpool  autoexpand                     off                            default
rootpool  dedupratio                     1.00x                          -
rootpool  free                           2.34T                          -
rootpool  allocated                      1.25T                          -
rootpool  readonly                       off                            -
rootpool  ashift                         12                             local
rootpool  comment                        -                              default
rootpool  expandsize                     -                              -
rootpool  freeing                        0                              -
rootpool  fragmentation                  9%                             -
rootpool  leaked                         0                              -
rootpool  multihost                      off                            default
rootpool  checkpoint                     -                              -
rootpool  load_guid                      16122880430695053848           -
rootpool  autotrim                       on                             local
rootpool  compatibility                  off                            default
rootpool  bcloneused                     0                              -
rootpool  bclonesaved                    0                              -
rootpool  bcloneratio                    1.00x                          -
rootpool  feature at async_destroy          enabled                        local
rootpool  feature at empty_bpobj            active                         local
rootpool  feature at lz4_compress           active                         local
rootpool  feature at multi_vdev_crash_dump  enabled                        local
rootpool  feature at spacemap_histogram     active                         local
rootpool  feature at enabled_txg            active                         local
rootpool  feature at hole_birth             active                         local
rootpool  feature at extensible_dataset     active                         local
rootpool  feature at embedded_data          active                         local
rootpool  feature at bookmarks              enabled                        local
rootpool  feature at filesystem_limits      enabled                        local
rootpool  feature at large_blocks           enabled                        local
rootpool  feature at large_dnode            enabled                        local
rootpool  feature at sha512                 enabled                        local
rootpool  feature at skein                  enabled                        local
rootpool  feature at edonr                  enabled                        local
rootpool  feature at userobj_accounting     active                         local
rootpool  feature at encryption             enabled                        local
rootpool  feature at project_quota          active                         local
rootpool  feature at device_removal         enabled                        local
rootpool  feature at obsolete_counts        enabled                        local
rootpool  feature at zpool_checkpoint       enabled                        local
rootpool  feature at spacemap_v2            active                         local
rootpool  feature at allocation_classes     enabled                        local
rootpool  feature at resilver_defer         enabled                        local
rootpool  feature at bookmark_v2            enabled                        local
rootpool  feature at redaction_bookmarks    enabled                        local
rootpool  feature at redacted_datasets      enabled                        local
rootpool  feature at bookmark_written       enabled                        local
rootpool  feature at log_spacemap           active                         local
rootpool  feature at livelist               enabled                        local
rootpool  feature at device_rebuild         enabled                        local
rootpool  feature at zstd_compress          enabled                        local
rootpool  feature at draid                  enabled                        local
rootpool  feature at zilsaxattr             active                         local
rootpool  feature at head_errlog            active                         local
rootpool  feature at blake3                 enabled                        local
rootpool  feature at block_cloning          enabled                        local
rootpool  feature at vdev_zaps_v2           active                         local


-- System Information:
Debian Release: trixie/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 6.12.10-amd64 (SMP w/32 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_WARN, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages zfs-initramfs depends on:
ii  busybox-static [busybox]  1:1.37.0-4
ii  initramfs-tools           0.145
ii  zfs-dkms [zfs-modules]    2.3.0-1
ii  zfsutils-linux            2.3.0-1

zfs-initramfs recommends no packages.

zfs-initramfs suggests no packages.

-- no debconf information



More information about the Pkg-zfsonlinux-devel mailing list