Como hacer una copia de seguridad de tu Raspberry Pi

Este es uno de los capítulos del tutorial La Raspberry Pi. Primera primeros pasos.. Encontrarás los enlaces a todos los de capítulos, al final de este artículo.

En este artículo veremos como hacer una copia de seguridad de la Raspberry Pi. En los dos primeros artículos vimos los pasos básicos para montar tu Raspberry Pi y la instalación del sistema operativo Raspbian.

Sin embargo en un momento determinado, es posible que consideremos la necesidad de instalar otro sistema operativo para probar otras cosas. También es posible que queramos salvaguardar la información por si en un momento determinado tenemos un problema con la tarjeta micro SD.

Lo cierto es que realizar una copia de seguridad siempre es una buena práctica que debemos hacer a menudo para evitar llevarnos sorpresas desagradables.

Como hacer una copia de seguridad de tu Raspberry Pi. Logo.

Hacer una copia de seguridad de la Raspberry Pi

Hasta el momento no lo he comentado, pero seguro que tu ya te habrás dado cuenta. Todos estos artículos están orientados a usuarios de distribuciones Linux. Por supuesto que cualquier usuario de otro sistema operativo, en un momento determinado puede instalar Linux y pasarse del lado oscuro al lado de la fuerza, pero esto ya es opcional.

Como he indicado en la introducción es fundamental hacer copias de seguridad, y para ello, utilizaré el terminal de mi equipo. No podemos hacer la copia de la Raspberry Pi en el pequeño dispositivo.

Con ello los pasos a realizar son,

  • Apagar la Raspberry Pi. Para este primer paso entraremos en la Raspberry vía ssh y ejecutaremos la siguiente orden,
sudo shutdown now
  • El siguiente paso es introducir la micro SD en nuestro equipo y ver donde se ha montado. Para ver donde se ha montado ejecutaremos la orden,
df -h

df es una sencilla utilidad que nos permite ver las unidades montadas en nuestro equipo y el espacio disponible que tenemos en cada una de ellas. Evidentemente, nosotros solo necesitamos conocer que unidades tenemos montadas.

En general en mi equipo aparecen /dev/mmcblk0pX donde la X se sustituye por cada una de las particiones montadas.

Otra opción es utilizar la orden,

sudo fdisk -l

fdisk es una herramienta disponible en las distribuciones GNU/Linux que permite gestionar particiones. Esta nos puede ser de utilidad en el caso de que no se haya montado ninguna partición, con lo que no sabremos lo que debemos hacer. Sin embargo, es recomendable utilizar la otra utilidad, df -h porque no necesitas derechos de administrador.

Por ejemplo en mi caso al ejecutar df -h obtengo el siguiente resultado,

S.ficheros             Tamaño Usados  Disp Uso% Montado en
/dev/mmcblk0p2            30G   1,2G   27G   5% /media/lorenzo/673b8ab6-6426-474b-87d3-71bff0fcebc3
/dev/mmcblk0p1            42M    21M   21M  51% /media/lorenzo/boot

Nota: Solo he dejado lo que nos interesa

Como vemos, tenemos montadas dos particiones de nuestra unidad micro SD.

Debemos desmontar esas dos particiones para realizar la copia de seguridad. Para ello ejecutaremos las siguientes órdenes,

umount /dev/mmcblk0p1
umount /dev/mmcblk0p2

Una vez ejecutadas, vuelve a ejecutar df -h para asegurarte que no están montadas.

Antes de continuar debes comprobar que tienes suficiente espacio en tu equipo. Si por ejemplo, eres un avaricioso, y te has comprado una tarjeta de 32 GB, cuando hagas la copia de seguridad crearás una imagen de ese tamaño. Otra razón mas para utilizar una de 8GB.

Ahora realizamos la copia de seguridad utilizando dd para ello. La orden será algo como lo que ves a continuación,

sudo dd if=/dev/mmcblk0 of=/home/lorenzo/cds_20170714.dd bs=4M status=progress; sync

En mi caso, he puesto la copia de seguridad en /home/lorenzo/ y la he llamado cds_20170714.dd. Evidentemente, tu deberás ubicarla en el directorio que creas conveniente.

Ahora debemos comprobar que la copia de seguridad que hemos realizado es correcta. Para ello, ejecutaremos las orden,

sha1sum cds_20170714.dd

Esto nos dará un resultado como el que ves a continuación,

f64c68ddd592979aa5d944b02cd9aeab90e9d1a0  cds_20170714.dd

Ahora realizaremos la misma operación sobre la tarjeta micro SD,

sudo sha1sum /dev/mmcblk0

Que nos da el resultado,

f64c68ddd592979aa5d944b02cd9aeab90e9d1a0  /dev/mmcblk0

Evidentemente las dos sumas de comprobación deberán ser iguales. De lo contrario tenemos un error, y debemos realizar nuevamente la copia de seguridad.

Por último, tal y como he comentado anteriormente, la copia de seguridad que hemos realizado tendrá el tamaño de la tarjeta micro SD, en mi caso 32 GB. Sin embargo la podemos comprimir para reducir sensiblemente este tamaño y que no nos ocupe tanto espacio.

Para comprimir la imagen podemos ejecutar la siguiente orden,

tar -czvf cds_20170714.tar.gz cds_20170714.dd

En mi caso particular al listar ambos archivos el resultado es el siguiente,

-rw-r--r--  1 root    root    32010928128 jul 14 13:14 cds_20170714.dd
-rw-rw-r--  1 lorenzo lorenzo   560609498 jul 14 13:35 cds_20170714.tar.gz

He pasado de un tamaño a otro, con una reducción de la capacidad de X.

Restaurar la copia de seguridad

