我有一个ZFS池-包含2个vdev的镜像-在FreeBSD服务器上运行。现在,我只有镜像中的一个磁盘,而我正试图从镜像中恢复文件。
ZFS数据位于磁盘上的GPT分区中。
当我尝试导入池时,根本没有迹象表明它存在。我尝试了多种方法,但是没有任何反应。
我已经zdb -lu
在分区上运行了,而且看起来标签还不错。
# zpool import
# zpool import -D
# zpool status
no pools available
# zpool import -f ztmp
cannot import 'ztmp': no such pool available
# zpool import 16827460747202824739
cannot import '16827460747202824739': no such pool available
分区信息:
# gpart list da0
Geom name: da0
modified: false
state: OK
fwheads: 255
fwsectors: 63
last: 3907029134
first: 34
entries: 128
scheme: GPT
Providers:
1. Name: da0p1
Mediasize: 65536 (64K)
Sectorsize: 512
Stripesize: 0
Stripeoffset: 17408
Mode: r0w0e0
rawuuid: d7a10230-8b0e-11e1-b750-f46d04227f12
rawtype: 83bd6b9d-7f41-11dc-be0b-001560b84f0f
label: (null)
length: 65536
offset: 17408
type: freebsd-boot
index: 1
end: 161
start: 34
2. Name: da0p2
Mediasize: 17179869184 (16G)
Sectorsize: 512
Stripesize: 0
Stripeoffset: 82944
Mode: r0w0e0
rawuuid: d7aa40b7-8b0e-11e1-b750-f46d04227f12
rawtype: 516e7cb5-6ecf-11d6-8ff8-00022d09712b
label: (null)
length: 17179869184
offset: 82944
type: freebsd-swap
index: 2
end: 33554593
start: 162
3. Name: da0p3
Mediasize: 1905891737600 (1.7T)
Sectorsize: 512
Stripesize: 0
Stripeoffset: 82944
Mode: r0w0e0
rawuuid: d7b6a47e-8b0e-11e1-b750-f46d04227f12
rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b
label: (null)
length: 1905891737600
offset: 17179952128
type: freebsd-zfs
index: 3
end: 3755999393
start: 33554594
Consumers:
1. Name: da0
Mediasize: 2000398934016 (1.8T)
Sectorsize: 512
Mode: r0w0e0
ZFS标签:
--------------------------------------------
LABEL 0
--------------------------------------------
version: 5000
name: 'ztmp'
state: 0
txg: 0
pool_guid: 16827460747202824739
hostid: 740296715
hostname: '#############'
top_guid: 15350190479074972289
guid: 3060075816835778669
vdev_children: 1
vdev_tree:
type: 'mirror'
id: 0
guid: 15350190479074972289
whole_disk: 0
metaslab_array: 30
metaslab_shift: 34
ashift: 9
asize: 1905887019008
is_log: 0
create_txg: 4
children[0]:
type: 'disk'
id: 0
guid: 3060075816835778669
path: '/dev/gptid/d7b6a47e-8b0e-11e1-b750-f46d04227f12'
phys_path: '/dev/gptid/d7b6a47e-8b0e-11e1-b750-f46d04227f12'
whole_disk: 1
DTL: 5511
resilvering: 1
children[1]:
type: 'disk'
id: 1
guid: 3324029433529063540
path: '/dev/gptid/396a2b11-cb16-11e1-83f4-f46d04227f12'
phys_path: '/dev/gptid/396a2b11-cb16-11e1-83f4-f46d04227f12'
whole_disk: 1
DTL: 3543
create_txg: 4
resilvering: 1
features_for_read:
create_txg: 0
Uberblock[0]
magic = 0000000000bab10c
version = 5000
txg = 0
guid_sum = 1668268329223536005
timestamp = 1361299185 UTC = Tue Feb 19 10:39:45 2013
(其他标签为准确副本)
在这个旧线程中有一个类似问题的讨论。我尝试运行Jeff Bonwick的labelfix
工具(此博文中有更新),但似乎无法解决问题。
有任何想法吗?
2
驱动器是从镜像分离的,而不是分开的。看来这是问题的原因。不幸的是,镜子的其余部分不存在。
—
squidpickles
我不知道这是个合适的论坛,因为对该问题的“答案”涉及大量的试验和错误。现在,尝试“ zpool import -d </ dev / path / to / disk>”。-D列出已销毁的池,-d接受要查看的磁盘位置的参数,并且可以在命令行上多次指定(但在您的情况下,仅需要一个磁盘,而一个磁盘则需要一次) 。看看有什么用。
—
Nex7 2014年
您可能认为这不是正确的论坛是正确的。是的,我尝试了
—
squidpickles
-d
和-D
选项,但无济于事。
如果您尝试使用-d <包括分区的磁盘开发路径,但未显示,请在illumos操作系统上重试所有内容。如果仍然看不到,那我就没主意了。如果数据具有货币价值,您可能需要聘请数据恢复专家,或者在使用illumos派生工具时开始查看代码(src.illumos.org),并使用zpool import命令dtrace查看其采取的路径并尝试弄清楚为什么看不到您的游泳池。
—
Nex7年
@GrahamPerrin我确实使它工作了。我在FreeBSD安装上编辑了ZFS源文件,并使其绕过所有健全性检查。禁用了足够多的这些之后,我设法导入了池。一定有人绕过了我自己的理智检查...
—
squidpickles