Linux sauvegarder et restaurer son système

I. Présentation

Lorsque l'on utilise un système Linux, il peut être intéressant d'être en capacité de restaurer son système après un incident, ou une mise à jour qui s'est mal passée. Dans ce tutoriel, nous allons voir comment sauvegarder et restaurer la partie système de son OS Linux.

Dans le cadre du tutoriel, je suis dans le cas où mon système est sur une partition "/" et mes données sont sous une autre partition "/data". Je vais ici présenter le cas dans lequel on souhaite sauvegarder et restaurer tout l'espace "/". Pour cela, nous n'utiliserons pas d'outils spécifiques si ce n'est ceux natifs à la plupart des systèmes Linux.

Nous allons en effet utiliser la commande "tar" pour faire une archive du système que nous pourront alors stocker sur une clé USB ou un espace de stockage réseau, facilement disponible en cas de besoin de restauration.

A titre d'exemple, ce genre de restauration va par exemple vous être d'un grand secours si vous avez supprimé par erreur un dossier crucial de votre système  comme /etc ou /usr, ou alors si vous avez eu une mise à jour qui s'est mal passée sur votre système.

II. Sauvegarder son OS Linux

Dans un premier temps, il nous faut sauvegarder notre système, nous utilisons pour cela la commande "tar" avec certaines de ses options.

A. La sauvegarde

Dans un premier temps, nous allons effectuer notre sauvegarde en local sur l'OS sauvegardé. en tant que "root", je me positionne par exemple dans le "/root"

cd /root

Je vais ensuite déclencher la commande de sauvegarde du système. Attention, assurez vous d'avoir au moins 50% de votre disque dur de libre. Si ce n'est pas le cas, je vous recommande d'utiliser un périphérique de stockage branché en USB par exemple, positionnez vous alors dans ce périphérique pour déclencher la commande de sauvegarde :

tar cvpjf backup.tar.bz2 --exclude=/proc --exclude=/lost+found --exclude=backup.tar.bz2 --exclude=/mnt --exclude=/sys --exclude=/boot /

Ici, je vous doit quelques explications par rapport à cette commande. Tout d'abord, vous l'aurez compris, elle va créer une archive du système dans le fichier "backup.tar.bz2". Voici le détaille des options utilisées :

  • "-c" : Permet de créer une nouvelle archive
  • "-v" : Afficher de manière détaillée la liste des fichiers traités, cela permet de suivre l'avancement de la création de l'archive
  • "-p" : Permet de préserver les permissions qui sont sur chaque fichiers, ce qui est très utile en cas de restauration
  • "-j": Spécifier la création au format bzip2
  • "-f" : Permet de spécifier le nom du fichier archive de destination

Nous allons ensuite passer plusieurs fois le paramètre "--exclude=" qui permet d'exclure de la construction de l'archive certains répertoires. Dans mon cas par exemple, je rajouterais "--exclude=/data", on fini ensuite par spécifier la racine "/" qui est ce qui va être sauvegardé. J'ai également pris pour habitude d'exclure le dossier "/boot", car la restauration du dossier "/boot" sur un système qui n'a pas de mal à démarrer perturbe le boot, ce qui aggrave le problème plus qu'autre chose.

Si vous avez des problème dés le démarrage de votre machine, je vous conseille de réinstaller votre grub grâce à ce tutoriel : Réinstaller le grub Linux à partir d'un LiveCD

L'exécution de cette commande peut prendre quelques minutes en fonction de la taille de votre système.

B. Le stockage

Le stockage de l'archive est ici important. Dans la plupart des cas, il est plus qu'évident qu'il faille stocker cette archive dans un autre espace de stocke que le poste sur lequel elle a été créée. Cela simplement pour prévenir un endommagement de l'archive en cas de mauvaise manipulation. Je vous conseil trois  moyens de stockages, généralement à disposition de tous :

  • La clé USB
  • Le NAS
  • Le disque du externe

Quel que soit le moyen de stockage, votre système entier ce situe maintenant dans un simple fichier, transportable et entreposable facilement. Pour ma part, je ferais le test de restauration depuis une clé USB. Je fait donc une copie de mon système sur ce média.

III. La restauration

Dans le pire des cas, et si votre système est vraiment mal en point, il est toujours possible de le restaurer grâce à la sauvegarde faite précédemment. Pour cela, il est recommandé de disposer :

  • D'un LiveCD ou Live USB pour booter sur un OS complet en mode live et ainsi accéder aux partitions du système endommagé
  • Du fichier "backup.tar.bz2" produit précédemment, disponible sur un espace de stockage (USB, réseau, ...) et prêt à être utilisé.

linux-restaurer-backuper-01Dans un premier temps, tentons donc depuis une distribution Live Linux. Après avoir booté sur mon système, je me retrouve avec un terminal et exécute la commande suivante en tant que root pour voir les partitions détectées :

fdisk -l

Résultat  :

linux-sauvegarder-restaurer-01

Ici, nous voyons donc deux disques :

  • Le disque /dev/sda
  • Le disque /deb/sdb

