Gần đây, vỏ ổ cứng gắn ngoài của tôi không thành công (ổ cứng tự cấp nguồn trong vỏ khác). Tuy nhiên, kết quả là hệ thống tệp EXT4 của nó bị hỏng.
Ổ đĩa có một phân vùng duy nhất và sử dụng bảng phân vùng GPT (có nhãn ears
).
fdisk -l /dev/sdb
trình diễn:
Device Boot Start End Blocks Id System
/dev/sdb1 1 1953525167 976762583+ ee GPT
testdisk
cho thấy phân vùng còn nguyên vẹn:
1 P MS Data 2049 1953524952 1953522904 [ears]
... nhưng phân vùng không thể mount:
$ 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
báo cáo một siêu khối không hợp lệ:
$ 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
và e2fsck
báo cáo một lỗi tương tự:
$ 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
cũng thế:
$ 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
(lưu ý, -n
) trả về các siêu khóa:
$ 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
... nhưng việc thử "e2fsck -b [block]" cho mỗi khối không thành công:
$ sudo e2fsck -b 71663616 /dev/sdb1
e2fsck 1.42 (29-Nov-2011)
e2fsck: Invalid argument while trying to open /dev/sdb1
Tuy nhiên, theo tôi hiểu, đây là nơi các siêu khóa được tạo ra khi hệ thống tập tin được tạo ra, điều đó không nhất thiết có nghĩa là chúng vẫn còn nguyên vẹn.
Tôi cũng đã thực hiện một testdisk
tìm kiếm sâu nếu ai đó có thể giải mã nhật ký. Nó đề cập đến nhiều mục như:
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
Chạy e2fsck với các giá trị đó mang lại:
e2fsck: Bad magic number in super-block while trying to open /dev/sdb1
Tôi đã thử điều đó với tất cả các siêu khóa trong testdisk.log
for i in $(grep e2fsck testdisk.log | uniq | cut -d " " -f 4); do
sudo e2fsck -b $i -B 4096 /dev/sdb1
done
... Tất cả đều có cùng một e2fsck
thông báo lỗi.
Trong lần thử cuối cùng của tôi, tôi đã thử các hệ thống tập tin khác nhau. Đối với mỗi phần bù i
, trong đó i
có một trong số 31744, 32768, 1048064, 1049088:
$ sudo losetup -v -o $i /dev/loop0 /dev/sdb
... Và chạy testdisk /dev/loop0
, tôi không tìm thấy bất cứ điều gì thú vị.
Tôi đã khá mệt mỏi, nhưng có cách nào để khôi phục hệ thống tệp mà không cần dùng đến các công cụ khôi phục tệp cấp thấp ( foremost
/ photorec
) không?
testdisk
, như đã đề cập ở trên, tôi đã cố gắng bù đắp khác nhau sử dụng losetup
( i * 512
nơi i
là một trong 62, 64, 2047 hoặc 2049).
sudo fdisk -l /dev/sdb
thể hiện điều gì?