En el caso de que ya hayamos terminado con lo que sea que estuviéramos haciendo en nuestro equipo, ya podemos restaurar la copia de seguridad.

La operación de restaurar la copia de seguridad de la Raspberry Pi es muy sencillo, tan solo debemos ejecutar la orden

tar xzOf cds_20170714.tar.gz | sudo dd of=/dev/mmcblk0 bs=1M status=progress; sync

Aquí toda la gracia reside en O que permite que la salida de tar vaya a dd.

Realizar una copia de seguridad remota

Evidentemente esto conlleva tener que parar tu Raspberry, extraer la tarjeta SD, etc, y como la naturaleza del ser humano es vaga por naturaleza, solo por ahorrarnos estas operaciones terminamos por no hacer copia de seguridad hasta que llega el fatídico día.

Una solución para evitarnos esto es hacer una copia de seguridad remota. Esto es tan sencillo, en mi caso, como ejecutar la siguiente orden desde un emulador de terminal,

ssh pi@192.168.1.148 "sudo dd if=/dev/mmcblk0 bs=1M | gzip -" | dd of=/home/lorenzo/cds_20170714.gz

Como ves en este caso he utilizado gzip para realizar la compresión y enviarlo vía ssh. Este proceso es lento, en particular, en mi caso, se tomó mas de 50 minutos en hacer la copia de seguridad.

En el caso de que necesites restaurar la copia de seguridad, esto si que deberás hacerlo desde tu ordenadorquemando, una tarjeta sd. El proceso es similar al que hemos visto anteriormente, pero en lugar de partir de tar partimos de gzip. La orden sería la siguiente,

gzip -dc /home/lorenzo/cds_20170714.tar.gz | sudo dd of=/dev/mmcblk0 bs=1M status=progress; sync

Conclusiones

Como puedes ver hacer una copia de seguridad de la tarjeta micro SD de tu Raspberry Pi es algo tremendamente sencillo, aunque invertirás algo de tiempo. Una opción sería crear un script para realizar todas las operaciones (desmontar, copiar, comprobar y comprimir) de forma desatendida.

Si además te decides a hacerlo de forma remota, lo puedes automatizar utilizando para ello cron, y enviarlo a otro servidor o a tu ordenador, según tus posibilidades.


Más información,

15 comentarios en “Como hacer una copia de seguridad de tu Raspberry Pi

  1. MA
    manuti hace 7 años

    No quiero parecer enterado, pero Raspbian tiene una herramienta para copia de seguridad que clona la tarjeta sin desmontar ni nada de eso y sin necesidad de un PC con Linux.

    1. EL
      El atareao hace 7 años

      Hola Manuti,
      ¿Sabes cual es la herramienta o me puedes indicar alguna página donde mirar? La incorporaré al artículo.
      Muchas gracias y un saludo.

        1. EL
          El atareao hace 7 años

          Hola Manuti,
          Por lo que parece esa es una herramienta gráfica, ¿no?. Yo he instalado Raspbian sin servidor gráfico, puesto que hasta el momento no lo he necesitado. Por eso explico como hacerlo de esta forma.
          De todas formas, tomo nota de tu comentario para tenerlo en cuenta en los próximos artículos cuando inicie el servidor gráfico.
          Muchas gracias por tus comentarios, que siempre son bienvenidos y un saludo.

          1. MA
            manuti hace 7 años

            Sí, es gráfica pero no sé si se podrá usar también desde la línea de comandos. La verdad es me produce mucho respeto comentar en tu blog así que gracias por tenerlo en cuenta.

          2. EL
            El atareao hace 7 años

            Hola Manuti,
            Probaré a ver si puedo hacerlo desde el sitio. En cuanto a lo que comentas de «me produce mucho respeto»…, ¿Por que lo dices? Espero no haberte molestado
            Gracias

          3. MA
            manuti hace 7 años

            Nooooo, es que para mí eres un referente en Linux y verte un poco como principiante con Rasbperry y corregirte un poco me resulta raro.

          4. EL
            El atareao hace 7 años

            Va, no te preocupes para nada, aquí estamos para aprender, compartir, difundir y disfrutar. Yo disfruto mucho con todo esto.
            Muchas, muchas gracias.

  2. HE
    Hefistion hace 7 años

    Hola, hay un error en el comando para restaurar el backup de la tarjeta, te falta indicar el fichero de entrada, seria algo así:

    sudo dd if=/ruta/backup.img of=/dev/mmcblk0 bs=4M status=progress; sync

    Un saludo y felicidades por el blog

    1. EL
      El atareao hace 7 años

      Hola Hefistion,

      Muchas gracias por las felicitaciones. En referencia al error que comentas, indicarte que no es tal error. Si te fijas el parte izquierda se descomprime el archivo que se envia a la parte derecha que es `dd`. De otra manera debíamos descomprimir primero.

      Gracias por tu comentario y un saludo

      1. HE
        Hefistion hace 7 años

        Gracias por la aclaración pensaba que dd necesitaba de if, eso me pasa por no probarlo antes ;-).

        Lo dicho a seguir con el blog y el fenomenal trabajo que realizas. Salu2.

  3. @C
    @carlosnewmusic hace 6 años

    en armbian no funciona 🙁

  4. CA
    capitan truenoo hace 6 años

    Hola,

    Para hacer la copia localmente, desmontas las particiones. ¿Por qué no haces lo mismo cuando la copia la realizas remotamente?

    Muchas gracias.

  5. MI
    Miguel hace 2 años

    Hola Lorenzo, tendrás alguna actualización de este artículo? sería bueno un update tomando en cuenta que ahora muchas raspberrys están trabajando con disco local ssd

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *