I needed to copy a Linux system recently. In fact, I ended up copying it multiple times as I reformatted the drives a few times. Rsync did the job perfectly:
# rsync -a /mnt/tmp/mainbackup /mnt/tmp/system
And in the end, my only issue was getting Grub to boot the drive due to silly BIOS limitations.