Journal Howto : backup d'un systeme Linux 1.2

Posté par  .
Étiquettes :
0
10
avr.
2003
En voici une version revue et corrigée. Le partitionnement est plus simple, et on peut sauvegarder de deux manières : a chaud ou a partir d'un CD d'install.

1/ Prérequis

- De préférence, 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). Il est possible d'effectuer la sauvegarde "à chaud", mais il arrive que la machine freeze en rentrant dans /dev. Pour éviter cela (et un reboot forcé), il est préférable d'effectuer la sauvegarde en démarrant un autre système que celui à sauver, un CD d'install ou une disquette de boot.
- 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. Il est néanmoins recommandé d'avoir une partition /boot surtout si vous utilisez lilo. Cette procédure a été testée avec le partitionnement suivant :

/dev/hda1 -> swap (256Mo)
/dev/hda2 -> / (1500Mo)
/dev/hda3 -> /home (3000Mo)

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 /home, à vous d'adapter votre 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!

Sauvegarde a partir d'un CD d'install
-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). Sinon il est possible d'accéder à une console en tapant ALT+F2.
-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/target

-Monter les partitions systèmes à sauvegarder (la partition / en dernier)

mount /dev/hda2 /mnt/root (/dev/hda2 correspondant à /)

-Monter la partition "hôte" sur laquelle nous allons stocker notre sauvegarde

mount /dev/hda3 /mnt/target (/dev/hda3 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 (en zlib)
ou
tar cjPf /mnt/target/system-backup.tar.bz2 /mnt/root (en bzip2)

Sauvegarde "à chaud"
Moins longue à préparer, mais moins sûre (n'oubliez pas que le kernel peut freezer lorsque tar passe dans /dev, cela m'est arrivé sur une des deux machines de test).
Pas de préliminaires, archivage direct :

tar cPlf /home/system-backup.tar /

On peut aussi compresser l'archive avec les options z (zlib) et j (bzip2). Vous pouvez tout à fait tenter ce mode de sauvegarde avant de sauvegarder avec un CD. Sachez qu'il est néanmoins préférable de ne pas effectuer de taches importantes pendant ce temps-là, des fois que le passage dans /dev soit fatal. Rassurez-vous : si la machine freeze, elle repart néanmoins sans problème en la redémarrant de force.

Après la sauvegarde

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

tar tf system-backup.tar | more

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

Concernant la restauration, je déconseille vivement de le faire "à chaud", sachant qu'il va falloir formater une partition systeme (ou plusieurs). Nous ferons donc une restauration en démarrant sur un CD d'install.
A noter : si vous n'avez pas de partition /boot et que vous utilisez Lilo : vous avez de fortes chances de voir des "99" partout au démarrage. Pas de panique : il suffit de le relancer à partir d'un CD d'install, et la machine repart. Les utilisateurs de Grub n'auront pas ce problèmes, ainsi que ceux qui ont une partition /boot.

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 la partition

mkfs.ext2 -j /dev/hda2

#création des répertoires hotes

mkdir /mnt
mkdir /mnt/root

#On monte la partition

mount /dev/hda2 /mnt/root

#decompression de l'archive

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

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

umount /dev/hda2

reboot

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 avant de décompresser). 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.
---
Merci à Benoit Plessis pour ses améliorations.

Suivre le flux des commentaires

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