Clonagem de HDD e somas de verificação não correspondentes

2

Estou tentando clonar um HDD de 1 TB em um SSD de 1 TB seguindo as instruções aqui .

Eu tentei cloná-lo várias vezes com dd (dolorosamente lento) e cat (muito mais rápido), mas quando eu fiz checksums eles não combinavam.

Eu usei o seguinte código de aqui sudo sha1sum /dev/sdX

A unidade foi configurada com uma partição de inicialização não criptografada e, em seguida, três partições adicionais criptografadas com dmcrypt / luks.

Todas as operações foram realizadas através de um LiveCD com ambas as unidades desmontadas.

No teste (depois de descobrir que as somas de verificação não correspondem), a unidade duplicada parece funcionar corretamente, mas desconfio que as coisas possam estar faltando ou estar corrompidas.

Então, minhas perguntas são:

O que faria com que as somas de verificação não coincidam em unidades de tamanho idêntico?

E, em segundo lugar, a criptografia faria a diferença e, em caso afirmativo, como você realiza somas de verificação em dispositivos parcialmente criptografados?

    
por Mark 08.10.2015 / 16:15

2 respostas

3

O problema com a execução de um hash da imagem de disco é que é uma medida de um bit; diz-lhe apenas se a cópia é ou não byte-by-byte perfeita. E particularmente com as imagens de disco, que possuem os sistemas de arquivos, há muito pouca razão para elas serem byte-by-byte. Mesmo depois de um espelhamento direto, qualquer erro único - mesmo um inconsequente - iria quebrá-lo, assim como qualquer alteração nos discos, incluindo aqueles que vêm de qualquer manipulação de partição, ou montagem dos sistemas de arquivos, ou ... o que for. >

Mais útil seria montar os sistemas de arquivos envolvidos e, em seguida, fazer algo como cd /mnt/mountpoint; find . -type f -exec sha256sum {} \+ >~/checksums . Em seguida, você pode montar o segundo disco e executar sha256sum -c ~/checksums . Isso lhe dirá quais arquivos, se houver algum, estão alterados. (É muito possível que nenhum arquivo tenha sido alterado e a alteração no disco esteja nos metadados do FS ou nos limites da partição ou em algo que não seja realmente significativo.)

    
por 08.10.2015 / 16:47
0

Duas entradas têm a mesma soma de verificação criptográfica somente se forem idênticas. Entradas idênticas devem, por definição, ter o mesmo comprimento. Ter aproximadamente o mesmo tamanho não é suficiente, eles devem ter exatamente o mesmo tamanho.

Um disco rígido "1TB", na prática, tem muito perto de 1000 4 = 1.000.000.000.000 bytes. Um SSD “1TB” é geralmente mais próximo de 2 = 1024 4 = 1,099,511,627,776 bytes. Portanto, o seu SSD é um pouco maior que o seu HDD, então a cópia substituiu a maior parte do SSD, mas deixou um pouco de espaço não utilizado no final. Quando você calculou a soma de verificação do SSD, incluiu a coisa toda, incluindo o espaço não utilizado.

Você pode calcular a soma de verificação dos dados no SSD verificando o tamanho do disco rígido, que fdisk /dev/sdh dirá (assumindo que /dev/sdh é o HDD). Há também um tamanho em /proc/partitions , mas está em kB, sem indicação se o tamanho não for um múltiplo de 1kB - acho que todos os discos rígidos desse tamanho têm um tamanho que é múltiplo de 4kB, então isso deve ser ok. Em seguida, você pode executar </dev/sdd head -c 1000196757504 | sha1sum (assumindo que /dev/sdd é o SSD e 1000196757504 é o tamanho do HDD) para calcular a soma de verificação da cópia.

Mas calcular essas somas de verificação não é muito útil. Se houve um erro durante a cópia, cat teria lhe dito. Comparar os discos pode ser útil como uma verificação de sanidade que você copiou o que você pretendia copiar, mas montar as partições tem o mesmo propósito.

Observe que, depois de montar as partições, o conteúdo será diferente, pois a montagem registra alguns metadados no sistema de arquivos, como a data da última montagem. Até mesmo uma montagem somente leitura pode, de fato, modificar o dispositivo, especialmente para reproduzir o diário em sistemas de arquivos de diário.

    
por 09.10.2015 / 03:11