URL: https://linuxfr.org/users/purplepsycho/journaux/bepo-cryptsetup-et-debian Title: bépo, cryptsetup et debian Authors: purplepsycho Date: 2022年07月12日T21:58:11+02:00 License: CC By-SA Tags: debian, bépo et cryptsetup Score: 19 Salut Un petit journal vite fait pour rapporter un truc qui m'a fait un peu peur. ## Description J'ai récemment installé une débian 11 avec chiffrage du disque dur. Tout ce passe bien. J'installe un agencement bépo et je n'y pense plus. Je dois entrer le mot de passe du disque dur en azerty et celui de session en bépo. Un matin, après une mise à jour noyau, [`cryptsetup`](https://packages.debian.org/bullseye/cryptsetup) ne veux rien savoir, quand j'entre mon mot de passe, il ne me répond que `cryptsetup: Bad password or options?`. Dur. J'arrive à booter sur le vieux noyau. Je demande à internet qui me dit que ça doit venir entre autre de l'agencement du clavier. Effectivement, lors de la mise à jour du noyau, et surtout lors de la génération du `initrd`, la disposition était le bépo. Problème : quelle que soit la façon dont j'entre le mot de passe, `cryptsetup` ne veut rien savoir. ## Solution rapide : restaurer la disposition par défaut dans initrd. Bon comme je veux quand même utiliser le nouveau noyau, je vais essayer de réparer le initrd. ### 1. Desarchiver les initrd. Dans un premier temps, on desarchive les deux initrd, l'un pour le réparer, l'autre pour récupérer un fichier à mettre dans le premier ```bash mkdir /tmp/old /tmp/new cd /tmp/old zcat /boot/initrd.img-5.10.0-15-amd64 | cpio -i cd /tmp/new zcat /boot/initrd.img-5.10.0-16-amd64 | cpio -i ``` ### 2. Répararer les fichiers En comparant les arborescences, on trouve deux fichiers qui pourraient expliquer le problème: `/etc/console-setup/cached_UTF-8_del.kmap` et `/etc/default/keyboard`. Il suffit de prendre les vieux et les mettre à la places des neufs: ```bash ## comparer les initrd facilement: #meld /tmp/old /tmp/new cp /tmp/old/etc/console-setup/cached_UTF-8_del.kmap /tmp/new/etc/console-setup/cached_UTF-8_del.kmap cp /tmp/old/etc/default/keyboard /tmp/new/etc/default/keyboard ``` ### 3. Régéner l'initrd Il ne reste plus qu'à archiver l'initrd et le mettre au bon endroit. ```bash cd /tmp/new find | cpio -o | gzip --best> /tmp/initrd.img-5.10.0-16-amd64 sudo cp /tmp/initrd.img-5.10.0-16-amd64 /boot/initrd.img-5.10.0-16-amd64 ``` ## Solution lente : corriger vraiment le problème Pour faire les choses bien, j'aurai plusieurs choix : * Apprendre à me servir de `mkinitramfs` pour choisir un agencement qui fonctionne * Comprendre pourquoi l'agencement bépo ne fonctionne pas avec `cryptsetup` et le réparer Mais il est tard, ça sera pour une prochaine fois Une nimage pour faire de beaux rèves : 