เมื่อเร็ว ๆ นี้กล่องหุ้มฮาร์ดไดรฟ์ภายนอกของฉันล้มเหลว อย่างไรก็ตามเป็นผลให้ดูเหมือนว่าระบบไฟล์ EXT4 ของมันเสียหาย
ไดรฟ์มีพาร์ติชันเดียวและใช้ตารางพาร์ติชัน GPT (ที่มีฉลากears
)
fdisk -l /dev/sdb
แสดงให้เห็นว่า:
Device Boot Start End Blocks Id System
/dev/sdb1 1 1953525167 976762583+ ee GPT
testdisk
แสดงให้เห็นว่าพาร์ติชันยังคงอยู่:
1 P MS Data 2049 1953524952 1953522904 [ears]
... แต่พาร์ติชันไม่สามารถเมานต์:
$ sudo mount /dev/sdb1 a
mount: you must specify the filesystem type
$ sudo mount -t ext4 /dev/sdb1 a
mount: wrong fs type, bad option, bad superblock on /dev/sdb1,
fsck
รายงาน superblock ที่ไม่ถูกต้อง:
$ sudo fsck.ext4 /dev/sdb1
e2fsck 1.42 (29-Nov-2011)
fsck.ext4: Superblock invalid, trying backup blocks...
fsck.ext4: Bad magic number in super-block while trying to open /dev/sdb1
และe2fsck
รายงานข้อผิดพลาดที่คล้ายกัน:
$ sudo e2fsck /dev/sdb1
Password:
e2fsck 1.42 (29-Nov-2011)
e2fsck: Superblock invalid, trying backup blocks...
e2fsck: Bad magic number in super-block while trying to open /dev/sdb1
dumpe2fs
เพิ่มเติม:
$ sudo dumpe2fs /dev/sdb1
dumpe2fs 1.42 (29-Nov-2011)
dumpe2fs: Bad magic number in super-block while trying to open /dev/sdb1
mke2fs -n
(note -n
) ส่งคืนซุปเปอร์บล็อก:
$ sudo mke2fs -n /dev/sdb1
mke2fs 1.42 (29-Nov-2011)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
61054976 inodes, 244190363 blocks
12209518 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
7453 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848
... แต่การลอง "e2fsck -b [block]" สำหรับแต่ละบล็อคล้มเหลว:
$ sudo e2fsck -b 71663616 /dev/sdb1
e2fsck 1.42 (29-Nov-2011)
e2fsck: Invalid argument while trying to open /dev/sdb1
อย่างไรก็ตามที่ฉันเข้าใจเหล่านี้เป็นที่ superblocks เมื่อระบบไฟล์ถูกสร้างขึ้นซึ่งไม่ได้หมายความว่าพวกเขายังคงเหมือนเดิม
ฉันยังtestdisk
ค้นหาลึก ๆหากใครสามารถถอดรหัสบันทึก มันกล่าวถึงรายการมากมายเช่น:
recover_EXT2: s_block_group_nr=1/7452, s_mnt_count=6/20,
s_blocks_per_group=32768, s_inodes_per_group=8192
recover_EXT2: s_blocksize=4096
recover_EXT2: s_blocks_count 244190363
recover_EXT2: part_size 1953522904
recover_EXT2: "e2fsck -b 32768 -B 4096 device" may be needed
การรัน e2fsck ด้วยค่าเหล่านั้นให้:
e2fsck: Bad magic number in super-block while trying to open /dev/sdb1
ฉันลองมันด้วย superblock ทั้งหมดใน testdisk.log
for i in $(grep e2fsck testdisk.log | uniq | cut -d " " -f 4); do
sudo e2fsck -b $i -B 4096 /dev/sdb1
done
... ทั้งหมดมีe2fsck
ข้อผิดพลาดเดียวกัน
ในความพยายามครั้งล่าสุดของฉันฉันลองระบบออฟเซ็ตต่างกัน สำหรับแต่ละออฟเซ็ตi
โดยที่i
หนึ่งใน 31744, 32768, 1048064, 1049088:
$ sudo losetup -v -o $i /dev/loop0 /dev/sdb
... และวิ่งtestdisk /dev/loop0
ฉันไม่พบสิ่งที่น่าสนใจ
ฉันค่อนข้างละเอียด แต่มีวิธีการกู้คืนระบบไฟล์โดยไม่ใช้เครื่องมือการกู้คืนไฟล์ระดับต่ำ ( foremost
/ photorec
) หรือไม่?
testdisk
ดังที่ได้กล่าวมาแล้วฉันลองออฟเซ็ตต่าง ๆ โดยใช้losetup
( i * 512
ซึ่งi
เป็นหนึ่งใน 62, 64, 2047 หรือ 2049)
sudo fdisk -l /dev/sdb
แสดง?