Determine o tamanho da imagem, por exemplo, com \ls -l my.img
(não ls -lh
, que lhe daria um tamanho aproximado; \ls
protege contra um alias como ls='ls -h'
) ou com stat -c %s my.img
.
Se você quiser verificar a cópia contra o original apenas desta vez, basta comparar os arquivos. Usar hashes é inútil para uma comparação única, só tornaria as coisas mais lentas e exigiria mais comandos. O comando cmp
compara arquivos binários. Você precisa passar o arquivo de imagem e a parte correspondente do cartão SD. Use head
para extrair o início do cartão SD.
</dev/sdc head -c "$(stat -c %s my.img)" | cmp - my.img
Se você deseja realizar muitas comparações, os hashes são úteis, porque você só precisa ler cada instância uma vez para calcular seu hash. Qualquer hash serve, pois você está preocupado com a corrupção de dados. Se você precisava verificar se um arquivo não foi modificado por razões de segurança, então cksum
e md5sum
não seriam adequados, você deve usar sha256sum
ou sha512sum
.
md5sum <my.img >my.img.md5sum
</dev/sdc head -c "$(stat -c %s my.img)" | md5sum >sd-copy.md5sum
cmp my.img.md5sum sd-copy.md5sum
Observe o redirecionamento de entrada no primeiro comando; isso garante que o arquivo de soma de verificação não contenha nomes de arquivos, para que você possa comparar os arquivos de soma de verificação. Se você tiver um arquivo de soma de verificação e uma cópia para verificar, poderá fazer a verificação diretamente com
</dev/sdc head -c "$(stat -c %s my.img)" | md5sum -c my.img.md5sum
Ah, e não use dd
, é lento (ou, na melhor das hipóteses, não é mais rápido) e não detecta erros de cópia.