fbpixel
Etiquetas: ,

Aquí presentamos un método para hacer una copia de seguridad ligera y restaurar una Raspberry Pi. Crear una copia de seguridad, una imagen de tu Raspberry Pi, es esencial en caso de corrupción de la tarjeta SD o fallo de alimentación. En Raspberry Pi y otros ordenadores de placa única, la tarjeta SD falla a menudo. Por lo tanto, es necesario hacer una copia de seguridad en forma de una imagen o archivo iso para que pueda cargar esta imagen en una nueva tarjeta SD y recuperar su configuración.

El problema es que guardar una imagen incluye toda la memoria de la tarjeta SD. Así que puedes acabar con varios archivos de 32, 64 o 128 Gb.

Hardware

  • Raspberry Pi
  • Dos tarjetas SD
  • Conexión a Internet

Método de copia de seguridad del SO

No existe otro método tan directo. El método que te propongo consta de varios pasos pero te permitirá tener una copia de seguridad ligera de la Raspberry Pi y poder actualizar tus proyectos fácilmente.

El método consta de los siguientes puntos

  • Recuperar información del sistema operativo
  • Recuperar información de hardware (opcional)
  • Recuperación de archivos de configuración
  • Recuperar paquetes instalados
  • Recuperar paquetes Python instalados

La lista no es ni mucho menos completa, pero con esto puedes acercarte a una copia exacta de lo que tenías antes.

Limpieza de la instalación

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo apt-get --purge -y autoremove
sudo apt-get --purge -y autoremove
sudo apt-get  --purge -y autoremove 

También puedes eliminar los programas que nunca hayas utilizado.

Crear una carpeta de copia de seguridad

Puede adoptar la forma que quieras. Lo importante es que sea clara para que puedas orientarte.

  • RPiBckp
    • versión
    • proyectos
    • config

Recuperar información del sistema operativo

Dependiendo de su proyecto, es importante conocer la versión del sistema operativo, ya que pueden surgir problemas de compatibilidad en función de los paquetes utilizados.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
cat /etc/os-release
cat /etc/os-release > /home/pi/RPiBckp/versión/os-versión.txt
cat /etc/os-release cat /etc/os-release > /home/pi/RPiBckp/versión/os-versión.txt
cat /etc/os-release
cat /etc/os-release > /home/pi/RPiBckp/versión/os-versión.txt

Otro dato importante es la versión del kernel y la configuración del hardware.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
uname -a > /home/pi/RPiBckp/versión/sys-versión.txt
uname -a > /home/pi/RPiBckp/versión/sys-versión.txt
uname -a > /home/pi/RPiBckp/versión/sys-versión.txt
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ls -l /lib/modules
ls -l /lib/modules
ls -l /lib/modules

N.B.: uname -r te da específicamente la versión del Kernel. Puede encontrar el archivo de instalación en la lista de firmware

Recuperar paquetes instalados

Para obtener una lista de los paquetes instalados, puede introducir el comando

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dpkg --get-selections
dpkg --get-selections
dpkg --get-selections

Si desea la lista de paquetes con el número de versión

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
apt list --installed
apt list --installed
apt list --installed

N.B.: para todos estos comandos puede utilizar grep para filtrar su búsqueda

Es importante tener en cuenta que hay una serie de paquetes que se instalan automáticamente y otros que tú instalas en función de tus necesidades.

La lista de paquetes instalados automática y manualmente puede obtenerse con los comandos respectivos

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
apt-mark showauto # paquets automatique
apt-mark showmanual # paquets manuel
apt-mark showauto # paquets automatique apt-mark showmanual # paquets manuel
apt-mark showauto # paquets automatique
apt-mark showmanual # paquets manuel

Personalmente, guardo un archivo con todos los paquetes instalados para llevar la cuenta de todas las versiones.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
apt list --installed > /home/pi/RPiBckp/versión/apt-list-installed.txt
apt list --installed > /home/pi/RPiBckp/versión/apt-list-installed.txt
apt list --installed > /home/pi/RPiBckp/versión/apt-list-installed.txt

un archivo con los paquetes instalados manualmente

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
apt list --installed | grep -v automatic > /home/pi/RPiBckp/versión/apt-list-manual.txt
apt list --installed | grep -v automatic > /home/pi/RPiBckp/versión/apt-list-manual.txt
apt list --installed | grep -v automatic > /home/pi/RPiBckp/versión/apt-list-manual.txt

