ZFS doesnt mount properly if a dataset in another pool is corrupted
Hello! I recently got a corruption in a dataset(in zpool status -v they are the dataset ifself path/blabla/docs:<0x0> and the path/blabla/docs@snapshot:<0x0>). I have two pools, one named rpool and another zdata. The rpool had one of it's dataset corrupted, and the other pool is entirely fine. But no filesystems of zdata are mounted at boot anymore, only if i manually mount. I think that's because the boot script does mount by "zfs mount -la" but "zfs mount -la" and "zfs list" does say "cannot iterate filesystems: I/O error" at the beginning. I think zfs mount aborts..
Also i can't delete the corrupted dataset nor the snapshot from the broken pool And the "neighbor" dataset (the one after, which isn't corrupted) from rpool wasn't visible in zfs list nor mounted, i tried to bindly mount this "ghost" dataset and it worked fine and then listed in zfs list.
Afterall this rpool is my root pool and works fine as i'm using it now. Sorry for bad expressions, english isn't my mother language.
System information: Linux 5.10.52-gentoo-x86_64 zfs-2.1.0-r0-gentoo zfs-kmod-2.1.0-r0-gentoo Samsung 960EVO NVME SSD for rpool 1TB wd blue disk for zdata Dell i15-7567-a20p laptop
I don't know if it matters, but i do highly use suspend to disk.
Thanks, Axey Gabriel Muller Endres.
try to remove the zpool.cache in /etc/zfs/zpool.cache and then regenerate initramfs.
maybe you need to remove cache file of rpool in /etc/zfs/zfs-list.cache and regenerate initramfs again.
This issue has been automatically marked as "stale" because it has not had any activity for a while. It will be closed in 90 days if no further activity occurs. Thank you for your contributions.