Les erreurs humaines et défaillances techniques sont souvent des sources importantes de pertes de données. Sauvegarder ses données est ainsi devenu une tâche de haute importance si l'on ne veut pas se retrouver démuni face à un incident potentiel.
La question n’est donc pas de savoir pourquoi sauvegarder, mais plutôt de comment le faire...
Je vous fait part de ma manière de gérer mes sauvegardes sur mon ordinateur personnel. En utilisant BorgBackup pour effectuer une sauvegarde sur un disque externe chiffré avec LUKS + LVM.
LUKS
LUKS est le standard associé au noyau Linux pour le chiffrement de disque. Il permet de chiffrer l'intégralité d'un disque de telle sorte que celui-ci soit utilisable sur d'autres plates-formes et distributions de Linux (voire d'autres systèmes d'exploitation). Il supporte des mots de passe multiples, afin que plusieurs utilisateurs soient en mesure de déchiffrer le même volume sans partager leur mot de passe.
Nous utiliserons le standard de chiffrement LUKS sur notre disque dur pour pouvoir gérer plus finement notre politique de chiffrement , et nous utiliserons du LVM afin de pouvoir potentiellement adapter notre paritionnement par la suite.
Utilisation
Chiffrer un disque dur avec LUKS est relativement simple comme vous allez pouvoir le constater :
-
D'abord repérez le disque cible
sudo fdisk -l
oulsblk
pour afficher les disques disponibles
-
Une fois le disque repéré, on le chiffre :
sudo cryptsetup -v --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 2000 --type luks2 --use-urandom --verify-passphrase luksFormat /dev/sdX
- Bien entendu il vous faut remplacer
/dev/sdX
par le disque que vous souhaitez chiffrer.
Une phrase de passe et une confirmation sera demandé. Utilisez un très long mot de passe ! Et de préférence une phrase.
- Bien entendu il vous faut remplacer
-
Ensuite on peut ouvrir le lecteur chiffré
sudo cryptsetup open /dev/sdX data
-
On initialise le gestionnaire de volume logique sur le disque :
sudo pvcreate /dev/mapper/data sudo vgcreate data /dev/mapper/data
-
On crée une partition logique nommé backup qui prendra 100% de l'espace disponible
sudo lvcreate -l 100%FREE data -n backup
-
On formate cette partition en ext4
sudo mkfs.ext4 /dev/mapper/data-backup
-
-
Maintenant on peut monter cette partition dans notre système :
-
On crée le dossier du point de montage
sudo mkdir /mnt/backup
-
On monte le volume au point de montage
/mnt/backup
sudo mount /dev/mapper/data-backup /mnt/backup
-
Habituellement, par mesure de sécurité, le système de fichier ext4 alloue 5% de l'espace du disque dur au système afin d'éviter un remplissage accidentel, si cette sécurité peut-être utile sur un poste de travail elle n'a pas lieu d'être sur un disque de sauvegarde.
-
Pour supprimer cet allocation de sécurité, exécutez ceci :
sudo tune2fs -m 0 /dev/mapper/data-backup
-
On peut vérifier que cet allocation est maintenant nulle à l'aide de la commande suivante :
sudo tune2fs -l /dev/mapper/data-backup | grep 'Reserved block count'`
Voilà, c'est terminé !
Vous pouvez tout aussi bien utiliser VeraCrypt pour le chiffrement de votre disque dur. Je vous renvois vers ce tutoriel pour débutant (en Anglais).
BorgBackup
Si vous utilisez une distribution GNU+Linux, un utilitaire très complet permettant d'assouvir vos besoin de sauvegardes est BorgBackup. Très simple d'utilisation, BorgBackup permet d'effectuer des sauvegardes sur un support local ou distant, gère différents algorithmes de compression, permet de chiffrer ses sauvegardes très simplement, etc.
Ce dernier possède 4 propriétés qui peuvent se retrouver dans différents outils. À savoir les sauvegardes peuvent être compréssées, incrémentales, différentielles et dédupliquées. Voyons ce que signifie ces termes :
Propriété | Action | Équivalents |
---|---|---|
Compression | Les fichiers prennent moins de place | Tar, Zip, 7zip |
Incrémentation | Historisation des fichiers, vous pouvez ainsi récupérer un fichier à un instant T qui aura été supprimé par erreur | BackInTime, rsnapshot, TimeShift |
Différentiation | Seules les parties modifiées d'un fichier sont sauvegardés. Énorme gain de place avec plusieurs sauvegardes | rdiff-backup, duplicity |
Déduplication | Analyse des fichiers afin de repérer les fichiers en double. Énorme gain de place et de temps | bup, duplicati |
Usage
-
En supposant que vous voulez faire vos sauvegardes dans le répertoire /repo
-
Initialiser le repo Borg (À faire une seule fois: C'est ce qui va “préparer” le répertoire qui va recevoir les backups):
borg init --encryption=repokey-blake2 /repo
-
Par défaut, c'est chiffré avec mot de passe. Pour faire sans chiffrement, faire:
borg init --encryption=none /repo
-
Les “repos” peuvent être locaux ou distants.
-
-
Faire un backup :
borg create /repo::{now} /source
-
Pour afficher plus d'informations, ajouter
-v --progress
-
Vous pouvez bien sûr inclure plusieurs répertoires sources dans le backup :
borg create /repo::{now} /source1 /source2 /source3 {now}
permet d'horodater automatiquement les backups, mais vous pouvez remplacer par le texte de votre choix. -
Une bonne idée est de pré-fixer votre backup par le nom de la machine (
nommachine-{now}
), ce qui permet par la suite de purger sélectivement les backups (avec--prefix
). -
Algo de compression par défaut: lz4 (le plus rapide). Si vous cherchez la compression maximale ajoutez
--compression lzma
ou intermédiaire :--compression zlib
-
Lister les backups :
borg list /repo
-
Vérifier l'intégrité des backups:
borg check -v --progress /repo
-
Accéder aux backups :
mkdir archive borg mount /repo archive
- Chaque backup est alors accessible comme un sous-répertoire dans le répertoire archive
Note: Si vous avez beaucoup de fichiers, quand vous allez entrer dans le sous-répertoire d'un backup précis, le premier
ls
risque de prendre plusieurs minutes. C'est tout à fait normal. Ne soyez pas surpris.-
Puis démonter par:
borg umount archive
-
-
Purger les anciens backups :
-
Exemple: On va garder 1 backup par jour sur les 7 derniers jours, et 1 backup par semaine sur les 4 dernières semaines et 1 backup par mois sur les 6 derniers mois.
borg prune -v --list --stats --keep-daily=7 --keep-weekly=4 --keep-monthly=6 /repo
-
Si vous avez préfixé vos archives, vous pouvez purger sélectivement avec
--prefix=nommachine
-
Vous pouvez supprimer un backup précis. Par exemple :
borg delete /repo::2018-12-11T12:25:38
-
Vous avez bien entendu bien d'autres options de purge.
-
-
Utilisation
-
On initialise le dépôt de BorgBackup sur notre disque, sans chiffrement puisque nous sommes déja sur un volume LUKS
sudo borg init --encryption=none /mnt/backup/backup.borg
-
On crée un fichier d'exclusions afin de ne pas sauvegarder certains dossiers
sudo vim /mnt/backup/excludes-backup.txt`
-
Ce fichier contient pour ma part les répertoires suivants :
/sys /dev /media /mnt /tmp /run /var/tmp /var/run /home/*/.thumbnails /home/*/.cache/chromium /home/*/.cache/mozilla /home/*/.cache/wine /home/*/.steam/steam/steamapps /home/*/.steam/steam/config/htmlcache /home/*/.local/share/Trash /home/*/.mozilla/firefox/*/Cache /home/*/.gvfs *.!qB
-
-
Vous pouvez maintenant lancer la sauvegarde de votre système entier / ou de votre dossier /home
sudo borg create -v --stats --progress --compression lz4 --exclude-from="/mnt/backup/excludes-backup.txt" /mnt/backup/backup.borg::arch-{now} /
Attention, cela peut-être très long la première fois ! Assurez vous d'avoir le temps d'effectuez cette sauvegarde.
-
Pour ma part je sauvegarde tout le système en excluant les dossiers vus précédemment. J'utilise la compression lz4 (compression très légère mais très rapide) pour des raisons de performance.
Gardez plusieurs sauvegardes de vos données, stockées si possible dans des endroits bien différents, ceci en vue de limiter les risques en cas d'incidents (incendie, inondation, etc).