sha256sum / md5sum fornece resultados diferentes para arquivos grandes (Ext4 / Full Disk Encryption)

1

Ontem eu reinstalei o Ubuntu 13.04 64-bit no meu computador (4GB de RAM), e pela primeira vez eu decidi usar Full Disk Encryption (todas as configurações padrão).

Hoje, durante a execução de backups, meu computador travou duas vezes.

Agora continuei a trabalhar nos meus backups e ao verificar o hash de um backup meu, descobri que o sha256sum mostrava um resultado incorreto para um arquivo grande.

Eu folheei / var / log / syslog e não encontrei nenhum erro, e o utilitário de disco também diz que o disco está OK.

Eu tentei reproduzir esse erro e, para arquivos pequenos, não tive esse problema, mas para arquivos grandes eu fiz:

$ dd if=/dev/zero of=zeroes bs=1M count=4000 && sha256sum zeroes && sha256sum zeroes
4000+0 records in
4000+0 records out
4194304000 bytes (4,2 GB) copied, 54,0345 s, 77,6 MB/s
ad6637bd22568145039a053da5cbf4c31d3eda5ef95c29646fa66b0cacd15a8c  zeroes
8ea0d0c9ad97de182335e98045a1f197456ceee782fa6e801fd3e68bea4d35d3  zeroes

$ md5sum zeroes && md5sum zeroes 
8097877e1c991721dae7ffe228ae2f5a  zeroes
fbd1e7fcd3861446310c87abf72066bf  zeroes

Isso é muito ruim se eu não puder confiar em nenhum dos meus dados, então eu realmente aprecio se alguém puder me ajudar a descobrir qual poderia ser o problema.

    
por Christian H. 15.08.2013 / 15:36

2 respostas

2

Você está vendo um problema de hardware aqui. A memória no hardware do consumidor não possui verificações de integridade (ECC, na sigla em inglês), portanto, os erros na memória são praticamente não detectados no nível do sistema. Como você observou, estava vendo falhas também, e isso é esperado se a memória estiver com defeito.

Ao executar um memtest no seu sistema, você pode verificar isso. Memtest com o live CD do Ubuntu 12.04

Agora você também terá que verificar todos os backups enquanto a E / S passa pela memória. É provável que os backups feitos com essa RAM defeituosa também estejam corrompidos. Observe que isso pode ser um pouco corrompido e difícil de detectar.

    
por gertvdijk 15.08.2013 / 21:17
0

Muito bem encontrado: D

A reprodução falhou no meu ambiente. (claro)

Eu tenho ram 4G, mas meu coreutils [1] é a versão 8.13 (seu 8.20), e meu disco NÃO é criptografado.

Eu assumo que este problema não existia antes de 13.04, porque tal problema não passa despercebido. Então eu olhei para o changelog: link

Depois, vi um patch que pode estar relacionado a esse problema:

  

coreutils (8.13-3.2ubuntu6) raring; urgência = baixa

     
  • Correção upstream do Backport para evitar corrupção de dados na leitura de memória livre   em   cp / mv / install ao lidar com um arquivo de entrada muito fragmentado e esparso   em determinados sistemas de arquivos (LP: # 1073514). * Construa-dependa de valgrind para poder executar o teste para o   acima da correção.

  •   
  • Corrija 99_sort_-u_data_loss.dpatch para que o teste adicionado seja realmente   executar.

  •   

Você pode testar o mesmo com a versão 8.13 do coreutils? (Se eu tiver tempo, testarei eu mesmo)

Apenas no caso, exatamente você criptografou seu computador?

Se você quiser investigar mais este problema, o changelog é muito útil. Também pode ser que outro patch tenha quebrado algo.

[1]: md5sum e sha256sum são do pacote GNU coreutils

    
por Tijs Maas 15.08.2013 / 16:24