25.5 更新 ZFS 的 zpool
更新 zpool
FreeBSD 大版本间通常 ZFS 版本都会发生变动,如从 14.3 到 15.0 的 zpool 版本就有所升级。
警告
请准备好备份和急救 CD 以应对意外。因为旧的基本系统内置的 ZFS 不支持新版的 ZFS 文件系统(功能集不向下兼容)。
验证版本
查看当前系统版本
# freebsd-version -kru
15.0-RELEASE
15.0-RELEASE
15.0-RELEASE查看 ZFS/zpool 相关版本
# zpool version
2.4.0-rc4-FreeBSD_g099f69ff5
zfs-kmod-2.4.0-rc4-FreeBSD_g099f69ff5警告
这意味着凡是 ZFS 低于 2.4.0-rc4 的操作系统,在升级后均可能无法启动。
进行更新
由于未升级前不能充分利用 ZFS 新功能,下面进行升级:
根据提示:
状态:存储池上有一些支持的且已请求的功能尚未启用。存储池仍然可以使用,但部分功能不可用。
操作:使用
zpool upgrade启用所有功能。在完成后,未支持这些功能的软件可能无法再访问该存储池。详细信息请参见zpool-features(7)。
我们的确需要更新,并且更新后旧系统可能再也无法启动。
我们预览一下有哪些功能会被更新:
可以看到,除了带 * 的需要手动启用外,其他功能均会在升级后默认启用。
警告
zpool upgrade并 不能 真正启用这些特性,只是 预览 那些功能可以启用。要更新,必须同时 指定存储池名 才能进行更新:zpool upgrade zroot。参见 'zpool status' gives confusing suggestion with 'zpool upgrade'。思考题
有贡献者认为上面 issue 关联的修补 PR 是琐碎的,无关紧要的细枝末节,甚至以每行不得超出 80 字符的客观理由予以拒绝,可问题在于无数人都被这种“小事”浪费了不止一个小时的时间。你怎样理解对于文字力量的忽视,其代价究竟是什么?
现在让我们来真正升级看看:
检查状态:
一如既往。
附录:启用那些需要手动启用的特性
如果你还希望手动启用一些功能:
这说明可以手动启用 dynamic_gang_header,我们来查看其状态
的确未启用。我们为 zroot 启用:
再看看:
检查看看:
重写引导(仅 BIOS 传统引导需要)
警告
bootfs属性是在 ZFS 上引导 FreeBSD 的重要标志,不理睬这个提示可能没事,但出了问题就不能引导系统,建议按提示重写boot code(为什么这么建议?因为我炸了)。如果你没有 freebsd-boot 分区就 不需要 以下操作。
查看分区信息:
找到 freebsd-boot 类型分区,这里序号为 1,对应下面命令中 -i 选项,接着重写 bootcode:
可再次查看 zpool 状态:
最后更新于
这有帮助吗?