ZFS 2.1.6 can't mount some encrypted datasets (I/O error)
Posted: Thu Jan 05, 2023 4:40 am
I have a ZFS mirror with multiple encrypted datasets, all of which were created and snapshot with ZFS 1.9.4.
And all of them work fine under ZFS 1.9.4.
While most of those filesystems mount without problem under 2.1.6 (Monterey, M1 or Intel), I have two cases where any mounting attempt fails with an "Input/output error":
This seems to be related to the OpenZFS Issues #13709, #13521, and #13859, and I tried the workaround which was suggested there (https://github.com/openzfs/zfs/issues/1 ... 1232430808):
Any suggestions on how to fix this "checksum mismatch" error?
Does anyone know a solution for this I/O mounting problem with encrypted datasets?
And all of them work fine under ZFS 1.9.4.
While most of those filesystems mount without problem under 2.1.6 (Monterey, M1 or Intel), I have two cases where any mounting attempt fails with an "Input/output error":
- Code: Select all
zfs version
zfs-macOS-2.1.6-1
zfs-kmod-2.1.6-1
zpool import tank
sudo zfs mount -l tank/Photos
cannot mount 'tank/Photos': Input/output error
zpool events -v
Jan 5 2023 15:58:40.394135976 ereport.fs.zfs.authentication
class = "ereport.fs.zfs.authentication"
ena = 0x52ee7eb4ee600001
detector = (embedded nvlist)
version = 0x0
scheme = "zfs"
pool = 0x5716f2d6f92f9ce
(end detector)
pool = "tank"
pool_guid = 0x5716f2d6f92f9ce
pool_state = 0x0
pool_context = 0x0
pool_failmode = "wait"
zio_objset = 0x319
zio_object = 0x0
zio_level = 0xffffffffffffffff
zio_blkid = 0x0
time = 0x63b65900 0x177e09a8
eid = 0x6
This seems to be related to the OpenZFS Issues #13709, #13521, and #13859, and I tried the workaround which was suggested there (https://github.com/openzfs/zfs/issues/1 ... 1232430808):
- 1. make two new snapshots on the dataset
2. zfs send the incremental to a file
3. Roll back the dataset to the first of the two snaps
4. Receive the incremental from the file to the dataset
- Code: Select all
sudo zfs snapshot tank/Photos@recover1
sudo zfs snapshot tank/Photos@recover2
sudo zfs send -w -i tank/Photos@recover1 tank/Photos@recover2 >Photos_recover_diff
sudo zfs rollback -r tank/Photos@recover1
sudo zfs receive -F -v tank/Photos <Photos_recover_diff
receiving incremental stream of tank/Photos@recover2 into tank/Photos@recover2
cannot receive incremental stream: checksum mismatch
Any suggestions on how to fix this "checksum mismatch" error?
Does anyone know a solution for this I/O mounting problem with encrypted datasets?