Journal Howto LUKS, LVM et Debian ont fucké my head.

Posté par (page perso) . Licence CC by-sa
5
19
août
2013

Note : ce journal est pour tout le monde, car si vous savez configurer ce genre d'installation, j'ai eu droit à une bizarrerie et votre avis sur la question sera vraiment la bienvenue.

Aujourd'hui j'ai voulu installer, en plus d'Arch, une Debian pour une certaine raison et tester des combinaisons kernel/userland et aussi prendre une revanche sur l'installation de Debian sur un LUKS existant.

Mon disque dur est partitionné de cette façon :

  • GPT boot
  • Linux Boot ext2 -> sda1
  • LUKS -> sda3

Et dans le LUKS, un gros volume physique LVM2, un VG (nommé linux chez moi) et des LV. Rien de bien extraordinaire donc.

Installation de Debian

On démarre le CD d'installation, on se tape la détection du matériel et les question chiantes sur les firmwares et on fini par arriver à l'étape du partitionnement.

Il faudra ouvrir le volume LUKS avant de faire la détection des disques. Je n'ai pas trouvé de meilleur moyen que d'aller dans une console et d'utiliser directement cryptsetup.

Sauf que voilà, ce composant n'étant pas chargé on ne peut donc pas l'utiliser.

Mode crade : continuer le partitionnement en mode manuel, sélectionner la partition censée être chiffrée et l'utiliser en temps que volume chiffré. À partir de là, l'installateur va charger les composants de cryptsetup. Désactivez le formattage.

Revenez en arrière deux fois pour atterrir sur le menu de sélection des étapes d'installation.

Allez dans une TTY et ouvrez votre disque avec cryptsetup :

cryptsetup luksOpen /dev/sda3 <un nom au pif>

Bien, ben maintenant on peut activer les volumes logiques LVM :

vgchange -ay linux

On revient dans notre installateur et on va à l'étape « Détecter les disques ».

TADAAAM ! Nos volumes sont là !

Le disque chiffré doit être marqué d'un K. Pour le reste, eh bien allez-y, configurez les volumes que vous voulez pour l'installation de Debian. N'oubliez pas non plus de configurer le disque pour /boot…

  • Et maintenant ?
  • On attend. Parce que c'est long. Si si.

On installe le boot-loader et on redémarre. On choisi alors sa Debian toute fraîchement installée, on a les erreurs "normales" à propos des LVM non trouvés, par contre après atteinte d'un timeout de quelques secondes, l'initramfs rendra la main.

Le drâme

Ben le drâme c'est qu'après avoir fait tout ça, Debian n'a pas été foutu de nous configurer un initramfs pour notre configuration LUKS. Super. Pourtant on lui a bien précisé d'utiliser le disque LUKS. Non ?

Donc quand l'initramfs nous rend la main, on pourra ouvrir manuellement le volume LUKS et activer les volumes logiques :

cryptsetup luksOpen /dev/sda3 <nom au pif>
vgchange -ay linux

Ensuite on exit et ça démarre. Ouf. On se dit qu'on va pouvoir régénérer l'initrd et que ça résoudra les problèmes, mais non.

On aura un warning comme quoi le fichier /etc/crypttab n'est pas valide… et il ne contient qu'un commentaire.

Pour avoir fait une installation « from scratch » en VM, le fichier n'est pas sensé être vide et doit contenir ceci :

sda3_crypt /dev/sda3 none luks

Sauf que fuck, il faudra passer par autre chose. Cet autre chose n'était pas présent dans l'installation en VM. Le monde à l'envers quoi.

First :

rm -f /etc/crypttab

Ensuite dans /etc/initramfs-tools/conf.d/cryptroot :

CRYPTOPTS=target=sda3_crypt,source=/dev/sda3,lvm=linux-debian

Et on peut enfin régénérer notre initrd :

update-initramfs -u

Et tout doit rouler.

Conclusion

Ben… c'est vraiment très étrange. Et après avoir perdu tant de temps à courir après une solution à tort et à travers (je n'ai plus les liens des forums désolé), j'ai juste envie de dire flûte et de sortir la bombe atomique.

