从已删除分区表的 zfs 池中恢复数据

从已删除分区表的 zfs 池中恢复数据

我正在将两个 nas 的硬盘整合到一个 nas 中,当我将第二个 nas 的硬盘放入新机箱时,我的 raid 卡擦除了所有连接驱动器的分区表。我添加的 5 个驱动器之前是使用 ext4 格式化的硬件 raid-5,nas 中已有的 5 个驱动器是 zfs raidz。这两组驱动器的数据几乎相同,因为我在执行此操作之前已镜像它们。系统正在运行 Ubuntu Server。有没有办法恢复任一组驱动器上的数据?我认为应该可以恢复 zfs 池上的分区表,但我找不到有关如何操作的资源。

答案1

我最终找到了一个介绍如何执行此操作的 reddit 主题。它涉及sgdisk在确定所有分区应该放在哪里之后重建分区表。这是通过查看相同型号的 zfs 驱动器的分区表来完成的,因为看起来 zfs 以非常可预测的方式对驱动器进行分区。

就我而言,命令是:

sgdisk -n1:2048:15628036095 -t1:BF01 -n9:15628036096:15628052479 -t9:BF07 <device>

它必须在阵列中的每个驱动器上运行,然后zpool import <pool name>才能工作并恢复阵列。

感谢 reddit 上的 fields_g:https://www.reddit.com/r/zfs/comments/d6v47t/deleted_disk_partition_tables_of_a_zfs_pool/f17yt5s/

相关内容