如何在字节/HDD 块级别或损坏的 GPT 上识别 zpool 分区的开始和结束?

如何在字节/HDD 块级别或损坏的 GPT 上识别 zpool 分区的开始和结束?

如果 HDD 的 GPT 已被删除,并且可能删除了某些分区,但不是应该通过此问题的答案找到的分区(因为它正好位于 HDD 的中间,并且对于用于覆盖 GPT 的机制来说,写入该部分的可能性非常小),那么如何开始找到 zpool 分区的结束和开始?

背景[1]:我调用了zpool create /dev/sda而不是zpool create /dev/sdaX。该命令在几秒钟后失败,并显示一条错误消息,我不记得了,也无法重建。我现在正尝试开始搜索,并最终使用模块[2] 改进程序(到目前为止,gpart在 中的搜索没有找到任何结果)。gpart

我正在运行 Ubuntu 14.04-amd64 和 Linux 3.13 和zfsonlinux0.6.3。


[1] 背景信息就是背景信息:请尽量以抽象的形式回答问题,而不是仅提供与背景信息有关的解决方案。

[2]https://bugs.launchpad.net/ubuntu/+source/gpart/+bug/1382666

答案1

zdb命令可用几种不同的方式查找块地址。

您可以尝试-b使用块列表选项、-d池中心信息(包括块地址)或-mmetaslab 详细信息。zdb 选项的工作方式很酷/奇怪,您可以多次重复该选项以增加详细程度——因此您可以尝试类似以下操作:

zdb -bbbb [pool | dataset]

获得块详细信息的超详细读数。Zdb 可以获取有关磁盘上数据格式的极其详细的信息,因此我希望通过足够的挖掘和阅读,您可以找到所需的任何信息。

检查此手册页,大多数操作系统附带的手册页是垃圾:https://www.illumos.org/man/1m/zdb

以下是 Ben Rockwood 撰写的一篇精彩文章(旧版本,基本仍然相同):http://www.cuddletech.com/blog/pivot/entry.php?id=980

答案2

testdisk7.0 在快速搜索(可能不会返回结果)之后运行“深度搜索”后可以正确识别分区。

相关内容