Procédure d'installation sur un disque chiffré une Debian Buster en parallèle avec une Stretch

Cette procédure décrit comment installer sur un disque chiffré une Debian Buster en parallèle avec une Stretch.

La situation :

 :-) lsblk 
NAME                                    MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda                                       8:0    0 465,8G  0 disk  
├─sda1                                    8:1    0   4,7G  0 part  
│ ├─s02_boot-Deb--Stretch_v9--boot      254:0    0   952M  0 lvm   /boot
│ └─s02_boot-Deb--Buster_10--boot       254:1    0   188M  0 lvm   
├─sda2                                    8:2    0     1K  0 part  
└─sda5                                    8:5    0 461,1G  0 part  
  └─sda5_crypt                          254:2    0 461,1G  0 crypt 
    ├─s02_crypt-Deb--Stretch_v9--Racine 254:3    0   952M  0 lvm   /mnt
    ├─s02_crypt-Deb--Stretch_v9--usr    254:4    0  12,1G  0 lvm   /usr
    ├─s02_crypt-Deb--Stretch_v9--var    254:5    0   4,3G  0 lvm   /var
    ├─s02_crypt-root                    254:6    0    92M  0 lvm   /root
    ├─s02_crypt-swap                    254:7    0   7,5G  0 lvm   [SWAP]
    ├─s02_crypt-tmp                     254:8    0   9,3G  0 lvm   /tmp
    ├─s02_crypt-home                    254:9    0  46,6G  0 lvm   /home
    ├─s02_crypt-Deb--Buster_v10--Racine 254:10   0     1G  0 lvm   
    ├─s02_crypt-Deb--Buster_v10--usr    254:11   0    12G  0 lvm   
    └─s02_crypt-Deb--Buster_v10--var    254:12   0   4,2G  0 lvm   
 :-) sudo vgdisplay                                                                                            
  --- Volume group ---
  VG Name               s02_crypt
  …
  --- Volume group ---
  VG Name               s02_boot
  …
 :-) 

Donc, deux partitions abritant chacune un groupe de volume LVM qui sont :

 - s02_boot, non chiffré pour les /boot sur sda1.
 - s02_crypt, chiffré (Luks1) pour le reste sur sda5.

D’autre part, sda5_crypt est le nom du disque une fois déchiffré.

Les volumes logiques nécessaires à l’installation de la Buster ont été préalablement créé à partir de la version en production (Stretch). C’est bien plus pratique qu’avec l’installeur, car on bénéficie des commodités de son shell préféré. Voir aussi la page man lvm.
L’installeur Debian Buster ne gère pas les disques chiffrés existants. À la première installation d’une version, cela ne pose pas de problème : chiffrement et Lvm sont mis en œuvre concomitamment. Par contre, lorsque l’on veut installer une nouvelle version en parallèle, par exemple pour la tester, l’installeur ne reconnaît pas les disques déjà chiffrés.
Un moyen de contourner ce problème est de déchiffrer manuellement les dits disques avec la commande cryptsetup via un shell. L’installation se déroule alors sans encombre.
Néanmoins, c’est au reboot que les choses se gâtent… Le noyau se plaint de ne pas pouvoir accéder à volume logique s02_crypt-Deb-Buster_v10-Racine dans ce cas précis.
Le décryptage de /dev/sda5 ne se fait pas, le lancement du système est alors impossible. Dans le initramfs, on ne trouve pas la commande cryptsetup, alors qu’elle est présente dans la version en production (Stretch).

La procédure suivante devrait résoudre le problème :

Booter sur la clé ou le CD «Debian GNU/Linux 10.2.0 "Buster" - Official amd64 xfce-CD Binary-1». Il est possible de procéder également avec l’image «netinstall».

Dans les menus proposés, choisir «Advanced options…», puis «Expert install».

Suivre le déroulement normal, jusqu’à… «Charger des composants d'installation à partir du CD» et on sélectionne :

[*] Rescue-mode…

On valide, et on déroule l’installation jusqu’à «détecter les disques…» inclus.

Puis, sélectionner la deuxième console (Ctrl-Alt-F2). Dans ce shell, entrer les commandes suivantes :

cd /dev/
cryptsetup open sda5 sda5_crypt # On peut modifier le nom donné par lsblk, mais alors il faudra éditer le /etc/crypttab (voir plus loin).

Retourner dans l’installeur (Ctrl-Alt-F1).

Maintenant, sélectionner «Partitionner les disques.» et on peut faire une installation sur le disque chiffré. Si vous ne voyez toujours pas les volumes logiques présents sur le système, lisez le paragraphe suivant.

Pendant cette phase, la situation peut paraître nébuleuse et erratique : pour des raisons que je ne m’explique pas, il se peut que le répertoire « /dev/mapper/ » ne soit pas peuplé par ces volumes logiques. Il faut alors activer les volumes logiques manuellement avec la commande «vgchange -ay».

L’installation va jusqu’au bout sans message d’erreur. Mais lorsque le message de la part de l’installeur indiquant qu’il va redémarrer la machine apparaît, il faut rebasculer sur la deuxième console (Ctrl-Alt-F2).
Et y entrer les commandes suivantes afin que les outils de déchiffrements nécessaires soient inclus dans le initrd.img :

cd /target/
mount --bind /proc/ proc/
mount --bind /run/ run/
mount --bind /sys/ sys/
mount --bind /dev/pts/ dev/pts/
chroot . /bin/bash
mount /dev/mapper/s02_crypt-Deb--Stretch_v9--Racine /mnt/ # Ça, c'est pour le fichier crypttab.
cp -p /mnt/etc/crypttab etc/ # Si le nom du disque est préservé. Sinon, nano etc/crypttab. 
apt policy cryptsetup-initramfs
apt install cryptsetup-initramfs  # Si pas installé.
update-initramfs -u
exit # x2.

Revenir à l’installeur (Ctrl-Alt-F1) et appuyer sur Entrée pour rebooter.

Voila, en espérant rendre service au debianistes qui sont été confrontés aux mêmes problèmes que moi. :slight_smile:

3 J'aime

Merci pour ce long tuto, bien descriptif, où vous avez fait en sorte de correctement “paginer” - d’autant pour un premier sujet ! :stuck_out_tongue:

Bien vu l’usage de l’élément kbd là où nécessaire !

1 J'aime

On peut simplifier tout ça en sélectionnant “rescue” dans le menu de démarrage de l’installateur.

2 J'aime

Merci Debanrien(e) @moondump :slight_smile: pour ce sujet.

Cordialement,
Romain

Certes, mais j’ai tellement tâtonné pour trouver une solution, que je ne prétends pas avoir découvert la méthode ultime.
Si je me souviens bien, avec le mode « rescue », on perd le coté « linéaire » de l’installeur. Pour un débutant, ça peut peut être déstabilisant. De toute façon, la philosophie des différentes méthodes reste la même.
À chacun de choisir sa voie, c’est toute la noblesse du logiciel libre.