como comparar duas pastas grandes (2G, 196.000 arquivos)

1

Eu tenho que transferir as pastas > 2G com 196K arquivos de um disco rígido externo para outro. A unidade mais antiga tem alguns problemas e, portanto, recebo um erro durante a transferência. Eu pulo os arquivos que têm o problema. Uma vez que a transferência tenha sido bem sucedida, existe uma maneira eficiente de descobrir quais arquivos não foram transferidos (ou parcialmente transferidos). Eu estou procurando uma maneira de fazer isso no Windows ou Linux (Centos / Ubuntu)

    
por doon 11.03.2014 / 14:02

2 respostas

1

the older drive has some problems

Que tipo de problemas? Você quer dizer que dá erros aleatórios de leitura?

Se a unidade mais antiga não estiver funcionando corretamente, não há como confiantemente saber se os dados foram transferidos corretamente, porque você não pode ter certeza se está lendo os dados corretos da lista. mídia física em primeiro lugar!

Por exemplo:

  • Para calcular uma soma MD5 ou SHA1 de um arquivo, você precisa ler o arquivo inteiro do disco. E se o disco silenciosamente (sem lançar um erro) ler os bits errados? Você recebe um hash diferente. E se você, em seguida, lê-lo novamente e a segunda vez que lê-lo corretamente, e nesse momento você está copiando para a outra unidade? Então você teria os dados "corretos" na nova unidade e o hash não corresponderia ao que você calculou originalmente.

  • Para "excluir" um arquivo (se você fosse movê-los), você precisa escrever para os metadados do sistema de arquivos na unidade antiga. Se a unidade está falhando, eu definitivamente não confiaria nela com escreve ; as leituras são ruins o suficiente. Basta ter a unidade pode contribuir para degradante neste momento, difícil dizer.

  • Para escrever o hash (somas MD5 / SHA1) no disco antigo, ele estaria lendo e escrevendo nele, o que na verdade não é recomendado.

Nesse ponto, se você valoriza o que tem na unidade antiga, recomendo que desconecte a unidade antiga e peça a um especialista em recuperação de dados profissional que recupere o máximo de dados possível.

Se você não fizer isso, estará brincando com fogo. A qualquer momento você pode perder todos os seus dados. E mesmo quando você está tentando copiar os arquivos, você pode estar copiando dados cada vez mais corruptos e piorando as coisas. Não sei quão grave é sua falha de disco, mas certas condições podem tornar isso extremamente sensível ao tempo. Novamente, se os dados forem valiosos ou insubstituíveis, pare o que está fazendo e desconecte a unidade.

No futuro, eu recomendo que você use um dos seguintes sistemas de arquivos em qualquer unidade que contenha dados insubstituíveis. Esses sistemas de arquivos são "evidentes em falhas", porque todos os dados são somados, de modo que, se o disco ler os dados incorretamente (também conhecido como "corrupção silenciosa"), o sistema de arquivos sabe disso e pode relatar o erro. Você tem bastante sorte porque já está recebendo notificações de seu SO que os arquivos não estão copiando corretamente; os discos podem falhar de forma silenciosa e insidiosa que o controlador de disco não consegue detectar, o que levaria à corrupção do disco sem o sistema operacional notificando você normalmente, em um sistema de arquivos sem checksum.

Os seguintes sistemas de arquivos modernos suportam checksum:

  • Btrfs no Linux
  • ZFS no Linux, no BSD ou no Solaris
  • ReFS no Windows Server 2012 ou no Windows 8.1 (embora não seja possível inicializar a partir do ReFS, você precisará de uma partição do sistema NTFS)
por 11.03.2014 / 14:20
0

O rsync tem um recurso para copiar apenas arquivos que ainda não estão lá e, por padrão, apenas atualizará os arquivos que forem alterados. Ele também pode comparar hashes simples dos arquivos na origem e no destino para verificar se eles foram copiados corretamente com a opção -c.

Tem muitas opções para configurar o que e como copia coisas. link

    
por 11.03.2014 / 14:22