Baru-baru ini, penutup hard drive eksternal saya gagal (hard drive sendiri menyala di kandang lain). Namun, sebagai hasilnya, tampaknya sistem file EXT4nya rusak.
Drive memiliki satu partisi dan menggunakan tabel partisi GPT (dengan label ears
).
fdisk -l /dev/sdb
menunjukkan:
Device Boot Start End Blocks Id System
/dev/sdb1 1 1953525167 976762583+ ee GPT
testdisk
memperlihatkan bahwa partisi tersebut masih utuh:
1 P MS Data 2049 1953524952 1953522904 [ears]
... tetapi partisi gagal dipasang:
$ 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
melaporkan superblok yang tidak valid:
$ 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
dan e2fsck
melaporkan kesalahan serupa:
$ 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
juga:
$ 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
(catatan, -n
) mengembalikan superblok:
$ 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
... tetapi mencoba "e2fsck -b [block]" untuk setiap blok gagal:
$ sudo e2fsck -b 71663616 /dev/sdb1
e2fsck 1.42 (29-Nov-2011)
e2fsck: Invalid argument while trying to open /dev/sdb1
Namun seperti yang saya mengerti, ini adalah di mana superblok itu ketika filesystem dibuat, yang tidak berarti mereka masih utuh.
Saya juga telah menjalankan testdisk
pencarian mendalam jika ada yang bisa mendekripsi log. Itu menyebutkan banyak entri seperti:
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
Menjalankan e2fsck dengan nilai-nilai itu memberi:
e2fsck: Bad magic number in super-block while trying to open /dev/sdb1
Saya mencoba itu dengan semua superblok di testdisk.log
for i in $(grep e2fsck testdisk.log | uniq | cut -d " " -f 4); do
sudo e2fsck -b $i -B 4096 /dev/sdb1
done
... semua dengan e2fsck
pesan kesalahan yang sama .
Dalam upaya terakhir saya, saya mencoba berbagai offset sistem file. Untuk setiap offset i
, di mana i
ada satu dari 31744, 32768, 1048064, 1049088:
$ sudo losetup -v -o $i /dev/loop0 /dev/sdb
... dan berlari testdisk /dev/loop0
, saya tidak menemukan sesuatu yang menarik.
Saya sudah cukup lengkap, tetapi apakah ada cara untuk memulihkan sistem file tanpa menggunakan alat pemulihan file tingkat rendah ( foremost
/ photorec
)?
testdisk
, seperti yang disebutkan di atas, saya mencoba berbagai offset menggunakan losetup
(di i * 512
mana i
salah satu dari 62, 64, 2047 atau 2049).
sudo fdisk -l /dev/sdb
ditunjukkan?