Verifique o sistema de arquivos somente na área onde o arquivo aparentemente corrompido é

0

Recebo erros ao ler um arquivo grande, como em

# md5sum file
md5sum: file: Input/output error

Olhando para a saída do strace, vejo que a chamada do sistema read () retorna o EIO, e na página de manual correspondente, diz, sobre o EIO, que

It may also occur when there is a low-level I/O error while reading from a disk or tape.

Como posso verificar e corrigir o problema diferente de, possivelmente, executar fsck -c no enorme sistema de arquivos onde este arquivo está?

    
por idrarig 07.09.2014 / 22:32

1 resposta

1

Existem apenas dois cenários, que podem fornecer "Erro de entrada / saída" no "arquivo md5sum":

  • O sistema de arquivos structure é defeituoso (por exemplo, referenciando um bloco além do tamanho fs). Neste caso fsck -c não é necessário, um simples fsck -f deve ser o truque
  • O próprio meio de armazenamento está com defeito (por exemplo, o HDD). Nesse caso, fsck -c não poderá corrigir o problema, pois não está dentro do escopo do fs

Minha recomendação é

  • primeiro execute fsck -f para garantir que não seja a primeira opção
  • primeiro copie todos os arquivos legíveis para um meio de backup
  • use ddrescue para acessar os arquivos ilegíveis na primeira passagem
  • se isto apresentar algum erro, destrua e elimine a unidade
por 07.09.2014 / 23:50