Sauvegarde et clonage d'un système

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche

Pour suivre ce document, il est préférable de bien être à l'aise avec certaines notions:

  • La ligne de commande
  • La Gestion des droits ( chmod )
  • La gestion des répertoire

Sauvegarde

Il est bien entendu que pour tout ce qui suit, 'user' sera remplacé par votre véritable nom d'utilisateur.


Sauvegarde entière excluant les répertoires temporaires

  • Créer un fichier 'exclure' dans lequel seront portées les lignes suivantes
/home
/cdrom
/dev
/lost+found
/media
/mnt
/proc
/sys
/tmp
  • Sauvegarder ce fichier dans /root/
  • Créer un répertoire /home/controle/, puis un second /home/controle-user/. Ces deux répertoires, ne sont pas indispensables mais peuvent s'avérer pratiques en cas de fausse manœuvre. En effet, ils collectent les anciens répertoires/fichiers qui ont subi des modifications depuis la dernière sauvegarde 'rsync'.
  • Pour la partition qui va accueillir nos sauvegardes, il est préférable, quand on le peut, de l'installer sur un Disque Dur(HD) différent (chez moi, un HD externe, relié en Sata). Ce n'est toutefois pas indispensable. Par contre, sa dimension devra être suffisante ( par exemple 25 Go )
  • Dans cette partition de sauvegarde, pour chaque machine à sauvegarder, on va créer deux répertoires, que l'on nommera, pour cet exemple, "sauve" & "sauve-user".
  • Je ne m'attarde pas sur les créations de partition et de répertoire, d'autres tutos les ayant déjà traitées.
  • Pour l'exemple, nous placerons cette partition en 'sdb1'


  • On passe maintenant à la pratique, en admettant que le HD où se trouve la partition de sauvegarde est opérationnel :
  • Monter sdb1 sur /mnt/
user@debian:~ # mount -t ext3 /dev/sdb1 /mnt 
  • Inutile la première fois (ils sont vides), il conviendra, par la suite, de vider les répertoires de contrôle : user@debian:~ # rm -r /home/controle/* /home/controle/.
user@debian:~ # rm -r /home/controle-user/* /home/controle-user/.*
  • Sauvegarde de '/'
user@debian:~ # rsync -av --del --backup --backup-dir=/home/controle/ --exclude-from=/root/exclure / /mnt/sauve

Sauvegarde de /home/user

user@debian:~ # rsync -av --del --backup --backup-dir=/home/controle-user/ /home/user/ /mnt/sauve-user

Explications

  • -a: conserve toutes les informations sur les fichiers, comme les droits (chmod), la date de modification, etc.
  • -r: sauvegarde aussi tous les sous-répertoires qui se trouvent dans le répertoire à sauvegarder.
  • -v: mode verbeux, affiche des informations détaillées sur la copie en cours.
  • --del: efface les répertoires/fichiers qui ont subi des modifications depuis le dernier traitement 'rsync'.
  • --backup: conserve ces mêmes répertoires/fichiers et les place où lui indique la commande suivante.
  • --backup-dir: chemin où seront placés les répertoires/fichiers effacés par le traitement actuel
  • --exclude-from: indique le chemin du fichier qui mentionne les répertoires ne devant pas être pris en compte dans le traitement actuel.
  • Ensuite, et après un espacement, vient la partie qui doit être traitée : '/' pour la première ligne & '/home/user/', pour la seconde.
  • Enfin, et après un espacement, vient le chemin du répertoire où sera conservée la sauvegarde : '/mnt/sauve' & '/mnt/sauve-user'.

Voilà la sauvegarde effectuée, il ne reste plus qu'à démonter /mnt.


Partant du fait que deux précautions valent mieux qu'une, j'ai créé un clone de ma Sid, simple et pouvant être facilement mis à jour.

