Journal HOW-TO : backup d'un système Linux

Posté par  .
Étiquettes :
0
28
mar.
2003
1/ Prérequis

- Un CD d'install de n'importe quelle distribution (ce procédé a été testé avec un CD Debian et un CD Mandrake, mais il devrait s'appliquer sans accroc avec un CD Red Hat).
- Un (ou plusieurs) media de sauvegarde : CD-vierge, bande DAT.

Note : cette procédure a été testée sur un système simple avec un disque dur IDE "classique". Je ne garantis pas son fonctionnement sur un système utilisant du RAID et/ou des disques SCSI (mais rien ne vous empêche de la tester et de me tenir informé).

2/Installation du système

Je ne parlerais pas de l'installation du système en elle-même, ce n'est pas le but de ce document. Sachez simplement que le système doit OBLIGATOIREMENT avoir une partition /boot. Cette procédure a été testée avec le partitionnement suivant :

/dev/hda1 -> swap (256Mo)
/dev/hda2 -> /boot (32Mo)
/dev/hda3 -> / (128Mo)
/dev/hda5 -> /usr (1300Mo)
/dev/hda6 -> /home (3000Go)



Le back-up du système doit être fait après la dernière manipulation effectuée sur le noyau. Le fait de recompiler ou patcher le noyau vous obligera à refaire un back-up.

3/Back-up

Avant de se lancer, il faut s'assurer que l'on dispose de suffisament d'espace disque. Sachez que l'on peut stocker l'archive sur la partition à sauver mais cela n'est pas recommandé. Personnellement, je construit l'archive dans /dev/hda6, à vous d'adapter vôtre procédure en conséquence.

Nous avons plusieurs options pour effectuer la sauvegarde :

- Compressé ou non. Une sauvegarde compressé occupe moins d'espace disque mais prend plus de temps à traiter. Recommandé pour les systèmes dont la taille est supérieure à 800Mo (ce qui donnera une archive non compressée de plus de 700Mo), lorsque l'on souhaite stocker l'archive sur un CD de 700Mo. A noté qu'au dela de 1.5 Go, on peut être à peu sûr que l'archive compressée occupera plus de 700Mo.
- En simple ou multi-volume. On optera pour une sauvegarde multi volume lorsque l'archive dépasse la capacité d'un média, afin de pouvoir stocker la sauvegarde sur plusieurs CDs par exemple.

A vous d'adopter une stratégie de sauvegarde en fonction de votre système. Je vous donne mon exemple :

Mon système "pése" 740Mo. J'ai opté pour un simple volume non compressé, j'ai donc obtenu une archive de 625Mo que j'ai pu stocké sur un CD.

Vous avez défini votre stratégie de sauvegarde? Nous sommes donc prêts!

-Démarrage sur un CD d'install. Pour l'exemple j'ai pris un CD Debian, mais le test avec un CD de Mandrake a été tout aussi concluant.
-Accéder à un terminal. Pour cela il faut démarrer en mode "rescue" (Mandrake, Red Hat) ou lancer l'installation et partir directement dans "Go to Console" (Debian)
-créer les répertoires "hôtes" qui vont accueillir nos partitions. N'oubliez pas que vous démarrez sur un RAMdrive.
mkdir /mnt
mkdir /mnt/root
mkdir /mnt/root/usr
mkdir /mnt/target

-Monter les partitions systèmes à sauvegarder (sans /boot!)
mount /dev/hda3 /mnt/root (/dev/hda3 correspondant à /)
mount /dev/hda5 /mnt/root/usr (/dev/hda5 correspondant à /usr)

-Monter la partition "hôte" sur laquelle nous allons stocker notre sauvegarde
mount /dev/hda6 /mnt/target (/dev/hda6 correspondant à /home)

et là on attaque les choses sérieuses :

-Archiver le contenu de /mnt/root

tar cPf /mnt/target/system-backup.tar /mnt/root

L'option P permet de garder les permissions et les dates des fichiers. Voici l'équivalent compressé :

tar czPf /mnt/target/system-backup.tgz /mnt/root

Une fois la sauvegarde terminée on teste l'archive :

tar tf /mnt/target/system-backup.tar

La liste des fichiers ainsi que leurs propriétés (droits, dates, etc ... ) devrait défiler.

La sauvegarde est prête à être stockée sur un media...

4/ Restauration

Pour faciliter la restauration, je vous recommande fortement de rédiger un script dont voici un exemple :

#!/bin/sh
#restore.sh : restauration automatique d'un systeme linux

#On formate les partitions

mkfs.ext2 -j /dev/hda3
mkfs.ext2 -j /dev/hda5

#création des répertoires hotes

mkdir /mnt
mkdir /mnt/root
mkdir /mnt/root/usr

#On monte les partitions

mount /dev/hda3 /mnt/root
mount /dev/hda5 /mnt/root/usr

#decompression de l'archive

cd /; tar xf /mnt/cdrom/system-backup.tar

#On est propre : on demonte les partitions avant de rebooter

umount /dev/hda3
umount /dev/hda5

init 6

exit 0


Ce script doit être placé à la racine du CD de sauvegarde (dans le cas ou le média de sauvegarde est un CD, dans le cas d'une bande, il faudrait copier les deux fichiers sur une partition). Voici la marche à suivre pour restaurer en utilisant le script :

mkdir /cdrom
mount /dev/hdb /cdrom (Si votre lecteur de CDROM est /dev/hdb)
/cdrom/restore.sh

A la fin la machine repart, comme neuve.

----

Je viens de rediger ce howto apres avoir teste sur ma machine et ca marche. Mais je souhaite l'ameliorer, notamment remplacer le CD d'install par un CD de boot maison.

D'avance merci a ceux qui souhaitent y apporter des ameliorations.
  • # Re: HOW-TO : backup d'un système Linux

    Posté par  . Évalué à 3.

    /dev/hda6 -> /home (3000Go)
    Waaaaaa t'en as de la palce toa :)

    Allé on corrige: /dev/hda6 -> /home (3000Mo) et -1 ;)
    • [^] # Re: HOW-TO : backup d'un système Linux

      Posté par  . Évalué à 1.

      Oups pardon! bah merci pour la première amélioration! ;)
      • [^] # Re: HOW-TO : backup d'un système Linux

        Posté par  . Évalué à 2.

        simple question : dans une optique serveur le / a 128 Mo ca me parait un peu juste, alors que dans une optique workstation c'est le /usr de 1,3Go qui me parait limite.

        C'est vraiment une config que tu utilise ou c'est la juste pour tester les back-up/restore ?

        Kha
        • [^] # Re: HOW-TO : backup d'un système Linux

          Posté par  . Évalué à 2.

          C'est une config que j'utilise, sous Debian Testing pour une workstation "limitée" : mon système (/ + /usr) "pése" réellement moins de 800Mo ce qui me suffit largement pour ce que j'en fait (j'utilise essentiellement Gnome, Galeon, Bluefish, Xmms et Evolution, kdelibs n'a pas sa place sur ma babasse :P). Evidemment, on aurai pu imaginer un partitionnement plus proche des config "modernes". Mais J'AIME mon thinkpad et je veux le faire savoir ;)

          >dans une optique serveur le / a 128 Mo ca me parait un peu juste

          Tu m'étonnes! Voici le partitionnement de mon serveur (Debian Stable, il fait passerelle/firewall, Apache PHP/Mysql et Samba)

          swap -> 128Mo
          / -> 400Mo
          /var -> 2500Mo

          C'est tout, et il tourne au poil!
  • # Re: HOW-TO : backup d'un système Linux

    Posté par  (site web personnel) . Évalué à 1.

    -Accéder à un terminal. Pour cela il faut démarrer en mode "rescue" (Mandrake, Red Hat) ou lancer l'installation et partir directement dans "Go to Console" (Debian)

    ou un bete Alt-F2 depuis n'importe lequel de ces systemes .. enfin pour redhat et mandrake ct le cas pdt un momment je doute que cela ai change et pour debian c tjrs vrai.

    pour le boot sur disquette/cd d'install lors de l'archivage je vois pas trops l'interet
    si c pour ce que je pense un bete

    tar cvPylf /dest/system-backup.tar / /usr

    suffira (-l == --one-file-system)

    > Sachez simplement que le système doit OBLIGATOIREMENT avoir une partition /boot.
    pareil si c pour ne pas copier le contenu de /boot
    un --exclude=boot suffirait meme s'il est dans le meme fs que /
    tu peut meme te faire un fichier contenant la liste de ce que tu veut sauvegarder
    sinon ne pas sauvegarder /boot pe dommage (pratique pour recuperer le kernel qui marchait a l'epoque) si tu utilise lilo il suffit de rajouter un appel a lilo a la fin du script
    si tu utilise grub bein y a besoin de rien :)
    • [^] # Re: HOW-TO : backup d'un système Linux

      Posté par  . Évalué à 1.

      J'évites /boot pour la raison suivante : si tu l'inclus dans l'archive, lilo se vautre au reboot de la machine. Et on ne peut pas lancer lilo avec un simple CD d'install (J'ai essayé avec le CD Mdk et Debian).

      Si vraiment on n'exclut pas /boot :

      Reboot sur le CD d'install.

      Booter en mode rescue en montant la partition (par exemple rescue root=/dev/hda3), et lancer lilo une fois qu'on a la main.

      En tout cas, merci pour ta contribution. :)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.