Como gerenciar a leitura de arquivos ilegíveis devido a setores defeituosos?

1

Estou tendo o sistema de arquivos ext3 e a distribuição recente do Linux.

Eu preciso copiar (ler) um arquivo (s) para um novo destino.

Infelizmente, cp / mv ou MC (Midnight Commander) param / falham em determinado ponto dentro do (s) arquivo (s).

Alguns arquivos param um pouco antes, 30%, outros param em 98% com um erro de setor sendo mostrado no log do sistema.

mv / cp mas também MC não pode continuar a copiar o arquivo simplesmente ignorando este (e outros) setores que fornecem erros de leitura de E / S. No MC, tentei tentar várias vezes, mas sem sucesso.

Os arquivos podem ser úteis para mim, e apenas porque alguns setores únicos ou poucos não seriam mais legíveis no disco atual, eu gostaria de continuar a ler o resto e outras partes saudáveis dos arquivos.

Alguma boa ferramenta ou mecanismo comprovado para ler um arquivo na maior medida possível? O primeiro erro de leitura de E / S sempre termina esse jogo para mim.

Provavelmente existe alguma forma ou até mesmo uma ferramenta útil que pode ler arquivos de maneira mais robusta e apenas preencher o setor ilegível com alguns bytes de espaço reservado ou semelhantes.

O Linux com um sistema de arquivos ext3 montado não alcança esse objetivo?

O Linux como um kernel oferece alguma maneira de ler além dos erros de setor e pular para o próximo setor do arquivo e assim por diante?

O log do sistema mostra sempre o mesmo setor (por arquivo) para causar o erro de leitura de E / S, apenas para deixar isso claro, e eu acho que haveria muitos outros setores e partes saudáveis para ler esses arquivos. / p>     

por amacnewbie 21.09.2018 / 18:09

1 resposta

3

ddrescue ( gddrescue package, página do manual )

Supondo que a unidade tenha uma tabela de partições íntegra, você poderia facilmente fazer isso:

  1. Crie um arquivo de imagem da (s) partição (ões) da unidade com falha em alguma unidade saudável (não quero tornar isso mais difícil do que necessário, por isso não estamos criando a imagem da unidade inteira, mas se a tabela de partições for quebrada, você terá que no final).

  2. Investigue o arquivo de log (na verdade, ele é chamado de arquivo de mapeamento , mas isso é de pouca importância agora para você), dependendo do número de erros que ocorrem.

  3. Isso significa, ou montar o arquivo de imagem da partição em questão diretamente, ou executar por exemplo testdisk em um arquivo de imagem de disco inteiro, caso a tabela de partição esteja danificada, isso é um utilitário perfeito para uma recuperação de partição, mas vamos começar com a criação do arquivo de imagem da partição.

sudo ddrescue --idirect --retry-passes=3 /dev/sdx9 recovery.img recovery.log

Assumindo:

  • o nome das unidades é /dev/sdx

  • a partição que você precisa recuperar tem o número 9

  • você deseja repetir setores defeituosos 3 times

  • você deseja salvar o arquivo de imagem no diretório atual ( . )

  • você deseja salvar o arquivo de imagem como recovery.img

  • você deseja salvar o arquivo de log, que é muito importante !, como recovery.log

Se tudo correr bem, basta montar o arquivo de imagem depois:

sudo mount recovery.img /mnt/whateverMountPoint

Se, por algum motivo, o drive parar de responder, ou qualquer erro que ocorra, eu normalmente reinicio a máquina, e executo o muito mesmo comando, que irá reiniciar o processo a partir do ponto em que previamente interrompido.

CUIDADO:

Eu não sabia que você mencionou o sistema de arquivos montado. O que poderia ser um problema.

Você vê, você não deve criar uma imagem de um sistema de arquivos montado. Em vez disso, sugiro que você crie algum Linux USB, inicialize-o e prossiga com o que eu disse.

    
por 21.09.2018 / 18:25