Sauvegarder sa Debian en vue d'une Réinstallation ou Reconstruction - Racine et Home séparés
- Moment partagé, Moment privilégié, ... . ^¿^ .
Avant propos
À mes tous débuts sous Debian, j'ai dû procéder à de multiples ré-installations.
Ce qui implique évidemment de refaire les install des paquets dont j'avais besoin, ainsi que leurs configurations.
Pertes de temps ? Oui et non, j'en ai tiré beaucoup de leçons.
Cependant, il était grand temps de faire quelque chose ... !!!
AMHA, vous êtes ici en quête de cette même sérénité!
Avertissement
- Ce tutoriel est spécifique à une installation standard, à savoir les partitions racine et home séparées.
- Son origine, ce fil dans Trucs et Astuces Restaurer un OS depuis une sauvegarde: /home séparée .
Mise en garde !
Ce tuto ne consiste pas en l'installation ou la configuration d'un paquet, d'une application x. Etc ...
Mais bien de manipulation de disques et partitions!
Il vous faut en avoir réellement conscience! Cela n'est pas sans risque ... s'il est utilisé à mauvaise escient !!!
Ne prenez pas ces Avertissements, Recommandations, et Mise en garde à la légère. Le bon fonctionnement de votre système en dépend !!!
Règles d'or
Root a tous les pouvoirs !!!!
2°) Identifier clairement les disques et partitions sans qu'aucun doute ne subsiste !
3°) Maîtriser un outil de partitionnement !
4°) Les appellations des disques et partitions cités dans ce tuto sont propres à mon installation !
Recommandations
Identifiez clairement les disques et partitions
:~# fdisk -l
:~# blkid
2° Déconnecter physiquement les disques internes/externes qui ne sont pas concernés par les opérations qui vont suivre.
Cela limitera d'autant plus, les éventuels cafouillages sur les partitions. (L'erreur est humaine!)
3°) Identifier votre disque dur source, prendre des notes.
4°) Arrêter de nouveau votre Debian. Hors Tension!
5°) Connecter le disque interne/externe qui recevra vos sauvegardes. Relancer la machine. En console root identifier celui-ci.
6°) Mêmes opérations si vous désirez utiliser un deuxième disque pour les sauvegardes.
Prenez des notes !
Notes : Dans le cas de deux disques connectés pour les sauvegardes, vous devriez obtenir après le dernier démarrage :
/dev/sda ### disque source
/dev/sdb ### premier disque des sauvegardes (interne/externe)
/dev/sdc ### deuxième disque des sauvegardes (interne/externe)
Sauf erreur de ma part.
Vous êtes à présent paré pour la suite ...
Pré-requis
- Si ce n'est pas déjà fait.
# aptitude install sudo
# aptitude install rsync
- Configuré par vos soins.
Remarques
Libre à vous d'opter pour une tâche cron ou autre ...
Avant d'aller plus loin
Je vous invite à lire ce tutoriel Script de double sauvegarde alternée afin d'en comprendre l'usage et l'utilisation.
Suite à cela, vous ferez un copier/(coller) dans son intégralité, du script de ricardo.
Avec l'accord de ricardo, Je me permettrai très modestement d'en illustrer les lignes de commande qui vous seront nécessaires, ceci à l'intention des néophytes.
Script sans lequel, ce tuto ne saurait être, et à partir duquel j'ai rédigé cette page.
À ...
@ ricardo ...
@ tous les membres ...
Je vous en serre cinq ... Amicalement, loreleil ... . ^¿^ .
Mise en place du script pour les néophytes
ps : Newbies, je n'aime pas ce terme anglophone, je lui préfère et ce de très loin, (restons Français) néophyte.
- Deux types de sauvegardes en fonction de vos besoins.
- Sauvegarde de la racine ( / )
- Sauvegarde de la /home
Afin de rendre la tâche des sauvegardes plus aisée avec rsync, et de rendre celles-ci plus maniable à la fois dans son utilisation à volonté et sans aucune modération, quelles soient quotidienne, hebdomadaire, mensuelle, annuelle, ... c'est vous qui voyez !
Pour ce faire, vous devez créer ce qui suit
- Un répertoire "/home/<user>/bin"
- Deux scripts "sauvegarde". C'est là qu'il vous faudra faire le coller du script Script de double sauvegarde alternée
- /home/<user>/bin/sauvegardeR
- /home/<user>/bin/sauvegardeH
- Que vous rendrez exécutables.
- Deux répertoires ".controle"
- /home/<user>/.controleR
- /home/<user>/.controleH
- Deux fichiers "exclure"
- /root/exclureR
- /home/<user>/.exclureH
- Placer maintenant votre répertoire "/home/<user>/bin" dans le PATH.
Ainsi vous n'aurez plus à vous soucier d'où vous enverrez la commande de sauvegarde.
Par la suite, vous pourrez (si vous le désirez) placer tous vos scripts personnel dans ce répertoire. (Si vous nommez votre bin personnel sous un autre nom (.bin) il ne sera pas dans votre path)
C'est parti mon kiki
- Création du répertoire bin
:~$ pwd /home/<user>
:~$ mkdir bin
- Création des scripts "sauvegardes"
- Coller le script dans ce fichier et l'enregistrer.
:~$ nano /home/<user>/bin/sauvegardeR
- Coller le script dans ce fichier et l'enregistrer.
:~$ nano /home/<user>/bin/sauvegardeH
- Rendons les, exécutables.
:~$ chmod +x /home/<user>/bin/sauvegardeR
:~$ chmod +x /home/<user>/bin/sauvegardeH
- Création des répertoires "controle"
:~$ mkdir /home/.controleR
:~$ mkdir /home/.controleH
- Passer en console root.
:~$ su - Mot de passe : :~#
- Création des fichiers "exclure".
:~# touch /root/exclureR
:~# touch /home/<user>/.exclureH
- Quitter la console root proprement.
:~# exit logout :~$
- Placer le répertoire "/home/<user>/bin" dans le PATH.
echo 'export PATH=$PATH:/home/<user>/bin' >> /home/<user>/.bashrc
Pour l'heure, "faisons le point ..."
Faisons le point sur les disques et partitions qui seront concernées
Plus parlant qu'un discours ...
dd Source /dev/sda |
dd Sauvegardes /dev/sdb sauve |
dd Sauvegardes /dev/sdc sauve2 | |
Partitions | |||
Racine " / " (*) | /dev/sda1 | /dev/sdb1 | /dev/sdc1 |
extended | /dev/sda2 | ||
Swap | /dev/sda5 | ||
/home | /dev/sda6 | /dev/sdb2 | /dev/sdc2 |
Disque source
# fdisk -l
Device Boot Start End Blocks Id System
/dev/sda1 * 1 27988 224804864 83 Linux ### partition racine /dev/sda2 27988 121602 751956696 5 Extended ### extentions /dev/sda5 27988 28237 2004992 82 Linux swap / Solaris ### comme son nom l'indique /dev/sda6 28237 55009 215040000 83 Linux ### partition /home
:~# blkid
/dev/sda6: UUID="28d14850-47ec-40c3-bf96-ffebfa75dfe7" TYPE="ext3" SEC_TYPE="ext2" /dev/sda1: UUID="d128857f-859e-490e-a9bf-3e7afb2741d8" TYPE="ext3" /dev/sda5: UUID="795c9836-7500-4444-9332-fb6ff1289cad" TYPE="swap"
Déterminer la taille d'occupation des partitions
:~$ df -h /dev/sda1
Sys. de fichiers Taille Uti. Disp. Uti% Monté sur /dev/sda1 212G 6,2G 195G 4% /
:~$ df -h /dev/sda6
Sys. de fichiers Taille Uti. Disp. Uti% Monté sur /dev/sda6 202G 4,0G 188G 3% /home
Conseils
Et de doubler (voir plus !) celles-ci sur disque dur externes.
Vous êtes très certainement en mesure de comprendre le pourquoi !
Disques et partitions qui réceptionneront les sauvegardes
Ben oui, peut être y penser avant ...
La préparation du disque(s) "des sauvegardes" requière la création de quatre partitions minimum, en ext3 (dans mon cas !)
Inutile de surdimensionner celles-ci!
Notes
- J'utilise deux disques externes.
/dev/sdb = #sauve
/dev/sdc = #sauve2
- Sauvegarde de la / ... sur deux partitions (externe) /dev/sdb1 et /dev/sdc1
- Sauvegarde de la /home ... sur deux partitions (externe) /dev/sdb2 et /dev/sdc2
- Et je recrée autant de partitions (dans la mesure des possibilités) que je le souhaite.
Ainsi dans une même journée, il est possible de lancer plusieurs sauvegardes (Racine=sauvegardeR, Home=sauvegardeH), sans pour autant écraser les précédentes.
- Concrètement.
:~$ sauvegardeR
1) sauve 2) sauve2 3) quitter Entrez le N° de la sauvegarde choisie :
Mise en place des Sauvegardes
Nous y voici ... Pour ce faire il vous faudra modifier la section du script intitulé "Variables" et l'adapter à votre situation, bien évidemment!
Dans mon cas, les scripts sont enregistrés comme suit.
Racine :
/home/<user>/bin/sauvegardeR
/home/<user>/bin/sauvegardeH
Section du script à modifié pour /
#----------------- Variables ------------------- # CETTE PARTIE DOIT RETENIR TOUTE VOTRE ATTENTION, C'EST LÀ QUE VOUS PERSONNALISEREZ CE SCRIPT #+ POUR CE FAIRE, JE VOUS CONSEILLE DE VOUS RÉFÉRER AU TUTO ET AU SCRIPT INDIQUÉS DANS LE "PRE-REQUIS" DU "BEGIN INIT INFO"
mount_rep="/mnt/"
# la première donnée, vide, figure le [0], de façon à commencer par [1]
ddext=( '/dev/sdb1' '/dev/sdc1')
systeme_fich=( 'ext3' 'ext3')
controle=( '/home/.controleR')
exclure=( '/root/exclureR')
sauve=( '/mnt/')
dossier_a_sauver=( '/')
#----------------- Départ du script ----------------------------
Sans lui, rsync va copier le répertoire /home.
C'est à dire : Ce sera le contenant et non le contenu!
Section du script à modifié pour /home
#----------------- Variables -------------------
# CETTE PARTIE DOIT RETENIR TOUTE VOTRE ATTENTION, C'EST LÀ QUE VOUS PERSONNALISEREZ CE SCRIPT
#+ POUR CE FAIRE, JE VOUS CONSEILLE DE VOUS RÉFÉRER AU TUTO ET AU SCRIPT INDIQUÉS DANS LE "PRE-REQUIS" DU "BEGIN INIT INFO"
mount_rep="/mnt/"
# la première donnée, vide, figure le [0], de façon à commencer par [1]
ddext=( '/dev/sdb2' '/dev/sdc2')
systeme_fich=( 'ext3' 'ext3')
controle=( '/home/.controleH')
exclure=( '/home/<user>/.exclureH')
sauve=( '/mnt/')
dossier_a_sauver=( '/home/')
#----------------- Départ du script ----------------------------
Vous aurez noté
/home/.controleR
/root/exclureR
/home/.controleH
/home/<user>/.exclureH
Le fichier /root/exclureR
- Voir ...
:~# cd / :/# ls -la
:~# cat /root/exclureR /home # est une tout autre sauvegarde distinct /dev /proc /sys /mnt /lost+found /media /opt # si vous compilez :~#
/home/<user>/.exclureH
:~# cat /home/<user>/.exclureH /.ure /bin /boot /dev /etc /lib /lib32 /lib64 /lost+found /media /mnt /opt /proc /root /sbin /selinux /srv /sys /tmp /usr /var /initrd.img /vmlinuz :~#
- Notes : Il vous sera certainement utile de pouvoir exclure des répertoires/fichiers spécifiques, je pense à des répertoires de votre création tel que téléchargements, Vidéo, Jeux, etc ... et/ou des fichiers.txt par exemples.
La solution me fût donné par nykoos dans ce post.
- Il vous suffira de les y inclure.
- Exemple :
~# cat /home/<user>/.exclureH téléchargements Vidéo Jeux mon_beau_fichier.txt /.ure /bin /boot /dev /etc /lib /lib32 /lib64 /lost+found /media /mnt /opt /proc /root /sbin /selinux /srv /sys /tmp /usr /var /initrd.img /vmlinuz :~#
Lancement des sauvegardes en user, quel que soit l'ordre
Cela tombe plutôt bien, je n'en ai pas effectué depuis 6 jours ... yapuka !
Sauvegarde de la racine
:~$ sauvegardeR 1) sauve 2) sauve2 3) quitter Entrez le N° de la sauvegarde choisie : 1 [sudo] password for loreleil: CONTENU de la CORBEILLE . books_fichiers ecran_securite.php HTMLSax3.php mypasswd stardict-Emile-Littre.xdxf-2.4.2 .. Copie_etc_mediawiki_LocalSettings.php.txt ESSAISAUVEGARDE info.txt passwordlist.txt usr 18112011_19h25 des_fichiers_configurations_original GBrH0w7X9PLOR5JGSZaCcPoQ jquery.js RACINE 19112011_18h50 eaccelerator-0.9.6.1.tar.bz2 home mes_options.php safehtml.php on peut la vider ? o/* : n CORBEILLE CONSERVÉE PLEINE prêt pour la sauvegarde ? o/* : o sending incremental file list ./ dead.letter initrd.img -> boot/initrd.img-2.6.32-5-amd64 lib64 -> /lib vmlinuz -> boot/vmlinuz-2.6.32-5-amd64 .ure/ .ure/javasettings_Linux_X86_64.xml bin/ bin/bash (...) var/tmp/kdecache-root/ var/www/ var/www/.... var/www/..... var/www/mediawiki/ var/www/mediawiki/mediawiki -> /var/lib/mediawiki/ sent 5988427652 bytes received 3561164 bytes 10286676.08 bytes/sec total size is 5975142893 speedup is 1.00 Sauvegarde de / : OK :~$
- Effectué en 9' 49" chrono en main.
Sauvegarde de la /home
:~$ sauvegardeH 1) sauve 2) sauve2 3) quitter Entrez le N° de la sauvegarde choisie : 1 CONTENU de la CORBEILLE . books_fichiers ecran_securite.php HTMLSax3.php mypasswd stardict-Emile-Littre.xdxf-2.4.2 .. Copie_etc_mediawiki_LocalSettings.php.txt ESSAISAUVEGARDE info.txt passwordlist.txt usr 18112011_19h25 des_fichiers_configurations_original GBrH0w7X9PLOR5JGSZaCcPoQ jquery.js RACINE 19112011_18h50 eaccelerator-0.9.6.1.tar.bz2 home mes_options.php safehtml.php on peut la vider ? o/* : n CORBEILLE CONSERVÉE PLEINE prêt pour la sauvegarde ? o/* : o sending incremental file list ./ .controleH/ .controleH/.controleH/ .controleH/.controleH/.controleH/ .controleH/.controleH/.controleH/loreleil/ .controleH/.controleH/.controleH/loreleil/.bash_history (...) loreleil/mediawiki_24012012/Tuto_par_mes_soins/Sauvegarder_sa_Debian_Racine_et_Home_séparées./ loreleil/mediawiki_24012012/Tuto_par_mes_soins/Sauvegarder_sa_Debian_Racine_et_Home_séparées./Tuto_Sauvegarder_sa_Debian_racine_et_ home_séparées.txt loreleil/mediawiki_24012012/l'installation_de_mediawiki_24012012/ loreleil/mediawiki_24012012/l'installation_de_mediawiki_24012012/installer.txt loreleil/mediawiki_24012012/l'installation_de_mediawiki_24012012/installer_mediawiki-extensions.txt sent 3782571434 bytes received 1281433 bytes 15539436.83 bytes/sec total size is 3777643575 speedup is 1.00 Sauvegarde de /home/ : OK :~$
- Effectué en 4' 09" chrono.
Temps d'exécution
Les temps seront variables en fonction de l'espace occupé.
ps : N'oubliez pas de sortir proprement.
Sauvegarde de /home/ : OK loreleil@machine1:~$
:~$ exit
Au final
- Dans tous les cas, rsync ne doit déclarer aucune erreur en console après une sauvegarde lancée et terminée, quel qu'elle soit :
- sauvegardeR
- sauvegardeH
Vous pouvez à présent dormir sur vos deux oreilles ... ;)
Post-scriptum
Moment privilégié, moment partagé ... . ^¿^ .
Je vous en serre cinq ... ;) Au plaisir ... . ^¿^ .
Merci. Amicalement, loreleil.
Discussions
- (fr) Restaurer son OS depuis une sauvegarde: / & /home séparées.
- (fr) Comment rendre une sauvegarde bootable ... ?
- (fr) Sauvegarde & Clonage d'un système
La suite
Restauration ou Reconstruction de sa Debian - Racine et Home séparés
Loreleil 3 février 2012 à 12:58 (CET)
Loreleil 6 février 2012 à 09:00 (CET)