Sauvegarder votre Raspberry

Cloner la carte SD ou micro-SD du Raspberry Pi, c’est très pratique d’autant plus lorsqu’on a déjà fait la malheureuse expérience des cartes bons marchés qui plantent, ou des alimentations sous dimensionnées pour votre utilisation. Je vous propose une solution efficace pour sauvegarder votre Raspberry.

Un contexte particulier

On commence un nouveau projet, on se lance sans trop réfléchir, avec une carte micro SD de 4 GB (4 Giga Octets) et au bout de quelques jours on se dit qu’une carte de 16 GB aurait été un choix plus judicieux. Pire encore, vous aviez prévu une carte micro-SD de 64 GB bon marché, et vous préférerez avec un peu de recul utiliser une carte de meilleure qualité.
Vous n’avez que des 8 ou 16 GB, ce qui va bien parce que finalement, 8 GB c’est largement suffisant.
Mais voilà, entre temps, vous avez pas mal avancé sur ce projet, passer des nuits complètes à configurer aux petits oignons votre installation et vous ne voulez pas perdre tout ce travail. Comment faire?

Présentation de rpi-clone

Je voulais donc sauvegarder ma carte micro-SD de façon efficace, et surtout, que cette sauvegarde soit fonctionnelle (ce qui n’est pas toujours le cas avec certaines solution). Au bureau, on appelle cela un PRA, un plan de reprise de l’activité !!!
Donc en cherchant un peu, je suis tombé il y a plusieurs mois sur le dépôt GitHub de Bill WILSON qui possède un merveilleux outil, un script bash qui a pensé a tout, enfin, Bill, pas le script.

Objectif de rpi-clone

rpi-clone est un script shell qui va sauvegarder (en fait, il fera un clone en utilisant dd et rsync) le système de fichiers d’un Raspberry Pi à chaud (c’est-à-dire en fonctionnement) sur une autre carte micro-SD connectée sur un port USB du Raspberry Pi.
Particularité du script : il peut faire des sauvegardes de cartes SD ou micro-SD sur des cartes de taille différente (inférieure ou supérieure) à la carte sur laquelle le Raspberry Pi a démarré.

Attention, rpi-clone doit être exécuté en tant que root sur un système où  le programme rsync a été installé (sudo apt-get install rsync).

Tout est prévu dans ce script, même le petit message de confirmation à la fin pour démonter la carte sur laquelle le clone a été réalisé, et surtout, la possibilité d’utiliser cette carte pour d’autre Raspberry Pi.
Je m’explique… il suffira de monter la seconde partition de votre sauvegarde, d’éditer les fichiers de configuration, et vous avez une clone pour une nouvelle Raspberry Pi :

/etc/hostname
/etc/hosts
/etc/network/interfaces

Vous l’aurez compris, il ne s’agit pas de faire une image, mais bien de faire un clone utilisable.

Installer rpi-clone

Vous trouverez rpi-clone sur le ​​github de Bill. Vous avez 2 solutions : soit vous optez pour le téléchargement manuel (celle que je vous propose), soit vous utilisez le programme git.

$ wget https://github.com/billw2/rpi-clone/archive/master.zip
$ unzip master.zip
$ cd rpi-clone-master
$ cp rpi-clone /usr/local/sbin

 Si vous êtes allergique à l’anglais, je vous propose une petite version que j’ai francisée avec l’accord de Bill.

Utilisation de rpi-clone

Lancez rpi-clone en tant que root.

>>> ATTENTION : toutes les données de votre carte seront écrasées !!! <<<

usage: rpi-clone sdN {-f|--force-initialize} {-v|--verbose} {-x}
    Example:  rpi-clone sda
    -v - list all files as they are copied.
    -f - force initialize the destination partitions
    -x - use set -x for very verbose bash shell script debugging

    Clone (rsync) a running Raspberry Pi file system to a destination
    SD card 'sdN' plugged into a Pi USB port (via a USB card reader).
    rpi-clone can clone the running system to a new SD card or can
    incrementally rsync to existing backup Raspberry Pi SD cards.

    If the destination SD card has an existing  partition 1 and a
     partition 2, rpi-clone assumes (unless using the -f option)
    that the SD card is an existing backup with the partitions
    properly sized and set up for a Raspberry Pi.  All that is needed
    is to mount the partitions and rsync them to the running system.

    If these partitions are not found (or -f), then rpi-clone will ask
    if it is OK to initialize the destination SD card partitions.
    This is done by a partial 'dd' from the running booted device
    /dev/mmcblk0 to the destination SD card /dev/sdN followed by a
    fdisk resize and mkfs.ext4 of /dev/sdN partition 2.
    This creates a completed  partition 1 containing all boot
    files and an empty but properly sized partition 2 rootfs.
    The SD card  partitions are then mounted and rsynced to the
    running system.

    The SD card destination partitions will be mounted on /mnt/clone.
    A log will be written to /var/log/rpi-clone.log.
    It's better to avoid running other disk writing programs
    when running rpi-clone.

    Version 1.2

Retour d’expérience

Voici donc un script à garder précieusement dans votre boite à outils, voire même à automatiser toutes les nuits. Ce qui est mon cas!! Tous les soirs, une sauvegarde de ma Jeedom est effectuée, au cas où une coupure de courant, ou une mise à jour casseraient ma configuration… .

A propos de Mehdi HAMIDA

Avec plus de 20 ans d’expérience dans la tech, je me suis spécialisé dans la gestion des données, le cloud (AWS, Snowflake) et l'architecture IT. Avant ça, j’étais expert technique et chef de projet sur des missions stratégiques. Je m'appelle Mehdi HAMIDA, et aujourd’hui, je partage simplement mes découvertes et connaissances à travers ce blog.

Lire aussi

Installer une VM Windows 11 sur Nutanix : guide pratique pour surmonter les obstacles

L’installation d’une VM Windows 11 sur Nutanix peut réserver quelques surprises, notamment des problèmes inattendus …

2 commentaires

  1. Hello
    Merci
    Comment faire pour automatiser la sauvegarde ?
    Merc

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *