FreeBSD 서버에서 실행되는 ZFS 풀 (2 개의 vdev를 포함하는 미러)이있었습니다. 이제 미러에서 하나의 디스크 만 가지고 있으며 파일을 복구하려고합니다.
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
도구 ( 이 게시물의 업데이트 포함)를 실행하려고 시도했지만 문제가 해결되지 않은 것 같습니다.
어떤 아이디어?
답변
나중에 참조 할 수 있도록 zpool import -a (모두 검색)를 수행하면 일반적으로 zpool / zfs fs가 인식되지 않을 때 도움이됩니다.
답변
해설에서 (오프닝 포스터에서) :
FreeBSD 설치에서 ZFS 소스를 편집하여 모든 완전성 검사를 무시했습니다. 그것들을 충분히 비활성화 한 후, 나는 수영장을 수입 할 수있었습니다.
답변
어떻게 든 ZFS 구성을 망쳤습니다. 불행히도 나는 내가 한 일을 정확히 기억하지 못합니다 (하드웨어를 바꾸어 엉망이되었습니다. 나와 같이하지 마십시오!). XigmaNAS (nas4free)를 사용하고 있으며 아래의 모든 명령은 터미널을 통해 발행됩니다.
내가 한 일과하지 않은 일에 대한 모호한 기억 :
- 풀을 내 보내지 않았습니다
- 풀을 삭제 (파기)했을 수 있습니다.
조짐:
- Web GUI에서 디스크를 자동으로 가져 와서 zpool (포맷되지 않거나 UFS 등)로 인식 할 수 있습니다.
- 그러나 GUI ZFS 섹션은 zpool을 감지 할 수 없습니다. 따라서 단순히 버튼을 눌러 풀을 가져올 수 없습니다. 강제 수입도 작동하지 않았습니다.
- 이 디스크에 대한 SMART 정보는 GUI에서 잘 보입니다. 디스크가 물리적으로 손상되었다고 생각하지 않습니다.
- GUI 정보 섹션에서 디스크를로 표시합니다
da1
. 이것은 터미널에 가기 전에 필요한 정보입니다. - 다른 사용자에게 경고 : GUI 관련 문제가 발생하면 즉시 파괴적인 작업을 중지하십시오. 새 vdev를 만들거나 다른 디스크 형식으로 시도하는 등의 작업. 터미널로 이동하십시오.
-
터미널에서 시도한 명령과 결과는 다음과 같습니다.
zpool import -a
말한다no pool available to import
zpool status
말한다no pools available
(깨진 언어? lol.)gpart list -a
표시하지 않습니다da1
gpart list da1
말한다gpart: no such geom: da1
zpool list
말한다no pools available
glabel list -a
수영장을 표시하지 않습니다da1
zdb -l /dev/da1
에 두 개의 레이블을 인쇄 할 수da1
있으므로 디스크가 죽지 않았습니다zpool import -D
수영장da1
이 파괴되어 가져올 수 있다고 말합니다.
해결책:
실행으로 zpool import -D -f (poolname)
문제가 해결되었습니다.