fbpixel
Étiquettes : ,

Nous présentons ici une méthode pour faire une sauvegarde légère et restaurer un Raspberry Pi. Créer une sauvegarde, image de votre Raspberry Pi, est primordiale en cas de corruption de la carte SD ou défaut d’alimentation. Il arrive souvent sur les Raspberry Pi et autres ordinateur monocarte que la carte SD fasse défaut. Il faut donc faire une sauvegarde sous la forme d’un fichier image ou iso afin de pouvoir téléverser cette image sur une nouvelle carte SD et retrouver votre configuration.

Le problème est que la sauvegarde d’une image inclue toute la mémoire de la carte SD. Vous pouvez donc vous retrouver avec plusieurs fichiers de 32, 64 ou 128Gb.

Matériel

  • Raspberry Pi
  • Deux cartes SD
  • Une connexion internet

Méthode de sauvegarde d’OS

Il n’y a pas d’autre méthode aussi direct. La méthode que je vous propose consiste en différentes étapes mais vous permettra d’avoir une sauvegarde légère du Raspberry Pi et de pouvoir mettre à jour vos projets facilement.

La méthode consiste en ces différents points

  • Récupérer les informations de l’OS
  • Récupérer les info hardware (optionnel)
  • Récupérer les fichier de configuration
  • Récupérer les paquets installés
  • Récupérer les paquets Python installé

La liste n’est certainement pas complète mais avec cela, vous pourrez vous rapprochez d’une copie presque exact de ce que vous aviez

Nettoyer votre installation

sudo apt-get  --purge -y autoremove 

Vous pouvez aussi supprimer tous les logiciels dont vous ne vous êtes jamais servi

Créer un dossier de sauvegarde

Il peut prendre la forme que vous voulez. L’important est qu’il soit clair afin de vous y retrouver

  • RPiBckp
    • version
    • projects
    • config

Récupérer les informations de l’OS

Selon votre projet, il est important de connaitre la version de l’OS en effet suivant les paquets utilisées des problème de compatibilités peuvent se poser

cat /etc/os-release
cat /etc/os-release > /home/pi/RPiBckp/version/os-version.txt

Une autre information importante sont la version Kernel et configuration hardware

uname -a > /home/pi/RPiBckp/version/sys-version.txt
ls -l /lib/modules

N.B.: uname -r vous donne spécifiquement la version de Kernel. Vous pouvez retrouver le fichier d’installation dans la liste des firmwares

Récupérer les paquets installés

Pour avoir une liste des paquets installés, vous pouvez entrer la commande

dpkg --get-selections

Si vous souhaitez la liste des paquets avec le numéro de version

apt list --installed

N.B.: pour toute ces commandes vous pouvez utiliser grep pour filtrer votre recherche

Il est important de noter qu’il y a un certain nombre de paquets installés automatiquement et d’autre que vous avez installé selon votre besoin.

La liste des paquets installés automatiquement et manuellement s’obtient avec les commandes respectives

apt-mark showauto # paquets automatique
apt-mark showmanual # paquets manuel

Pour ma part, je conserve un fichier avec tous les paquets installés pour garder une trace avec toutes les versions

apt list --installed > /home/pi/RPiBckp/version/apt-list-installed.txt

un fichier avec les paquets installés manuellement

apt list --installed | grep -v automatic > /home/pi/RPiBckp/version/apt-list-manual.txt

et je créer le fichier avec seulement les nom pour lancer l’installation des paquets

apt-mark showmanual > /home/pi/RPiBckp/version/packages.txt

Je pourrai ensuite installer individuellement les bonnes versions si elles ne me conviennent pas.

Récupérer les paquets Python installés

python3 -m pip freeze
python3 -m pip freeze > /home/pi/RPiBckp/version/requirements.txt

Récupérer les fichiers de configuration

Certains fichiers de configurations peuvent être intéressant à récupérer notamment la configuration du wifi

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

cp /etc/wpa_supplicant/wpa_supplicant.conf /home/pi/RPiBckp/version/wpa_supplicant.conf

Créer un dépôt Git

Il peut être intéressant de créer un dépôt git pour chacun de vos projets soit pour la configuration d’un Raspberry Pi, soit pour un ensemble de script Python. Un projet sous git sera idéal pour faire évoluer vos projet notamment en terme de version de paquets et d’OS.

Une fois que vous avez récupéré tous les fichiers d’intérêts, il est temps de restaurer votre projet.

Installer une version de Raspbian

Vous pouvez utiliser le logiciel Raspberry Pi Imager

ou télécharger l’image désirée sur le site http://downloads.raspberrypi.org/raspbian/images/

N.B.: les versions trop anciennes d’OS peuvent ne pas être compatible avec les nouveaux matériels et avoir des soucis de sécurité

Installer une version de Kernel

Vous pouvez vérifier la version de Kernel installée avec la commande

ls -l /lib/modules

Pour installer une version spécifique de firmware du Raspberry Pi, vous pouvez retrouver la liste des firmwares à l’aide de leur numéro de version.

Vous pouvez ensuite copier le Git hash correspondant à la version désirée (ex: 5.10.63 : 64132d67d3e083076661628203a02d27bf13203c)

Et l’installer à l’aide de la commande:

sudo rpi-update <git_hash>

Exemple:

sudo rpi-update 2ef601a50b68eebeeb4dc3c6c525855961891be6

Attention: faites bien attention à la version que vous installez. La version de Kernel ne doit être modifiée que par des personnes expérimentées qui ont un soucis de compatibilité qui ne peut être résolue d’une autre manière.

Copier votre dossier de sauvegarde

Sur l’installation fraiche de Raspbian, vous pouvez copier votre dossier de sauvegarde et/ou cloner le dépôt Git. Vous pouvez ensuite installer les paquets et copier les fichiers de votre configuration précédente.

Installer les paquets requis

Il est possible d’installer un ensemble de paquet APT à partir d’un fichier texte contenant la liste des fichiers à installer

xargs -a packages.txt sudo apt-get install -y

Il est possible de faire la même chose pour installer les paquets Python

python3 -m pip install -r requirements.txt

Recopier les fichiers de configuration

Pour le fichier de configuration du wifi ou tout autre fichiervous pouvez utiliser la commande de copy ou de déplacement en mode super utilisateur (sudo)

sudo cp wpa_supplicant.conf /etc/wpa_supplicant/

Conclusion

Cette méthode ne permet pas d’obtenir une copie parfaite de votre projet mais elle permet de reproduire et de maintenir votre projet avec peu d’espace mémoire ce qui peut être un énorme avantage. Vous vous retrouverez ainsi avec un ensemble de fichier de configuration qui vous permettrons rapidement de restaurer une carte SD corrompue.

Si vous avez des idées de fichiers importants à sauvegarder ou d’autres méthodes pour restaurer une carte SD, n’hésitez pas à laisser un commentaire.

Sources