Como são duas VMs diferentes executando diferentes versões principais do Ubuntu, eu suspeitava que o tamanho do bloco do sistema de arquivos fosse o culpado. du
informa quanto do disco está sendo usado, não a soma dos tamanhos dos arquivos. Uma distinção sutil, mas importante.
Se você tiver um arquivo com tamanho de 1 byte e o tamanho do bloco for 1 KB, du
reportará 1 KB como usado. Se o tamanho do bloco for 4KB, ele reportará 4KB usado. Se esse arquivo for 1025B, ele relataria 2 KB usado para o tamanho de bloco de 1 KB e 4 KB para o 4KB. E se o arquivo for 4097B, ele será relatado como 5 KB no tamanho do bloco de 1 KB e 8 KB no tamanho do bloco de 4 KB.
Esta sequência demonstra esse comportamento:
$ touch foo ; du -h foo
0B foo
$ echo -n 1 > foo ; du -h foo
4.0K foo
Use este comando para mostrar o tamanho do bloco de seus sistemas de arquivos:
tune2fs -l /dev/sda1 | grep -i 'block size'
(Obviamente, substitua /dev/sda1
pelo dispositivo de bloco apropriado.)
Se for diferente, há sua discrepância.
A melhor maneira de verificar a exatidão do rsync
é agrupar seus arquivos e comparar. Aqui está um exemplo:
find path/media -exec openssl sha1 {} + | sort > ~/hashes
Em seguida, diff
os arquivos hashes
.