staging.inyokaproject.org

Nach Update auf 22.04: Verschlüsseltes System startet nicht mehr

Status: Gelöst | Ubuntu-Version: Ubuntu 22.04 (Jammy Jellyfish)
Antworten |

uu4u

Anmeldungsdatum:
18. März 2012

Beiträge: 7

Moin,

seit dem Update auf Version 22.04 kann ich Ubuntu (verschlüsselt mit LUKS) nicht mehr regulär starten.

Ich werde zunächst ganz normal aufgefordert, mein Passwort einzugeben. Anschließend kommt auch wie gewohnt das GRUB-Menü, in dem ich Ubuntu auswähle (die Boot-Partition wird also offenbar richtig entschlüsselt). Dann dauert es einen Moment und ich lande in der BusyBox (initramfs).

1
exit

liefert "ALERT! /dev/mapper/ubuntu--vg-root does not exist. Dropping to a shell!"

Schaue ich mit

1
ls /dev/mapper

nach, kommt auch nur "control" zurück, ubuntu--vg-root ist nicht da.

Es gibt ja schon viele Fragen in diversen Foren zu dem Thema. Zunächst habe ich hier das umgesetzt: https://askubuntu.com/a/1120949 lvm2 und cryptsetup waren aber natürlich schon installiert. Wie eine der Antworten auf die verlinkte Antwort vorschlägt, habe ich in /etc/crypttab je "/etc/luks/boot_os.keyfile" durch "none" ersetzt, was aber keinen Effekt hatte.

Im (initramfs) kann ich die root-Partition manuell entschlüsseln mit

1
cryptsetup luksOpen /dev/nvme1n1p5 nvme1n1np5_crypt

Anschließend findet

1
ls /dev/mapper

auch ubuntu--vg-root (und nvme1n1np5_crypt usw.). Mit

1
exit

startet das System.

Es scheint also bei der ursprüglichen, ersten Passworteingabe nur die Boot-Partition entschlüsselt zu werden, root aber nicht.

Hat jemand eine Idee, was ich tun kann, um wieder mit vertretbarem Aufwand mein System starten zu können?

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 7816

uu4u schrieb:

[…] Hat jemand eine Idee, was ich tun kann, um wieder mit vertretbarem Aufwand mein System starten zu können?

Boote in das System per manuellem Eingriff wie von Dir beschrieben. Führe ein Systemupdate durch. Wenn dabei ein neuer Kernel installiert wird, ist möglicherweise schon alles wieder gut, im anderen Fall aktualisiere die initrd.img. Neustart.

uu4u

(Themenstarter)

Anmeldungsdatum:
18. März 2012

Beiträge: 7

Das Update scheint keinen neuen Kernel installiert zu haben. Die Aktualisierung von initrd.img mittels

1
sudo update-initramfs -u -k all

liefert aber einen Hinweis, was das Problem sein könnte:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
update-initramfs: Generating /boot/initrd.img-5.15.0-27-generic
cryptsetup: WARNING: target 'nvme1n1p5' not found in /etc/crypttab
I: The initramfs will attempt to resume from /dev/dm-1
I: (/dev/mapper/ubuntu--vg-swap_1)
I: Set the RESUME variable to override this.
update-initramfs: Generating /boot/initrd.img-5.13.0-40-generic
cryptsetup: WARNING: target 'nvme1n1p5' not found in /etc/crypttab
I: The initramfs will attempt to resume from /dev/dm-1
I: (/dev/mapper/ubuntu--vg-swap_1)
I: Set the RESUME variable to override this.

Mein /etc/crypttab:

1
2
LUKS_BOOT UUID=[...] /etc/luks/boot_os.keyfile luks,discard
nvme1n1p5_crypt UUID=[...] /etc/luks/boot_os.keyfile luks,discard

Soll ich hier mal nvme1n1p5_crypt zu nvme1n1p5 umbenennen?

Zur Info noch mein /etc/fstab

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/ubuntu--vg-root /               ext4    errors=remount-ro 0       1
/dev/mapper/LUKS_BOOT /boot           ext4    defaults        0       2
# /boot/efi was on /dev/nvme0n1p1 during installation
UUID=600A-6DEF  /boot/efi       vfat    umask=0077      0       1
/dev/mapper/ubuntu--vg-swap_1 none            swap    sw              0       0

klinge

Avatar von klinge

Anmeldungsdatum:
17. Februar 2010

Beiträge: 404

ja, ändere den Eintrag in fstab (anschliessend aktualisierst du initramfs und ev. grub), dann sollte es wieder gehen. (Im schlimmsten Fall kannst du ja wieder zurückwechseln.)

uu4u

(Themenstarter)

Anmeldungsdatum:
18. März 2012

Beiträge: 7

Du meintest, ich soll den Eintrag in crypttab und nicht in fstab ändern, oder? Das habe ich gemacht (nvme1n1p5_crypt → nvme1n1p5), nun ist die Ausgabe

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
update-initramfs: Generating /boot/initrd.img-5.15.0-27-generic
cryptsetup: WARNING: Skipping root target nvme1n1p5: uses a key file
I: The initramfs will attempt to resume from /dev/dm-1
I: (/dev/mapper/ubuntu--vg-swap_1)
I: Set the RESUME variable to override this.
update-initramfs: Generating /boot/initrd.img-5.13.0-40-generic
cryptsetup: WARNING: Skipping root target nvme1n1p5: uses a key file
I: The initramfs will attempt to resume from /dev/dm-1
I: (/dev/mapper/ubuntu--vg-swap_1)
I: Set the RESUME variable to override this.

Das ändert an meinem Problem leider nichts. Ich habe das Keyfile auch einmal mit luksAddKey zum Laufwerk hinzugefügt, falls da etwas nicht mehr passen sollte, auch ohne Erfolg.

Daraufhin habe ich "keyfile=..." überall wieder durch "none" ersetzt (siehe erster Post). update-initramfs läuft dann durch und das System bootet ohne Umweg über (initramfs), aber mit einer zusätzlichen Passwortabfrage. Die möchte ich natürlich auch loswerden. Da das keyfile ja zu Problemen bei update-initramfs führt, ist das offenbar keine Option. Ich habe nach dieser Anleitung: https://unix.stackexchange.com/a/168244 ein Keyscript angelegt. Das liegt in /boot, da ich mir nicht vorstellen kann wie es sonst funktionieren kann. Da /boot auch verschlüsselt ist, sollte das ja kein Problem sein, oder? Ein Test-Aufruf des Scripts liefert auch das Passwort. Wichtig: ohne Zeilenumbruch (echo -n <Passwort>).

Dann musste ich noch verschiedene Kombinationen durchprobieren, wo in crypttab ein keyfile bzw. none und wo ein Keyscript bzw. discard eingetragen sein muss. Mit genau dieser Kombination geht es, mit keiner anderen:

1
2
LUKS_BOOT UUID=[...] /etc/luks/boot_os.keyfile luks,discard
nvme1n1p5 UUID=[...] none luks,keyscript=/boot/echo-key

update-initramfs läuft ohne Warnung durch und das System startet wieder wie früher.

Vielen Dank für die Hinweise, die mich schließlich zur Lösung geführt haben.

Die Frage bleibt: Warum war das alles nötig?

Antworten |