Eu acho que rsync
poderia fazer o trabalho para você? Você só precisa ter a fonte e o destino no caminho certo, dependendo de se você está "empurrando" ou "puxando".
Você poderia começar com um rsync algo assim (não testado):
rsync --archive --acls --compress --delete --hard-links \
--exclude '/run/*' \
--exclude '/dev/*' \
--exclude '/media/*' \
--exclude '/mnt/*' \
--exclude '/proc/*' \
--exclude '/sys/*' \
--exclude '/tmp/*' \
--exclude '/var/run/*' \
--exclude '/var/lock/*' \
--exclude '/lib/modules/*/volatile/.mounted' \
--exclude '/var/cache/apt/archives/*' \
--exclude '/var/tmp/*' \
/ <destination>
Aviso de isenção
Tendo em mente que uma cópia 1: 1 completa provavelmente não é o que você realmente deseja devido a hardware diferente nos sistemas. Por exemplo, você pode não querer o mesmo nome de host, configuração de rede, carregador de inicialização, pontos de montagem, etc. Nenhum destes foi abordado no exemplo acima.
Para resolver alguns (todos?) destes, você pode considerar adicionar as seguintes exclusões:
/boot/
/lib/modules
/etc/modules
/etc/lilo.conf
/etc/fstab
/etc/mtab
/var/log
/etc/network/interfaces
/etc/hostname
/etc/hosts