写在前面
我最终没有解决这个问题,因为我的pool已经存储了太多数据,不敢妄动。
环境
OMV版本:6.1.1-1 (shaitan)
原zfs版本:2.1.99-1266_gd51f4ea5f
新zfs版本:2.1.7
报错
原来的pool有两个feature,不被zfs-2.1.7所支持,因此无法导入。
解决方案
- 降级回原先的版本
具体方法可以参照这篇:juejin.cn/post/711186…
- 查看feature
# pool-16T是我的pool名称
zpool get all pool-16T | grep feature
可以看到原先的pool确实启用了这两个feature。
- 禁用不支持的feature
zpool set feature@zilsaxattr=disabled pool-16T
zpool set feature@head_errlog=disabled pool-16T
未成功,报错提示这两个feature只有在创建pool的时候可以禁用。
结论
由于我先前使用的zfs-2.1.99-1266_gd51f4ea5f是直接拉取的当时Github最新Commit编译安装的,因此我猜测这两个feature是开发人员用于测试的。我尝试了使用现在最新的Commit,zpool导入没有问题。
这之后有两种选择:一种是继续使用Github最新Commit来升级ZFS,而不要使用正式发行版:2.1.7、2.1.6之类的。另一种是以只读方式导入pool,将数据备份出来后用正式发行版的zpool来重新创建pool。
# 只读方式导入(pool-16T是我的pool名称)
zpool import -o readonly=on pool-16T