y creo el archivo sólo con el nombre para empezar a instalar los paquetes

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
apt-mark showmanual > /home/pi/RPiBckp/versión/packages.txt
apt-mark showmanual > /home/pi/RPiBckp/versión/packages.txt
apt-mark showmanual > /home/pi/RPiBckp/versión/packages.txt

Entonces podré instalar las versãos adecuadas individualmente si no me convienen.

Recuperar paquetes Python instalados

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
python3 -m pip freeze
python3 -m pip freeze
python3 -m pip freeze
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
python3 -m pip freeze > /home/pi/RPiBckp/versión/requirements.txt
python3 -m pip freeze > /home/pi/RPiBckp/versión/requirements.txt
python3 -m pip freeze > /home/pi/RPiBckp/versión/requirements.txt

Recuperación de archivos de configuración

Merece la pena recuperar algunos archivos de configuración, en particular la configuración wifi.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
cp /etc/wpa_supplicant/wpa_supplicant.conf /home/pi/RPiBckp/versión/wpa_supplicant.conf
cp /etc/wpa_supplicant/wpa_supplicant.conf /home/pi/RPiBckp/versión/wpa_supplicant.conf
cp /etc/wpa_supplicant/wpa_supplicant.conf /home/pi/RPiBckp/versión/wpa_supplicant.conf

Creación de un repositorio Git

Puede ser una buena idea crear un repositorio git para cada uno de tus proyectos, ya sea para configurar una Raspberry Pi o para un conjunto de scripts Python. Un proyecto git será ideal para actualizar tus proyectos, sobre todo en cuanto a actualizaciones de paquetes y SO.

Una vez recuperados todos los archivos de interés, es hora de restaurar el proyecto.

Instalación de una versión de Raspbian

Puede utilizar el software Raspberry Pi Imager

o descargue la imagen deseada del sitio http://downloads.raspberrypi.org/raspbian/images/

N.B.: Las versiones de SO demasiado antiguas pueden no ser compatibles con el nuevo hardware y presentar problemas de seguridad.

Instalación de una versión de Kernel

Puede comprobar el Kernel versão instalado con el comando

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ls -l /lib/modules
ls -l /lib/modules
ls -l /lib/modules

Para instalar una versión específica del firmware de Raspberry Pi, puedes encontrar la lista de firmwares por su número de versión.

A continuación, puede copiar el hash Git correspondiente a la versión deseada (por ejemplo, 5.10.63: 64132d67d3e083076661628203a02d27bf13203c).

E instalarlo usando el comando:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo rpi-update <git_hash>
sudo rpi-update <git_hash>
sudo rpi-update <git_hash>

Por ejemplo:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo rpi-update 2ef601a50b68eebeeb4dc3c6c525855961891be6
sudo rpi-update 2ef601a50b68eebeeb4dc3c6c525855961891be6
sudo rpi-update 2ef601a50b68eebeeb4dc3c6c525855961891be6

Advertencia: tenga cuidado con la versión que instala. La versión del Kernel sólo debe ser modificada por usuarios experimentados que tengan un problema de compatibilidad que no pueda resolverse de otra forma.

Copie su carpeta de copia de seguridad

En una nueva instalación de Raspbian, puede copiar su carpeta de copia de seguridad y / o clonar el repositorio Git. A continuación, puede instalar los paquetes y copiar los archivos de su configuración anterior.

Instale los paquetes necesarios

Es posible instalar un conjunto de paquetes APT a partir de un fichero de texto que contenga la lista de ficheros a instalar

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
xargs -a packages.txt sudo apt-get install -y
xargs -a packages.txt sudo apt-get install -y
xargs -a packages.txt sudo apt-get install -y

Puedes hacer lo mismo para instalar paquetes de Python

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
python3 -m pip install -r requirements.txt
python3 -m pip install -r requirements.txt
python3 -m pip install -r requirements.txt

Copiar archivos de configuración

Para el archivo de configuración wifi o cualquier otro archivo, puede utilizar el comando copiar o mover en modo superusuario (sudo)

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo cp wpa_supplicant.conf /etc/wpa_supplicant/
sudo cp wpa_supplicant.conf /etc/wpa_supplicant/
sudo cp wpa_supplicant.conf /etc/wpa_supplicant/

Conclusión

Este método no te dará una copia perfecta de tu proyecto, pero te permitirá reproducirlo y mantenerlo con muy poco espacio de memoria, lo que puede ser una gran ventaja. Terminarás con un conjunto de archivos de configuración que te permitirán restaurar rápidamente una tarjeta SD dañada.

Si tienes alguna idea sobre archivos importantes de los que hacer una copia de seguridad u otros métodos para restaurar una tarjeta SD, deja un comentario.

Fuentes