J'espère que cela pourra être utile à quelqu'un et surtout que quelqu'un pourra donner la véritable solution à ce fucking problème qui sent de l'arrière train.

  • # Pas étonnant

    Posté par (page perso) . Évalué à 6.

    Si tu fais que la moitié des opérations d'installation à la main, pas la peine de te plaindre que ça ne marche pas bien si tu ne fais pas le reste. L'installateur Debian prend tout à fait en charge l'installation sur volumes chiffrés, mais évidemment si tu l'outrepasses pour ouvrir ces volumes par exemple, il ne mettre pas ce qu'il faut en crypttab, et ne génèrera pas les scripts d'initrd qu'il faut.

    • [^] # Re: Pas étonnant

      Posté par (page perso) . Évalué à 8.

      Et c'est quoi la procédure pour ouvrir de façon non manuelle son disque chiffré sans devoir le formater ?

      Love – bépo

      • [^] # Re: Pas étonnant

        Posté par (page perso) . Évalué à 1.

        Par ailleurs, n'est-il pas possible de passer en paramètre au démarrage les disques à ouvrir et la racine lvm ?

        Love – bépo

      • [^] # Re: Pas étonnant

        Posté par (page perso) . Évalué à 1.

        L'installeur Debian ne le fait pas ?

        "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

        • [^] # Re: Pas étonnant

          Posté par (page perso) . Évalué à 4.

          Ni moi ni mon collègue n'avons trouvé. Si j'avais pu le faire, ce journal n'aurait pas existé.

          Love – bépo

  • # Du mieux, pour utiliser crypttab

    Posté par (page perso) . Évalué à 4.

    Après avoir man crypttab on se rend compte qu'il faut utiliser en target (le premier champ du fichier) le nom sous lequel est ouvert notre volume LUKS dans /dev/mapper/

    Le message donne ce nom s'il ne le trouve pas dans la liste :

    cryptsetup: WARNING: invalid line in /etc/crypttab for cryptroot -
    

    cryptroot est ici notre cible. Donc on oublie le fichier moisi dans /etc/initramfs-tools et on utilise crypttab :

    crypttab /dev/sda3 none luks
    

    Love – bépo

  • # A la mano

    Posté par . Évalué à 2.

    Le mieux serait de partir d'un LiveCD (basé sur debian ou ubuntu) et te taper l'install à la main avec debootstrap (si tu connais déjà arch/gentoo tu ne sera pas trop dépaysé). C'est pas bien compliqué et tu pourras gérer ce genre de cas particulier.

    • [^] # Re: A la mano

      Posté par (page perso) . Évalué à 1.

      Un cas particulier ? C'est quand même pas si particulier que ça, c'est soit pas de chiffrement, soit LUKS/LVM ou LVM/LUKS.

      Et de toute façon ça n'aurait pas changé grand chose, il aurait fallu savoir comment configurer crypttab, et là comme ça, sans savoir que Debian nomme le volume luks « cryptroot » par défaut, le problème est le même.

      Love – bépo

  • # Étrange

    Posté par (page perso) . Évalué à -5.

    Bonjour,

    c'est étrange ton problème, parce qu'avec l'installeur Debian, on peut effectivement faire du LVM et du chiffrement de partitions, en suivant toutes les étapes.

    Pas plus tard qu'avant hier, un copain qui débute sous Linux l'a fait sans soucis. Il n'a jamais cherché à passer en ligne de commande.

    Il est probable que tu ne regardes pas les bons forums… et d'ailleurs, je vois pas pourquoi tu as besoin des forum, il suffit de répondre aux questions de l'installeur Debian.

    A+

    • [^] # Re: Étrange

      Posté par (page perso) . Évalué à 6. Dernière modification le 20/08/13 à 10:47.

      Je n'ai pas dû me faire comprendre : le problème est de réutiliser un volume chiffré existant et dont je veux conserver les données présentes. D'où mon intro, sur le partitionnement du disque :)

      Love – bépo

    • [^] # Re: Étrange

      Posté par . Évalué à 8.

      son problème n'est pas un problème inexistant, j'ai eu le même.

      J'ai voulu réinstaller une debian en crypté (un oubli lors d'une deuxième installation quand l'installeur ne savait pas bien gérer cette saleté de bios uefi et qu'il fallait finir à la mano) et j'ai eu le même problème.

      En fait au début ça fonctionnait mais j'ai voulu installer un nouveau noyau et lors de la génération de l'initramfs cela ne fonctionnait plus car les valeurs installées par l'installeur débian n'étaient plus valides.

      et effectivement pour tout remettre d’aplomb, j'ai du mettre les mains dans le cambouis comme lui. Globalement l'installeur fonctionne quand tu fais simplement sans double boot, sans réutilisation, sinon cela fonctionne moyen, d'ailleurs il y a un certain nombre de bug report chez debian qui indiquent que LVM ne trouve pas les partitions logiques au boot avec les nouveaux noyaux tout simplement par ce que cette configuration est mal faite.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.