Gestion des partitions LVM (version cli)

Au cours de cet article nous avons vu comment créer un système de fichiers Linux utilisant LVM ainsi que LUKS. Le seul inconvénient est qu'on utilise un wrapper graphique qui nous facilite grandement la tâche. Aujourd'hui nous verrons donc comment créer une partition LVM chiffrée via la CLI.

LVM (Logical Volum Manager) est à la fois une méthode et un outil permettant de mettre en place ce que l'on appelle des partitions logiques. Au lieu d'avoir un disque dur sur lequel se trouve plusieurs partitions physique nous aurons un container physique qui contiendra lui même plusieurs partitions logiques:

lvm4.png

Avant d’aller plus loin il est nécessaire de bien faire la différence entre volume physique, volume logique et groupe de volumes.

  • Volume physique :

Les volumes physiques ce sont tout simplement nos disque durs (/dev/sdb par exemple). Lorsque l’on monte un disque dur ou une clé USB sous Linux ce sont généralement des volumes physiques.

  • Groupe de volumes :

Les groupes de volumes sont constitués d’un ensemble de volumes physiques et sont utilisés afin de créer les volumes virtuels.

  • Volume virtuel :

Ces volumes sont ceux que nous allons créer sur notre serveur. Comme ces volumes sont logiques nous pourrons y ajouter de l’espace et en supprimer à la volée. C'est ces volumes que nous appelons des partitions LVM.

Pour mettre en place une partition logique LVM chiffrée nous allons utiliser quatre utilitaires : pvcreate, vgcreate, lvcreate et cryptsetup. Ces paquets ne sont pas forcément installés sur vos machines donc:

sudo apt install crypsetup lvm2

Tout au long de cet article nous nous servirons de la partition /dev/sda4.

La première chose à faire, c'est de chiffrer notre partition /dev/sda4. Pour cela on utilisera le binaire cryptsetup:

cryptsetup  luksFormat /dev/sda4

LUKS, pour Linux Unified Key Setup) est le standard associé au noyau Linux pour le chiffrement de disque. LUKS va vous demander d'entrer un mot de passe. Attention, ce mot de passe vous devez vous en rappeler à tout prix. En effet si vous l'oubliez vous ne pourrez pas déchiffrer votre partition et donc utiliser votre machine.

Une fois la partition chiffrée, on l'ouvrira de cette manière:

cryptsetup open /dev/sda4 lukspartition

L'utilisation de cette commande indique à cryptsetup d'ouvrir la partition /dev/sda4, de la déchiffrer puis de la monter sous le nouvel identifiant "lukspartition" dans le répertoire /dev/mapper.

Puis il faudra initialiser la partition physique via l'utilitaire pvcreate:

pvcreate /dev/sda4

Nous pourrons ensuite créer notre groupe de volume VGCRYPT via la commande suivante:

cryptsetup open /dev/sda4 lukspartition

L'utilisation de cette commande indique à cryptsetup d'ouvrir la partition /dev/sda4, de la déchiffrer puis de la monter sous le nouvel identifiant "lukspartition" dans le répertoire /dev/mapper.

Une fois la partition correctement ouverte nous allons pouvoir créer notre groupe de volume VGCRYPT via la commande suivante:

vgcreate VGCRYPT /dev/mapper/lukspartition

Une fois le volume de groupe crée un répertoire portant le nom de ce dernier sera créé dans le répertoire /dev. On pourra ensuite, par exemple, créer une partition logique root qui prendra tout l'espace disponible:

lvcreate -l 100%FREE -n root VGCRYPT

Il ne nous restera plus qu'à formater cette partition logique via les utilitaires mkfs. Pour ma part je formate ma partition logique root en EXT4:

mkfs.ext4 /dev/VGCRYPT/root

Et Voilà! Nous avons créé une partition logique LVM chiffrée. Pour une utilisation bureautique je ne cherche pas à dissocier /var, /tmp, /home et / dans différentes partitions logiques. En revanche c'est ce que j'aurais fait si je mettais en place un serveur.