Outils pour utilisateurs

Outils du site


expert:redimensionner_partitions_chiffrees_luks_cryptsetup

Redimensionner des conteneurs chiffrés luks

Tout au long de ce tutoriel nous utiliserons une partition chiffrée par luks nommée “crypttest” comme exemple. Ce conteneur luks est situé sur la partition physique /dev/sda1, le conteneur une fois ouvert est mappé sur /dev/mapper/crypttest.

En fonction du rôle du conteneur luks à redimensionner vous devrez opérez depuis un live-cd (conteneur supportant le système), depuis votre système en mode “single” (conteneur supportant /home), ou simplement depuis votre système s'il s'agit d'un conteneur supportant simplement des données. Vous ne pouvez pas redimensionner un conteneur en cours d'utilisation !

Un signe $ précède les commandes qui ne nécessitent pas de droits administrateur ; un signe # précède celles qui nécessitent des droits administrateur, ces signes ne font PAS partie des commandes. Les lignes qui ne commencent pas par un signe $ ou # correspondent au résultat de la commande précédente. Voyez cette page si vous ne savez pas comment obtenir des droits administrateur.

Réduire

Cette manipulation nécessite d'avoir une sauvegarde de ses données, au cas où ça tourne mal.
On ne peut pas réduire un conteneur qui supporte un système de fichiers plein, commencez par examiner la place disponible sur le système de fichiers.

Examen du conteneur luks à réduire :

# cryptsetup status crypttest
/dev/mapper/crypttest is active:
  cipher:  aes-cbc-essiv:sha256
  keysize: 256 bits
  device:  /dev/sda1
  offset:  2056 sectors
  size:    20962706 sectors
  mode:    read/write

Les informations importantes à noter sont “offset” (ou commence le conteneur) et “size” (la taille en secteurs du conteneur).

# cryptsetup -o 2056 -b 10000000 resize crypttest

L'option -o indique l'offset, -b la taille désirée en secteurs.
On examine le conteneur pour vérifier qu'il a maintenant la taille désirée. Cette taille doit être choisie de manière à être largement inférieure à la taille de la partition qui la supporte une fois réduite :

# cryptsetup status crypttest
/dev/mapper/crypttest is active:
  cipher:  aes-cbc-essiv:sha256
  keysize: 256 bits
  device:  /dev/sda1
  offset:  2056 sectors
  size:    10000000 sectors
  mode:    read/write

On ferme le conteneur, pour le moment nous n'avons pas touché au système de fichiers supporté par le conteneur :

# cryptsetup luksClose crypttest

C'est la phase crtitique de l'opération, on “soft” détruit la partition qui supporte le conteneur, on la recrée immédiatement avec la nouvelle taille désirée (ici “gnu-fdisk” est utilisé) :

# gfdisk /dev/sda
###########################################################################
GNU Fdisk 1.2.4								  #
Copyright (C) 1998 - 2006 Free Software Foundation, Inc.		  #
This program is free software, covered by the GNU General Public License. #
									  #
This program is distributed in the hope that it will be useful,		  #
but WITHOUT ANY WARRANTY; without even the implied warranty of		  #
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the		  #
GNU General Public License for more details.				  #
									  #
Using /dev/sda								  #
Command (m for help): d                                                   #
Partition number (1-1): 1                                                 #
Command (m for help): n                                                   #
Partition type                                                            #
   e   extended								  #
   p   primary partition (1-4)						  #
p									  #
First cylinder  (default 0cyl):                                           #
Last cylinder or +size or +sizeMB or +sizeKB  (default 1304cyl): 5G       #
Command (m for help): w                                                   #
Information: Don't forget to update /etc/fstab, if necessary.             #
									  #
									  #
Writing all changes to /dev/sda.					  #
###########################################################################

On ré-ouvre le conteneur LUKS, on l'agrandit pour remplir toute la nouvelle partition :

# cryptsetup luksOpen /dev/sda1 crypttest
Enter passphrase for /dev/sda1: 

# cryptsetup resize crypttest 

