Recuperar dados do ext4 Volume (a estrutura precisa de limpeza, etc.)

1

tl: dr: Como faço para recuperar dados de um volume ext4 que está dando erros como "Estrutura precisa de limpeza?" Eu tentei muitas coisas, como descrito abaixo, mas ainda sem sucesso.

EDIT: Por favor, veja abaixo post original para a saída de e2fsck e dumpe2fs como por solicitação de um comentador. Post original segue.

Ao tentar montar um volume Truecrypt 7.1 que eu uso com frequência, hoje recebi este erro adorável:

Error: mount: mount /dev/mapper/truecrypt1 on /media/truecrypt1 failed: Structure needs cleaning

Então eu tentei montar isso com a linha de comando truecrypt 7.1a em outro sistema e recebi este erro:

Error: mount: wrong fs type, bad option, bad superblock on /dev/mapper/truecrypt1,

Aqui estão os passos que tomei até agora:

1 - Descriptografado mas não foi montado com Truecrypt usando:

truecrypt --filesystem=none /dev/xxx.

Isso parece me dar uma partição não criptografada, mas não montada. Então eu fiz o backup usando dd e estou tentando tudo o mais nos backups.

2 - Então eu tento montá-lo:

mount sda3.1 /mnt/tmp

... e eu recebo o não surpreendente:

mount: mount /dev/loop0 on /mnt/tmp failed: Structure needs cleaning

3 - Então eu tento:

dmesg | tail

... e isso me dá:

[ 1283.815816] EXT4-fs (loop0): ext4_check_descriptors: Block bitmap for group 64 not in group (block 1312711560940789246)!
[ 1283.815825] EXT4-fs (loop0): group descriptors corrupted!

Devo mencionar que não tenho certeza de que esse seja um volume ext4. Eu honestamente não me lembro se era 2, 3 ou 4. Mas da mensagem acima eu assumo que é ext4. Apenas pensei que isso poderia ser importante mencionar.

4 - Agora eu tento fsck.ext4 e as coisas vão mal. Se eu correr automaticamente, eu recebo:

sda3.1: Note: if several inode or block bitmap blocks or part of the inode table require relocation, you may wish to try running e2fsck with the '-b 32768' option first. The problem may lie only with the primary block group descriptors, and the backup block group descriptors may be OK.

sda3.1: Block bitmap for group 64 is not in group. (block 1312711560940789246)

sda3.1: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY. (i.e., without -a or -p options)

5 - Então, agora eu acho que talvez eu deva tentar executar o fsck manualmente. Então eu faço isso. O problema é que uma das duas coisas acontece:

i) Eu escolho "y" para tudo e o resultado final é que eu posso montar o volume mas está completamente vazio OU

ii) Eu tenho que decidir o que dizer "y" e "n" para e eu não tenho a menor idéia de como discernir. Eu tenho lido em sistemas de arquivos um pouco, mas ainda é trabalho de adivinhação. Além disso, existem centenas de perguntas que surgem (a primeira delas é de fato sobre o grupo 64 ... e depois 65, 66, etc), então, mesmo que eu soubesse o que fazer, levaria muitas horas para fazê-lo. - e não posso cometer um único erro ou perder dados, certo?

6 - Eu li este tópico: Como restaurar um sistema de arquivos ext4 e eu também "tentei montar com locais de superblocos alternativos" como em:

mount -t ext4 -o sb=131072,ro sda3.1 /mnt/data_c

Como ele fez, "eu fiz o acima, com a opção sb igual a múltiplos de 4 de todos os números seguintes: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000." De cada vez, recebi o mesmo erro:

mount: wrong fs type, bad option, bad superblock on /dev/loop0, missing codepage or helper program, or other error

In some cases useful info is found in syslog - try dmesg | tail or so. 7 - I ran testdisk and there are a lot of options but choosing Intel/PC partition table on the sda3.1 file gives me:

Partition sector doesn't have the endmark 0xAA55

... e testdisk não vê nenhuma partição.

Então é aqui que estou agora. Se você puder ajudar, eu agradeceria. Obviamente, se esses dados não importassem, eu não me importaria. Não é uma ameaça à vida, mas é uma coisa extremamente útil para mim. Por que não fiz o backup, você pode perguntar. Porque às vezes você não percebe como algo importante se tornou até que você o perca. E porque eu sou um idiota às vezes.

Obrigado antecipadamente.

EDIT: Estou anexando as saídas à minha postagem original de acordo com uma solicitação de um comentador:

(a) dumpe2fs

dumpe2fs 1.43.3 (04-Sep-2016)
Filesystem volume name:   
Last mounted on:          /mnt/truecrypt1
Filesystem UUID:          26177e9d-7268-48e8-86ff-47373c24d454
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean with errors
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              1501440
Block count:              5998016
Reserved block count:     299900
Free blocks:              2303431
Free inodes:              1393801
First block:              0
Block size:               4096
Fragment size:            4096
Group descriptor size:    64
Reserved GDT blocks:      1024
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8160
Inode blocks per group:   510
Flex block group size:    16
Filesystem created:       Sat Apr  9 17:57:07 2016
Last mount time:          Mon Dec 19 02:11:03 2016
Last write time:          Mon Dec 19 03:24:29 2016
Mount count:              382
Maximum mount count:      -1
Last checked:             Sat Apr  9 17:57:07 2016
Check interval:           0 ()
Lifetime writes:          95 GB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:           256
Required extra isize:     32
Desired extra isize:      32
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      65bfc178-1879-4c35-ab2c-39bf976dff4c
Journal backup:           inode blocks
FS Error count:           9760
First error time:         Mon Dec 19 03:24:13 2016
First error function:     ext4_read_inode_bitmap
First error line #:       186
First error inode #:      0
First error block #:      0
Last error time:          Mon Dec 19 03:24:21 2016
Last error function:      ext4_iget
Last error line #:        4095
Last error inode #:       14
Last error block #:       0
Checksum type:            crc32c
Checksum:                 0x989a676a
dumpe2fs: Inode checksum does not match inode while reading journal inode

(b) e2fsck -fy

A saída para isso é muito longa para ser postada. Então, aqui está um link: saída e2fsck

O produto final é montável, mas não é recuperado. Há um arquivo em achados e perdidos e esse arquivo é muito grande. Eu posso fornecer detalhes, se quiser.

Obrigado por ajudar. Aguardo com expectativa a sua opinião sobre o assunto acima.

    
por Jason Cotman 24.12.2016 / 09:06

0 respostas