Le disque "sda" est donc le disque de mon système Linux, qui se caractérise notamment par la présence d'une partition "swap" (sda5), ma partition système étant "/dev/sda1". La clé USB, elle, correspond à /dev/sdb1.

Le principe étant de décompresser ce qui est stocké dans ma clé USB vers la partition Linux (/dev/sda1), il nous faut maintenant monter les deux partitions sur notre système Live Linux pour effectuer l'opération, rien de plus simple !

On commence par préparer deux répertoires pour notre montage, puis on effectue le montage :

mkdir /mnt/OS
mkdir /mnt/USB
mount /dev/sda1 /mnt/OS
mount /dev/sdb1 /mnt/USB

Une fois que nos  montages sont prêt, il ne reste plus qu'à effectuer la décompression de notre archive vers notre système Linux, autrement dit, on procède à la restauration !

 tar xvpfj /mnt/USB/backup.tar.bz2 -C /mnt/OS

Ici, l'option "-C" permet de spécifier le répertoire de destination lors de la décompression de l'archive, on pointe donc ici vers le montage de notre système.

On pourra ensuite recréer les dossiers non sauvegardés :

mkdir /proc
mkdir /mnt
mkdir /sys

Si vous effectuez votre restauration depuis un NAS ou un autre espace de stockage en réseau, je vous conseille d'effectuer la même manipulation en montant votre partage directement sur votre système Live.

Si votre système reste stable et n'a pas de mal à démarrer, dans le cas ou vous souhaitez restaurer son état depuis la machine elle même (en local), il suffit d'exécuter la commande suivante (après avoir monté le clé USB contenant le backup dans /mnt/USB dans mon cas) :

 tar xvpfj /mnt/USB/backup.tar.bz2 -C /

Ici, le système va se restaurer lui même. Les dossiers supprimés et les fichiers modifiés seront donc restaurés.

 

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Mickael Dorigny

Co-fondateur d'IT-Connect.fr. Auditeur/Pentester chez Orange Cyberdéfense.

Nombre de posts de cet auteur : 521.Voir tous les posts

13 thoughts on “Linux sauvegarder et restaurer son système

  • Hello,

    Ta commande principale est fausse, une erreur de copier/coller ? Il manque pas mal de choses.

    Tcho !

    Répondre
    • Lol autant pour moi ça fonctionne bien.

      Tcho !

      Répondre
  • Bonjour,

    Je me disais, si je veux installer un linux sur une autre machine, mais que j’ai cette sauvegarde zip. Est ce que si je fais ton tuto, j’aurais un nunux tel que ma sauvegarde avec les installations et tout et tout ?

    En fait je cherche presque a copier un linux d’une machine a une autre. Mais je trouve pas de bon tutos :S

    Merci pour votre aide !

    Répondre
  • Très bon Tuto !

    Perfectionniste et fainéant, j’y ai ajouté un fichier trace supléant à ma mauvaise vue (1) (défilement à l’écran) et à ma mémoire (1). Utile si restauration ciblée d’un ou quelques fichiers. Pas besoin de tar xvf… pour lister le contenu de l’archive ) :

    tar cvpjf backup.tar.bz2 –exclude=/proc –exclude=/lost+found –exclude=backup.tar.bz2 –exclude=/mnt –exclude=/sys –exclude=/boot / 2>&1 | tee backup.trc

    et merci !

    (1) Dû à l’age du retraité …

    Répondre
  • Bonjour, merci pour ce Tuto très utile.
    Lors de la création de la sauvegarde, alors que tout semblait bien se passer, TAR s’arrête avec le message suivant :
    tar: Arrêt avec code d’échec à cause des erreurs précédentes

    Quelle bêtise ai-je commise et que je n’ai pas vu passer …
    Par ailleurs, dans la commande initiale ne convient-il pas de préciser un –exclude concernant le répertoire dans lequel va être écrit le fichier TAR.BZ2 ?
    Ou bien, est-ce le paramètre –exclude=backup.tar.bz2 (dans l’exemple) qui réalise la fonction ?
    Merci par avance.
    Encore un Perfectionniste et fainéant, et largement Grand-Père

    Répondre
  • Bonjour,

    Comment limiter la sauvegarde au seul disque système svp?
    Cette commande va chercher sur tous mes disques.

    Peut-on faire –exclude=/dev/sdc1 –exclude=/dev/sdb1, etc etc ??

    Comment faire pour plutôt inclure uniquement le disque système SVP?
    Du genre -only=/

    Merci!

    Répondre
  • quel peut être le poids d’un fichier backup (de restauration) dans le cas d’une restauration de système ?

    Répondre
  • Il n’y a pas besoin de formater la partition système avant de décompresser la sauvegarde dedans? Les fichiers sont-ils automatiquement écrasé?

    Répondre
  • Bonjour et merci du tuto

    Je viens de lancer une sauvegarde du système et j’ai des messages « socket ignoré ».

    Est-ce que ça peut avoir des conséquences sur la restauration.

    Répondre
    • Est ce que yaurai juste une commande pour restaurer mais pas sauvegarder svp?
      Merci

      Répondre

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.