Hacer una copia de seguridad es siempre una buena práctica que deberíamos realizar a menudo en todos nuestros dispositivos, no solo en la Raspberry. En este artículo veremos cómo hacer una copia de seguridad de la tarjeta de manera local, remota y restaurarla en caso de desastre.
Copia de seguridad local
Para realizar una imagen de la tarjeta microSD de manera local, hay que apagar la Raspberry. Nos conectamos mediante SSH y ejecutamos:
sudo shutdown -h nowIntroducimos la tarjeta en el equipo que debe realizar la copia y averiguamos dónde se ha montado:
sudo fdisk -lHay que desmontar las dos particiones para poder hacer la copia de seguridad:
sudo umount /dev/sdX1 /dev/sdX2Y ejecutamos:
sudo dd bs=4M status=progress if=/dev/sdd of=/media/datos1/backups/rpi/webserver/backup_$(date +%Y%m%d).ddVerificación de integridad
Para comprobar que la copia de seguridad es correcta ejecutaremos el siguiente comando:
sha1sum /media/datos1/backups/rpi/webserver/backup_$(date +%Y%m%d).ddEl resultado, en este caso, es:
b9275fcaeba732f99788654a4d80d8636dcfce9f /media/datos1/backups/rpi/webserver/backup_250817.ddHacemos la misma operación pero para la tarjeta microSD:
sudo sha1sum /dev/sddCon el resultado:
b9275fcaeba732f99788654a4d80d8636dcfce9f /dev/sddSi los dos resultados no son iguales, significa que tenemos algún error y hay que repetir la copia. Si ambas cadenas son idénticas, ¡felicidades! Solo nos quedaría comprimir el fichero resultante del backup:
tar -czvf backup_$(date +%Y%m%d).tar.gz /media/datos1/backups/rpi/webserver/backup_$(date +%Y%m%d).ddExpulsamos la tarjeta:
sudo eject /dev/sddY la introducimos de nuevo en la Raspberry.
Restaurar la copia de seguridad
Una vez introducida la tarjeta en el equipo que se encargará de restaurarla, introduciendo un único comando, descomprimiremos y restauraremos la tarjeta:
tar xzOf /media/datos1/backups/rpi/webserver/backup_20170825.tar.gz | sudo dd of=/dev/sdc bs=1M status=progress; syncRealizar una copia de seguridad remota
Para evitar tener que parar la Raspberry y llevarse la tarjeta a otro ordenador, podemos hacer lo mismo pero en remoto:
ssh usuario@192.168.1.70 -p 6814 "sudo dd if=/dev/mmcblk0 bs=1M | gzip -" | dd of=/media/backups/rpi/webserver/backup_remoto_20170825.gzSolución de problemas con sudo
En el caso de obtener un mensaje de error del tipo:
sudo: no tty present and no askpass program specifiedDebemos conectarnos al equipo remoto y editar el fichero visudo mediante:
sudo EDITOR=nano visudoy permitir al usuario ejecutar únicamente el comando dd sin password añadiendo al final del fichero:
usuario ALL = NOPASSWD: /usr/bin/dd if=/dev/mmcblk0 *Si relanzamos el comando de copia, ahora no debería haber ningún problema.
Es un proceso lento, alrededor de 2 horas con una tarjeta de 32GB y con una RPi3.
Restaurar backup remoto
Para restaurar, ahora sí desde un ordenador en local, ejecutaremos la siguiente orden:
gzip -dc /media/datos1/backups/rpi/webserver/backup_remoto_20170825.gz | sudo dd of=/dev/sdc bs=1M status=progress; syncAlrededor de 40 minutos para restaurar una tarjeta de 8GB con una RPi3.
¿Te ha sido útil?
Ayúdame a mejorar con tu puntuación y comentarios.
💬 Comentarios
Los comentarios están gestionados por GitHub Discussions. Necesitas una cuenta de GitHub para participar. ¡Es gratis y rápido!