Copier et agrandir une partition chiffrée

Introduction

Un de mes disques externes chiffrés de sauvegardes  arrivant manifestement en fin de vie, j’ai décidé de le remplacer préventivement par un autre de taille supérieure.

Mon disque chiffré ne contient qu’une partition et a été chiffré avec cryptsetup (LUKS) sans utiliser LVM ; si vous ne savez pas comment chiffrer votre partition, vous pouvez par exemple vous référer ici : http://doc.ubuntu-fr.org/cryptsetup.

Attention : Les étapes suivantes peuvent causer des pertes de données en cas d’erreur (par exemple si vous vous trompez de disque) ou de problème matériel ou logiciel ; si vous n’avez pas d’autre copie de vos données (c’est mal), faites-en une avant ; en outre, si vous ne comprenez pas une étape, demandez avant de recopier les commandes suivantes.

Copie des données

Pour copier les données de l’ancien disque (dans cet exemple, sdc) vers le nouveau disque (dans cet exemple sdd), j’ai utilisé ddrescue puisque je n’étais pas sûr de pouvoir correctement lire tous les secteurs de l’ancien disque (attention à bien démonter toutes les partitions sur les disques concernés avant de commencer).

On commence par installer ddrescue si on ne l’a pas encore :

sudo aptitude install gddrescue

Ensuite, on copie tout le disque :

sudo ddrescue -n -r1 -v /dev/sdc /dev/sdd backup.log

Si des erreurs sont survenues pendant la copie, on refait une passe en insistant un peu :

sudo ddrescue -r2 -v /dev/sdc /dev/sdd backup.log

Redimensionnement de la partition

La première étape consiste à modifier sa table des partitions :

sudo fdisk /dev/sdd
[...]
Commande (m pour l'aide): d
Partition sélectionnée 1
Commande (m pour l'aide): n
Commande d'action
   e   étendue
   p   partition primaire (1-4)
p
Numéro de partition (1-4): 1
Premier cylindre (1-38913, par défaut 1):[entrée]
Utilisation de la valeur par défaut 1
Dernier cylindre, +cylindres or +taille{K,M,G} (1-38913, par défaut 38913):[entrée]
Utilisation de la valeur par défaut 38913
Commande (m pour l'aide): w
La table de partitions a été altérée!
[...]

Maintenant que la partition prend toute la place disponible sur le nouveau disque, il faut encore redimensionner le conteneur des données chiffrées après l’avoir déverrouillé :

sudo cryptsetup luksOpen /dev/sdd1 cryptbackup
sudo cryptsetup resize cryptbackup

La dernière étape consiste à redimensionner le système de fichiers après l’avoir vérifié :

sudo e2fsck -f /dev/mapper/cryptbackup
sudo resize2fs -p /dev/mapper/cryptbackup

Plus d’informations sur le sujet

Si vous souhaitez faire la même opération mais en réduisant la partition plutôt qu’en l’agrandissant, vous pouvez vous référer à cet article sur le forum Ubuntu (en anglais). Si vous souhaitez déverrouiller votre partition chiffrée automatiquement lors de votre connexion (en utilisant votre mot de passe comme phrase de passe), vous pouvez lire mon article sur le sujet.