Rsync Ext4 – Why is Filesystem Copied to New Server 60% Bigger?

ext4rsync

I'm migrating a server from an Ubuntu Server 18.02 instance ("saturn") to a newly-built Debian Buster 10 system ("enceladus"). I have copied a complete filesystem across the network using

sudo rsync --progress -au --delete --rsync-path="sudo rsync" /u/ henry@enceladus:/u

I check the number of directories and the number of files on the sending and receiving side: the counts are identical. I have an RYO Perl program which traverses the file tree and compares each file in one tree with its counterpart in the other: it finds no differences in 52,190 files. Both filesystems are EXT4; both have 512-byte blocks logical, 4096 physical.

Yet the receiving filesystem is 103,226,592,508 bytes and the sending one only 62,681,486,428. If the received filesystem were a little smaller I could understand it, because of unreclaimed blocks; but it's the other way round, and the difference is two thirds the original!

How can this be? Should I worry about it, as being evidence of some malfunction?

Best Answer

I can think of two things offhand:

  • you didn't use -H, so hardlinks are lost.
  • you didn't use -S, so sparse files may have been expanded
Related Question