na presença de erros de smartctrl, o find está tomando 'forever', causa erro de entrada / saída

0

Como o comando find pode ser acelerado? tudo que eu busco é uma lista de diretórios completa possível com arquivos problemáticos assim anotados.

Eu tenho um hdd IDE antigo de 2002 com 156GB de dados em uma partição EXT3. Eu rotulei há vários anos como tendo erros de smartctrl. Eu não tenho mais uma placa-mãe com portas IDE e o smartctrl não está funcionando com o meu adaptador IDE para USB.

Meu objetivo é destruir a unidade. Antes de fazer isso, eu gostaria de confirmar (através da comparação de hashes) que os arquivos na unidade com falha estão em outra unidade saudável (copiada há anos atrás, quando ambos com livre de erros)

Até agora, dos 63404 arquivos, 348 estão causando erros de entrada / saída. 1/2 por cento Fico feliz em me livrar cegamente deles.

ATUALIZAÇÃO: demorou cerca de 5 horas para que a conclusão fosse concluída. Encontrou 115000 arquivos, 800 dos quais tinham erros de entrada / saída.

    
por Jeff 09.12.2016 / 15:25

2 respostas

4

O fato de você se referir a essa unidade como "um HDD IDE antigo" de pelo menos "anos atrás" me leva a supor que ela tem capacidade de armazenamento muito limitada em comparação com as unidades modernas. (Edit: Você editou a pergunta para dizer 156 GB. Isso é definitivamente pequeno para os padrões atuais.)

find provavelmente não emitirá erros de E / S; talvez seja relatar eles. Os erros são provenientes do kernel, que está respondendo a problemas relatados pela unidade.

Supondo que você tenha espaço livre suficiente para criar uma imagem da unidade, a melhor abordagem é provavelmente usar ddrescue para fazer isso.

ddrescue se destina especificamente a manipular mídia marginal e o faz significativamente melhor do que o antigo cavalo de trabalho dd , mesmo quando o último é usado com, por exemplo, conv=noerror . Existem duas grandes coisas que o ddrescue faz melhor que dd :

  • Garante que os locais dos dados não mudam. Se um bloco de dados estiver em um local na origem e for legível, ele será colocado no mesmo local no destino. Isso significa que coisas como as compensações do sistema de arquivos não mudam, garantindo que os dados que são legíveis permaneçam consistentes.
  • Ele começa lendo grandes blocos, observando onde há problemas, e, em seguida, volta e lê (e grava) todas as áreas problemáticas encontradas. Para a mídia de origem marginal, isso fornece uma imagem contendo os dados maioria dentro da primeira passagem e, para cada passagem sucessiva, ela fica mais e mais completa.

Ele também tem uma boa exibição de progresso, mas você pode obter isso de dd também.

Nada disso depende do S.M.A.R.T. dados.

Depois de ter uma imagem da unidade (ou de todas as suas partições), ela pode ser montada em loopback para análise adicional e extração de dados. Como esta unidade tem apenas uma única partição, a abordagem mais fácil pode ser simplesmente criar uma imagem dessa partição, pois ela evita ter que lidar com deslocamentos de dispositivo de loopback e tais coisas. Você pode até fazer uma cópia adicional, manter uma no caso de você estragar e tentar colocar a outra em forma executando e2fsck nela. Isso deve fornecer acesso aos dados com danos colaterais mínimos, embora algumas partes do sistema de arquivos provavelmente fiquem inacessíveis devido a danos nos metadados do sistema de arquivos.

    
por 09.12.2016 / 15:47
1

Erros inteligentes indicam que a unidade está com problemas, e é provável que o motivo esteja demorando tanto.

A unidade está possivelmente danificada fisicamente, não há uma maneira sensata de acelerar o comando de localização. Em vez disso, considere o uso de uma ferramenta de recuperação para recuperar uma imagem do disco danificado, depois monte e encontre os arquivos sobre isso.

    
por 09.12.2016 / 15:28

Tags