On s'attaque au système de fichiers porté par le conteneur pour l'ajuster :

# resize2fs /dev/mapper/crypttest
resize2fs 1.41.12 (17-May-2010)
En train de retailler le système de fichiers sur /dev/mapper/crypttest à 1220675 (4k) blocs.
Le système de fichiers /dev/mapper/crypttest a maintenant une taille de 1220675 blocs.

# fsck -fp /dev/mapper/crypttest 
fsck de util-linux-ng 2.17.2
/dev/mapper/crypttest : 12/302784 fichiers (0.0% non contigus), 53839/1220675 blocs

C'est fini, montez le système de fihciers et vérifiez si toutes vos données sont intactes. Le point de montage /media/crypttest doit exister :

# mount /dev/mapper/crypttest /media/crypttest/

Agrandir

On commence par fermer le conteneur luks, puis on “soft” détruit et recrée à la taille désirée la partition qui supporte le conteneur (gnu-fdisk est utilisé ici) :

# cryptsetup luksClose crypttest

# fdisk /dev/sda
###########################################################################
GNU Fdisk 1.2.4								  #
Copyright (C) 1998 - 2006 Free Software Foundation, Inc.		  #
This program is free software, covered by the GNU General Public License. #
									  #
This program is distributed in the hope that it will be useful,		  #
but WITHOUT ANY WARRANTY; without even the implied warranty of		  #
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the		  #
GNU General Public License for more details.				  #
									  #
Using /dev/sda								  #
Command (m for help): d                                                   #
Partition number (1-1): 1                                                 #
Command (m for help): n                                                   #
Partition type                                                            #
   e   extended								  #
   p   primary partition (1-4)						  #
p									  #
First cylinder  (default 0cyl):                                           #
Last cylinder or +size or +sizeMB or +sizeKB  (default 1304cyl):          #
Command (m for help): w                                                   #
Information: Don't forget to update /etc/fstab, if necessary.             #
									  #
									  #
Writing all changes to /dev/sda.					  #
###########################################################################

On ré-ouvre le conteneur et on l'examine pour vérifier qu'il soit toujours en bon état :

# cryptsetup luksOpen /dev/sda1 crypttest
Enter passphrase for /dev/sda1: 

# cryptsetup status crypttest
/dev/mapper/crypttest is active:
  cipher:  aes-cbc-essiv:sha256
  keysize: 256 bits
  device:  /dev/sda1
  offset:  2056 sectors
  size:    10000000 sectors
  mode:    read/write

On redimensionne le conteneur pour l'adapter à la nouvelle taille de la partition qui le supporte, ensuite on fait de même avec le système de fichiers, en effectuant avant et après l'opération les vérifications d'usage avec “e2fsck” :

# cryptsetup resize crypttest 

# e2fsck -fp /dev/mapper/crypttest 
/dev/mapper/crypttest : 12/302784 fichiers (0.0% non contigus), 53839/1220675 blocs

# resize2fs /dev/mapper/crypttest
resize2fs 1.41.12 (17-May-2010)
En train de retailler le système de fichiers sur /dev/mapper/crypttest à 2620338 (4k) blocs.
Le système de fichiers /dev/mapper/crypttest a maintenant une taille de 2620338 blocs.

# e2fsck -fp /dev/mapper/crypttest 
/dev/mapper/crypttest : 12/637440 fichiers (0.0% non contigus), 75097/2620338 blocs

On vérifie que le conteneur a bien la taille désirée :

# cryptsetup status crypttest
/dev/mapper/crypttest is active:
  cipher:  aes-cbc-essiv:sha256
  keysize: 256 bits
  device:  /dev/sda1
  offset:  2056 sectors
  size:    20962706 sectors
  mode:    read/write

Il est temps de monter le système de fichiers et de vérifier que tout soit en ordre :

# mount /dev/mapper/crypttest /media/crypttest/

Fini.


Retour à la page "Expert"

expert/redimensionner_partitions_chiffrees_luks_cryptsetup.txt · Dernière modification: 2014/05/09 18:56 (modification externe)