Después de tener muchas cosas funcionando, si se nos borra, se estropea o pasa cualquier cosa con el sistema, nos daría algo, por eso, vamos a hacer un backup completo del sistema, en caso de que lo tengáis en una Raspberry Pi o un sistema similar que esté físicamente en una SD o microSD.
Después de este tutorial para hacer copia de seguridad, como digo, de todo el sistema, voy a publicar el que tengo a medio para poder guardar toda la configuración de forma automática en github, algo que ayudaría para si queremos cambiar el sistema o bien queremos tener el control de los cambios que hemos ido haciendo.
Comenzamos con el backup de nuestra SD de Home Assistant
NOTA: ¡Ojo! Los comandos que vais a usar son muy peligrosos y pueden “liarla parda” si os equivocáis de unidad, es decir, aseguraros que estáis viendo la unidad de la SD ya que, podríais copiar/restaurar la unidad que no es, pudiendo machacar el sistema operativo en ejecución, por lo que mucho cuidado. Espero no equivocarme en los comandos, pero, no me hago responsable de si hay algún error en ellos, están hechos con el mayor cuidado posible y con la mejor intención.
Requisitos:
- Necesitaremos un lector de SD o microSD en función de la tarjeta que tengas en uso
- Espacio suficiente (recomendable que de sobra) para poder volcar el contenido total de la SD, es decir, si tienes una SD de 128GB, como es mi caso, 130GB mínimo para poder asegurarnos que va a caber entero el backup. Si queremos comprimir la imagen obtenida, necesitaremos bastante más, llegando a casi necesitar el doble.
Pasos para poder hacer copia de seguridad de la SD de Home Assistant
- Apagamos el sistema, es recomendable entrar y hacerlo bien, es decir, entrar por SSH para poner un comando del tipo:
- Extraemos la SD con cuidado
- La ponemos en el lector SD, da igual si tienes que usar un adaptador para poder usarla, cuanto mejor sea el lector (USB 3.0), mejor
- La pinchamos en el PC
Desde Linux:
- Si usas Linux buscamos nuestra tarjeta en las unidades que nos aparecen con el comando:
sudo fdisk -l
(Nos pedirá la contraseña del usuario que usamos la primera vez que lanzamos el sudo)
Sacará un listado de las unidades que tenemos y, por ejemplo, en mi caso, como vemos en la captura la unidad con 120GiB es /dev/sdf, por lo que haremos copia de dicha unidad, aunque, antes tendremos que localizar donde guardar. Tengo un disco duro externo montado y cuya ruta es /media/usuario/USBNTFS1, por lo que lo grabaré ahí.
- Una vez localizada, pasaremos a hacer el volcado de la totalidad de la SD a nuestro disco duro. El comando sería:
sudo dd bs=4M if=/dev/sdf | gzip > /media/usuario/backup-raspberryHA.gz
(Nos pedirá la contraseña del usuario que usamos la primera vez que lanzamos el sudo)
Si no quisiéramos comprimir la salida:
sudo dd bs=4M if=/dev/sdf of=/media/usuario/backup-raspberryHA.img
(Nos pedirá la contraseña del usuario que usamos la primera vez que lanzamos el sudo)
Recordad que sdf es el ejemplo de mi unidad así como /media/usuario/… es el directorio donde yo he grabado, pero podría ser en vuestra carpeta de usuario, que sería algo del tipo /home/usuario/ en su lugar.
Desde Windows:
- Si estás en Windows, puedes descargar el Win32 Disk Imager, tendrías que ver la unidad que montó cuando pinchaste la SD en el PC para ponerlo bajo “Device”, la daríamos al icono de la carpeta azul para ponerle en la unidad donde tengamos el espacio disponible el fichero donde se guardará el backup, por ejemplo D:\Backup\homeassistant.img
- Una vez hecho eso, le daríamos a “Read” para crear la imagen, como digo, dependiendo del tamaño de la SD así como la velocidad del lector de tarjeta, puede tardar muuuuucho.
Desde Mac:
- Si estás en Mac, es muy similar a Linux, buscamos la lista de unidades en el PC abriendo un terminal y poniendo:
diskutil list
Buscaremos la que coincide con el nombre y tamaño de nuestra SD, como podría ser /dev/disk1
- En el terminal, nos vamos a la carpeta donde tenemos sitio para poder hacer el backup y lanzamos el comando:
sudo dd if=/dev/discodelaSD of=./backup-raspberryHA.dmg
(Nos pedirá la contraseña del usuario que usamos la primera vez que lanzamos el sudo)
¿Y si queremos restaurar la copia que hemos realizado? Pues más o menos, son los mismos pasos, aunque, cambian el orden de las cosas.
Teniendo claro que tenemos nuestra copia en un fichero, tendremos que hacer lo siguiente. Antes de nada, revisa lo de arriba para poder localizar tanto la ruta donde está la copia y la SD, mucho cuidado de no fallar con la SD, que ahora es lo más delicado.
Restauramos el backup de la Raspberry Pi con Home Assistant a una SD
Desde Linux:
sudo gzip -dc /ruta/backup-raspberryHA.gz | dd bs=4M of=/dev/discodelaSD
(Nos pedirá la contraseña del usuario que usamos la primera vez que lanzamos el sudo)
Si no has comprimido la imagen, el comando es:
sudo dd bs=4M if=/ruta/backup-raspberryHA.img of=/dev/discodelaSD
(Nos pedirá la contraseña del usuario que usamos la primera vez que lanzamos el sudo)
Desde Windows:
Con el Win32 Disk Imager, elegimos con el icono azul el fichero de la imagen, ponemos la unidad de la SD en “Device”, pero, ahora, pulsamos en “Write”
Desde Mac:
sudo dd if=/ruta/backup-raspberryHA.dmg of=/dev/discodelaSD
(Nos pedirá la contraseña del usuario que usamos la primera vez que lanzamos el sudo)
Como he dicho antes, espero que no fallen las cosas y que no tengáis problemas a la hora tanto de copiar como de restaurar, si detectáis cualquier fallo, podéis avisar en los comentarios para poder corregirlo cuanto antes.
Esta copia que se ha creado no es solo de la configuración, se trata de un sistema completo que arrancaría igual que si fuera la misma SD en el momento que hiciste la copia, por lo que si se rompe físicamente la SD, se corrompe o falla a nivel de sistema, es posible copiarlo en una SD de igual tamaño o superior para poder arrancar el sistema de nuevo sin mayores contratiempos.
IMPORTANTE: Con el fin de ayudaros de una forma más directa, he creado un grupo en Telegram de Home Assistant en Español donde podemos ayudarnos todos así como evitar que os quedéis atascados, si tenéis Telegram podéis pulsar aquí para uniros y si no lo tenéis, os recomiendo que os lo instaléis ya que lo usaremos en el tutorial para notificarnos.