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.
Tags mount ext4 truecrypt linux filesystems