昨天升级到 4.4.0-59 后,我今天才发现我的 zfs 分区不见了!谷歌了一下,提示 [http://pastebin.com/BPFj1Ewj] zfs-native 0.6.5.7 不喜欢(即:编译)-59 内核。
果然,-59 内核缺少 zfs(检查最后两行):
% dkms 状态 bbswitch,0.7,4.4.0-53-generic,x86_64:已安装 bbswitch,0.7,4.4.0-57-通用,x86_64:已安装 bbswitch,0.7,4.4.0-59-通用,x86_64:已安装 nvidia-340, 340.98, 4.4.0-53-通用, x86_64:已安装 nvidia-340, 340.98, 4.4.0-57-通用, x86_64:已安装 nvidia-340, 340.98, 4.4.0-59-通用, x86_64:已安装 spl,0.6.5.7,4.4.0-53-通用,x86_64:已安装 spl,0.6.5.7,4.4.0-57-通用,x86_64:已安装 spl,0.6.5.7,4.4.0-59-通用,x86_64:已安装 virtualbox,4.3.36,4.4.0-53-generic,x86_64:已安装 virtualbox,4.3.36,4.4.0-57-generic,x86_64:已安装 virtualbox,4.3.36,4.4.0-59-generic,x86_64:已安装 zfs,0.6.5.7,4.4.0-53-通用,x86_64:已安装 zfs,0.6.5.7,4.4.0-57-通用,x86_64:已安装
好的,该怎么办?在先前已知的良好内核(-57)下重新启动!
重启后,我当然可以访问我的 zpool,但我的分区没有挂载。更令人困惑的是,
zpool 状态建议我升级我的游泳池:
%sudo zpool状态 水池:水箱 状态: 在线 状态:池中未启用某些支持的功能。池可以 仍可使用,但某些功能不可用。 操作:使用“zpool upgrade”启用所有功能。完成后, 不支持的软件可能无法再访问该池 功能。有关详细信息,请参阅 zpool-features(5)。 扫描:未请求 配置: 名称 状态 读写 CKSUM 坦克在线 0 0 0 镜像-0 在线 0 0 0 ata-ST4000DM000-1F2168_S3014GKE-part4 在线 0 0 0 ata-WDC_WD40PURX-64GVNY0_WD-WCC4E5UZUFFD-part4 在线 0 0 0 错误:没有已知数据错误
我敢这么做吗?还是说在升级到 4.4.0-59 失败时出了什么问题?我已通过以下方式安装了 zfs
apt-get 安装 ubuntu-zfs并且没有足够的勇气尝试自己编译和安装 zfs 模块。现在,我只想找回我的 zfs 分区!
更新:我已将有效的解决方案发布在下面。这可能违反了 askubuntu 规则,但我希望尽快发布此信息,以防其他人遇到同样的问题。
答案1
有效的答案是卸载 -59 内核:
%dpkg --get-selections|grep 4.4.0-59 linux-headers-4.4.0-59 安装 linux-headers-4.4.0-59-通用安装 linux-image-4.4.0-59-通用安装 linux-image-extra-4.4.0-59-通用安装 linux-signed-image-4.4.0-59-通用安装 %sudo apt-get删除--purge linux-headers-4.4.0-59 linux-headers-4.4.0-59-generic linux-image-4.4.0-59-generic linux-image-extra-4.4.0-59-generic linux-signed-image-4.4.0-59-generic
重启后,现在一切都恢复正常了!升级消息仍然存在,但我的 zfs 池可以正常工作!更好的解决方案显然是让 zfs 与 -59(及更高版本)内核一起工作,但目前我很高兴。
答案2
几天后,出现了 zfs-0.6.5.8 的更新。安装后,重新安装 -59 内核没有产生任何错误消息。但是,我的分区在启动时没有自动挂载。修改
ZFS_AUTOIMPORT_TIMEOUT='45'(从 30 开始)
/etc/defaults/zfs解决了。现在一切似乎都恢复正常了!