Il y a plusieurs méthodes pour cloner une Debian mais puisque nous avons à disposition les sauvegardes hebdomadaires avec 'rsync', pourquoi ne pas nous en servir, pour la création du clone et pour ses mises à jour.

Création du clone

  • Créer une partition nouvelle (le clone) sur le HD. Cette partition devra avoir sensiblement la même taille que celle qui abrite notre Sid fonctionnelle, ou au moins une taille suffisante (je pense que 10 Go est un minimum). Bien sûr, cette partition nouvelle sera de même type (ext3 chez moi).

En ne considérant que les seules partitions dont il est question ici, on en compte quatre:

  • "Sid-1" (notre Sid fonctionnelle) qui sera, pour l'exemple, installée sur 'sda1'
  • "Sid-2" (le clone), sur 'sda2'
  • /home (commune), sur 'sda3'
  • Partition de sauvegarde, dont on a parlé en Première partie, sur 'sdb1'
  • Rendre opérationnel le HD qui abrite la sauvegarde & monter la partition 'sdb1' sur /mnt/
# mount -t ext3 /dev/sdb1 /mnt 
  • Créer un point de montage (répertoire) temporaire du clone :
# mkdir /mnt/clone
  • Monter la partition 'sda2' sur /mnt/clone/
# mount -t ext3 /dev/sda2 /mnt/clone
  • Cloner '/' :
# rsync -av /mnt/sauve /mnt/clone
  • Patienter car ça peut être assez long.


Pour que la fabrication du clone soit complète, il faut vérifier la présence de tous les répertoires qui sont exclus des sauvegardes: /dev, /proc, /sys, /media/cdrom0, /home(même si celle-là n'est pas exploitée) et ceux qui sont portés dans le 'fstab'. Si certains sont absents, il convient de les créer, vides, manuellement.

La /home étant commune, il est inutile de la cloner.

  • Modifier le 'fstab' du clone qui mentionne (logiquement) la même partition que l'original pour le '/'. celle-là deviendra donc 'sda2'. Depuis que les partitions sont nommées par leur UUID la modification sera plus importante.
  • Démonter /mnt & /mnt/clone
  • À ce niveau, il faut updater Grub, de façon à ce qu'il prenne en compte cette nouvelle distribution.
  • Rebooter et tenter une première connexion du clone 'sda2'.

Il est possible que le chargement soit interrompu au gestionnaire de connexion (GDM, KDM, etc.). Dans ce cas, un reboot en 'single' et l'entrée de:

# chmod 1777 /tmp

devrait suffire.

Mise à jour du clone

Prenons pour exemple une mise à jour hebdomadaire, le lundi.

Si aucun problème n'est intervenu dans la semaine précédente sur la Sid-1, et après que cette dernière ait été sauvegardée sur 'sdb1', mettre à jour le clone (ne pas oublier de brancher le HD qui héberge les sauvegardes) :

# mount -t ext3 /dev/sdb1 /mnt 
# mount -t ext3 /dev/sda2 /mnt/clone

Pour éviter que la partition du clone ne soit modifée, Créer un fichier /root/exclure-clone dans /root/ , dans lequel on portera /etc/fstab

# rsync -av --del /mnt/sauve/* mnt/sauve/.* --exclude-from=/root/exclure-clone /mnt/clone

Ensuite, démonter sdb1 et sda2.

Récapitulation des opérations "sauvegarde & clonage" hebdomadaires

  • Sauvegarde: Première partie
  • Mise à jour du clone : Troisième partie
  • Mise à jour de la Sid-1 : update && upgrade

En respectant cet ordre, vous aurez le clone de votre Sid fonctionnelle testée pendant une semaine. Si, suite à sa dernière MAJ, Sid-1 avait un problème, il vous serait toujours facile de la restaurer en suivant le même processus qu'en -C), en modifiant les partitions.

Remerciements à François (fran.b) pour l'aide.

Écrit par Ricardo, adapté et annoté pour le wiki par L0u!$ 4 mars 2010 à 14:58 (UTC)