小编Ath*_*ius的帖子

恢复/导入具有重复池名称的 ZFS Linux 池

今天我做了一件非常愚蠢的事情,试图将第三个镜像添加到名为 的现有 Linux zpool 中backup。可以说我犯了几个错误,因为除了每隔几年交换一次磁盘之外,我并没有对 ZFS 进行太多管理。在尝试纠正它们时,我误读了重新创建池的在线建议,并创建了一个新的池backup,从而破坏了现有池。(是的,我-f在它抱怨后使用了该选项。是的,我是个白痴。现在我知道再也不会这样做了。让我们继续吧。)

根据我在网上阅读的内容,我backup“创建”的原始池可能无法恢复。这没什么问题,因为它的命名是backup有原因的——它主要存放我 15 年前的备份。但是,有一些东西最好能恢复(一些非必要的数据我暂时移到那里),还有一些与备份设置有关的东西需要我几天的时间才能重新设置驻留在该卷上。(现在我知道在其他地方备份这些东西,所以这将是一次学习经历。)

但我有我的备份的备份 - 今天我正在更换第三个镜像,以替换几个月前在另一次系统升级(以及操作系统升级)期间删除的驱动器。该驱动器实际上并没有出现故障,但它很旧并且已经开始积累一些坏扇区,所以我想我最好把它拿出来,而不是等待它损坏或其他什么。

不管怎样,我仍然有那个旧驱动器,所以我想我可以将其放回我的系统并从那里恢复池数据。我只会丢失过去几个月的备份数据。现在,我从未正式导出该驱动器或其他任何东西上的池。我已经升级了操作系统,所以我没想到它会自动检测到该驱动器。(我不知道它是否插入同一个 SATA 端口,因为我移动了一些驱动器。)

但该zpool import命令似乎没有自动找到任何内容。使用一些选项,zpool import可以看到(现已被破坏的)backup池的第二个版本,但这只是我在其他两个驱动器上意外创建的空池。

关于如何尝试读取第三个磁盘上的数据有什么建议吗?据我所知,在几个月前我把它从箱子里拿出来之前,它是 ZFS 池的一个功能完美且最新的镜像。尤其:

  1. 事实上,有一个被破坏的池backup可能会干扰检测并尝试恢复/导入这个旧池的能力吗?有办法解决这个问题吗?
  2. 我的服务器上仍然安装有旧操作系统,我相信该操作系统在我使用旧磁盘时正在运行。我尝试启动它只是为了看看它是否可以检测到 ZFS 池,但它没有。(同样,驱动器可能没有插入到同一个位置。)但是是否有任何 ZFS 日志文件或我可以提取的其他内容可能包含旧池的元数据或 ID 号或我可以提取的内容?是否可以强制 ZFS 导入该驱动器上完整的镜像?
  3. 我只是假设前两个磁盘上的池已通过create -f命令销毁。但如果有人知道我如何能够直接在那里恢复第一个池,那显然会很棒。
  4. ZFS 无法将旧的第三个镜像检测为 ZFS 池磁盘还有其他原因吗?如果是的话,还有其他建议吗?我可以尝试其他恢复工具吗?

感谢您的任何帮助或建议。

zdb -l /dev/sdb1编辑:这是(这是第三个驱动器)的输出

------------------------------------
LABEL 0
------------------------------------
    version: 5000
    name: 'backup'
    state: 0
    txg: 0
    pool_guid: 3936176493905234028
    errata: 0
    hostid: …
Run Code Online (Sandbox Code Playgroud)

zfs data-recovery zpool zfsonlinux

7
推荐指数
0
解决办法
1326
查看次数

标签 统计

data-recovery ×1

zfs ×1

zfsonlinux ×1

zpool ×1