Sauvegarder sa Debian en vue d'une Réinstallation ou Reconstruction - Racine et Home séparés

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche
  • 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.



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


1°) Maîtriser la console root en ayant bien conscience, que root est le maître à bord, la relation chaise/clavier !


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 !


Veillez donc, à adapter celles-ci à votre situation !



Recommandations


Identifiez clairement les disques et partitions

:~# fdisk -l
:~# blkid


1°) Arrêter et déconnecter physiquement (cordon d'alimentation) la machine (mise Hors Tension).

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

Les sauvegardes seront lancées manuellement.
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.


J'en profite au passage, pour remercier ricardo et tous les membres qui ont contribués à son élaboration.

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


Vous modifierez/compléterez ces fichiers plus tard !
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

Je ne saurai que trop vous conseiller d'effectuer vos sauvegardes sur des disques internes autre que la cible source.
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 ----------------------------



Pourquoi ce slash ?
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


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)