在准备将 zfs 池移动到另一个服务器机箱时,我在多用户模式下执行了“zfs 导出”。事后看来,我应该从救援磁盘执行此操作。
导出失败后,我重新启动了,从此再也无法导入池。所有磁盘和池都处于联机状态。问题更像是 zfs 的软件问题 - 可能是元数据问题。有没有人见过这种情况,或者有人对从可能损坏的池中恢复数据有什么建议?除了 I/O 错误之外,我无法获得有关导致 I/O 错误的原因的任何良好反馈。我尝试使用 truss 进行导入以查看发生了什么。
桁架输出:http://pastebin.com/DSDpuR1i
gpart 列表输出:http://pastebin.com/Wxgr2PMx
我使用 FreeBSD9 进行了设置,我相信这是 zfs v28。
顺便说一句,我知道我应该有备份。我没有备份的原因主要是钱而不是其他原因。计划是将这个池移动到一个新的 norco 机箱,并添加相同数量的磁盘以供另一个池镜像。
root@nas01:~ # zpool import
pool: rpool
id: 15664112288097167104
state: ONLINE
status: The pool was last accessed by another system.
action: The pool can be imported using its name or numeric identifier and
the '-f' flag.
see: http://illumos.org/msg/ZFS-8000-EY
config:
rpool ONLINE
raidz1-0 ONLINE
diskid/DISK-%20p3 ONLINE
da1p3 ONLINE
da2p3 ONLINE
da3p3 ONLINE
da5p3 ONLINE
da4p3 ONLINE
root@nas01:~ # zpool import -f -o altroot=/mnt rpool
cannot import 'rpool': I/O error
Destroy and re-create the pool from
a backup source.
root@nas01:~ #
编辑 - 当我尝试使用 -nfF 或 -fF 时
root@nas01:~ # zpool import -nfF -o altroot=/mnt rpool
root@nas01:~ # echo $?
1
root@nas01:~ # zpool import -fF rpool
cannot import 'rpool': I/O error
Destroy and re-create the pool from
a backup source.
root@nas01:~ #
答案1
尝试:
zpool import -nfF rpool
如果你没有看到任何严重错误,请尝试使用不带 n 选项的上一个命令
zpool import -fF rpool