Os sistemas de arquivos ext (4?) armazenam intrinsecamente os dados mais recentes de uma maneira mais propensa à corrupção?

7

Recentemente eu tive um sistema de arquivos ext4 corrompido jogando esses erros:

kubuntu@kubuntu:~$ sudo mount -t ext4 /dev/sdc2 c1
mount: wrong fs type, bad option, bad superblock on /dev/sdc2,
  missing codepage or helper program, or other error
  In some cases useful info is found in syslog - try
  dmesg | tail  or so

kubuntu@kubuntu:~$ sudo fsck.ext4 -v /dev/sdc2
e2fsck 1.42.5 (29-Jul-2012)
    fsck.ext4: Attempt to read block from filesystem resulted in short read while trying to open /dev/sdc2
Could this be a zero-length partition?

kubuntu@kubuntu:~$ dmesg | tail
[ 2684.532855] Descriptor sense data with sense descriptors (in hex):
[ 2684.532858]         72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00 
[ 2684.532876]         05 3f c8 b0 
[ 2684.532885] sd 5:0:0:0: [sdc]  
[ 2684.532893] Add. Sense: Unrecovered read error - auto reallocate failed
[ 2684.532898] sd 5:0:0:0: [sdc] CDB: 
[ 2684.532902] Read(10): 28 00 05 3f c8 b0 00 00 08 00
[ 2684.532917] end_request: I/O error, dev sdc, sector 88066224
[ 2684.532927] Buffer I/O error on device sdc2, logical block 22
[ 2684.532973] ata6: EH complete

Depois de recuperar a partição com e2fsck -f -b 32768 , notei que os arquivos mais antigos do disco foram preservados e que a maioria dos arquivos não recuperados eram os arquivos mais novos e, portanto, sem backups.

É a propriedade de perder os arquivos mais recentes e preservar os arquivos mais antigos intrínsecos ao ext4, ou foi apenas azar? Existe algum sistema de arquivos que, após a corrupção, tende a perder os arquivos mais antigos e preservar os mais novos?

    
por dotancohen 10.02.2014 / 10:26

1 resposta

2

Resposta parcial:

O superbloco do seu sistema de arquivos ficou ilegível. O superbloco é o bloco mais importante, porque contém as informações de como o sistema de arquivos está configurado.

Todos os sistemas de arquivos mais novos usam o chamado journal : blocos novos ou alterados são escritos para alguma área contígua primeiro e, eventualmente, substituem os blocos na área "normal". Isso facilita a recuperação: o programa de recuperação examina o diário, verifica quais transações foram concluídas antes da falha e, em seguida, pode restaurar o sistema de arquivos para um estado consistente da última transação bem-sucedida. Isso também significa que as alterações mais recentes são perdidas após uma recuperação, mas geralmente são apenas pequenas alterações.

É difícil dizer o que aconteceu no seu caso porque você não deu informações sobre como foi o processo de recuperação. O sistema de arquivos contém cópias do superbloco, então você deve ter conseguido usar uma cópia em vez da corrompida, acessar o diário a partir da cópia e restaurar o sistema de arquivos quase ao mesmo estado que você tinha antes o problema.

Como você disse que perdeu alguns arquivos mais novos, meu palpite é que o programa de recuperação não conseguiu restaurar o superbloco e, portanto, fez algumas suposições, e por causa disso ou por causa de alguns outro motivo não foi possível encontrar o diário, então você perdeu todas as alterações no diário, em vez de apenas a última transação incompleta.

Em geral, sistemas de arquivos mais novos como ext4 são melhores na recuperação (possivelmente com alguma entrada manual durante a recuperação) do que sistemas de arquivos mais antigos como ext2 ou FAT. Se estes ficarem corrompidos, você perde o que estava corrompido. Em sistemas de arquivos registrados, é quase sempre possível voltar a um estado consistente que não esteja muito longe do estado quando o problema ocorreu. Então, a resposta para a pergunta no assunto é "de maneira alguma, muito pelo contrário".

Você pode usar as opções de montagem para influenciar com que frequência e de que maneira o diário é gravado e as transações são confirmadas, para que você possa negociar maiores chances de recuperação para o desempenho.

    
por 29.11.2017 / 10:45