如果 HDD 的 GPT 已被删除,并且可能删除了某些分区,但不是应该通过此问题的答案找到的分区(因为它正好位于 HDD 的中间,并且对于用于覆盖 GPT 的机制来说,写入该部分的可能性非常小),那么如何开始找到 zpool 分区的结束和开始?
背景[1]:我调用了zpool create /dev/sda
而不是zpool create /dev/sdaX
。该命令在几秒钟后失败,并显示一条错误消息,我不记得了,也无法重建。我现在正尝试开始搜索,并最终使用模块[2] 改进程序(到目前为止,gpart
在 中的搜索没有找到任何结果)。gpart
我正在运行 Ubuntu 14.04-amd64 和 Linux 3.13 和zfsonlinux
0.6.3。
[1] 背景信息就是背景信息:请尽量以抽象的形式回答问题,而不是仅提供与背景信息有关的解决方案。
[2]https://bugs.launchpad.net/ubuntu/+source/gpart/+bug/1382666
答案1
该zdb
命令可用几种不同的方式查找块地址。
您可以尝试-b
使用块列表选项、-d
池中心信息(包括块地址)或-m
metaslab 详细信息。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
testdisk
7.0 在快速搜索(可能不会返回结果)之后运行“深度搜索”后可以正确识别分区。