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.

Wikipédia

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 ou lsblk 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.

  • 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).