Você quer fazer o backup de todo o sistema, não apenas dos seus dados? Então eu sugiro que um pendrive não seja a resposta certa. Provavelmente não é grande o suficiente para um único backup, e certamente não será para vários backups (caso contrário, se o sistema morrer durante um backup, você não terá nada). Eu sugeriria um disco rígido portátil em seu lugar.
A vantagem de usar um disco rígido é que você pode fazer uma instalação completa nele, facilitando a inicialização. Você também pode inicializar a partir dele para fazer backups, se quiser garantir que o backup seja consistente (algo muito importante quando você está tentando fazer um backup completo do sistema).
Se você fez isso, eu juntei dois scripts para fazer o backup e a restauração. Algo como:
#!/bin/bash
SOURCE=/dev/sda
DESTINATION=/backup/backup.'date +%Y%m%d-%H%M%S'.bz2
echo "About to back up ${SOURCE} to ${DESTINATION}. Press ^C to abort"
sleep 10
echo "Backup started"
dd if=${SOURCE} | bzip2 -c9 > ${DESTINATION}
E então
#!/bin/bash
DESTINATION=/dev/sda
SOURCE_BASE=/backup/backup
if [ -z "${1}" ]; then
SOURCE='ls -1tr ${SOURCE_BASE}.* | tail -n 1'
if [ -z "${SOURCE}" ]; then
echo "No backups found!"
fi
else
if [ ! -e ${1} ]; then
echo "File ${1} not found to restore from
else
SOURCE=${1}
fi
fi
echo "About to restore ${SOURCE} to ${DESTINATION}. Press ^C to abort"
sleep 10
echo "Restore started"
bzip2 -cd ${SOURCE} | dd of=${DESTINATION}
Isso garantirá que cada backup vá para um local diferente e, quando você fizer a restauração, restaure automaticamente o backup mais recente ou aquele que você especificar.
Uma nota de cautela - eu acabei de escrever esses 2 scripts, você provavelmente quer testá-los antes de confiar neles.