Todas las distribuciones Linux incluyen un programa que nos da la posibilidad de hacer copias fiables de todo el disco o partición, así como de restaurarlo. Este es el comando «dd».
Copia del disco A al disco B:
dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync
En este ejemplo, estamos copiando todo el disco «/dev/sda» al disco «/dev/sdb».
«bs=64K» es el tamaño del bloque. Cuanto mayor sea el tamaño del bloque, más rápida será la transferencia, pero si se produce algún error, se pondrá en peligro todo el bloque. El tamaño de 64K es suficiente para darnos una buena velocidad de transferencia y al mismo tiempo reducir la propagación de un error, si lo hay.
«conv=sync,noerror» ignora los errores y rellena con ceros en caso de error.
Copiar el disco de un servidor remoto al PC local:
ssh [email protected] "dd if=/dev/sda conv=sync,noerror bs=64K | gzip -c " | dd of=/root/backup.img.gz
En este ejemplo, todo el disco del servidor remoto «/dev/sda» se copia en el ordenador local y se comprime con gzip.
Restaurar un archivo de imagen con dd:
En el ejemplo anterior, copiamos el disco al archivo de imagen en «/root/backup.img.gz». Para restaurar este archivo de imagen al disco con dd ejecutamos:
gunzip -c /root/backup.img.gz | dd of=/dev/sdb
NOTA: Tenga en cuenta que en este ejemplo estamos asumiendo que el sistema tiene dos discos y está instalado en otra partición, distinta de /dev/sdb. Si sobrescribes el mismo disco en el que está instalado y funcionando tu sistema, éste se verá comprometido. Lo correcto sería arrancar un Live Media que contenga la copia de seguridad, y luego restaurar el disco.
- Tags:
- Copia de seguridad