Debian: GRUB2 bei Vollverschlüsselung reparieren

Kürzlich hatte ich den seltenen Fall, dass mein Laptop nicht mehr booten wollte. Ich hatte die Vermutung, dass bei der Installation des Kernel-Updates etwas bei der Erstellung des initramfs oder des Updates von GRUB2 schief gegangen ist. Grandioserweise hatte ich einmal die Idee die Wartezeit bei GRUB2 auf 0 einzustellen, so dass es mir leider auch nicht möglich war einen anderen Kernel zu booten.

Ein USB-Stick mit grml wollte komischerweise auch nicht booten, obwohl USB-Boot im BIOS erlaubt war und das System auch von USB-Stick installiert wurde. Zum Glück lag noch ein Wechselgehäuse herum und ich konnte die Festplatte per USB an mein Netbook anschließen.

Damit ich mir das Vorgehen zur Rettung nicht wieder mühselig bei askubuntu und help.ubuntu.com zusammensuchen muss halte ich die Befehle, die mir zum Erfolg verhalfen, in meinem Schmierzettel fest. Das Setup der Vollverschlüsselung ist das Standardsetup mit LUKS/dm-crypt, das der Debian-Installer anlegt wenn man Verschlüsselung auswählt.

⚠️ Falls ihr auch mal in diese Situation kommt: Dass das Vorgehen bei mir geholfen hat heißt nicht, dass es allgemeingültig anwendbar ist! Die Befehle sind nicht ungefährlich also schaut vorher in die manpages der Befehle und denkt nach bevor ihr sie auf euren Datenträger los lasst!1 Und: Backup! Backup! Backup!

Erst mal musste ich rausfinden welche device id meine Laptop-SSD in meinem Netbook bekommen hatte, dazu genügt der Aufruf von blkid als root (Alle weiteren Befehle werden als root ausgeführt). In der Ausgabe sah ich dann unter anderem die Partitionen meines Laptop-Systems:

/dev/sdb1: UUID="b9f4c6ab-48a8-4582-b6c7-8ff11e9f42f9" TYPE="ext2" PARTUUID="e091aba6-01"
/dev/sdb5: UUID="847dac14-3bfb-4f3b-9176-339c34c4ee14" TYPE="crypto_LUKS" PARTUUID="e091aba6-05"

/dev/sdb1 ist meine unverschlüsselte /boot-Partition und /dev/sdb5 mein verschlüsseltes /.

Die Partition wird entschlüsselt indem man folgenden Befehl und anschließend das Entschlüsselungspasswort eingibt:

cryptsetup luksOpen /dev/sdb5 laptop

Nach einigen Anleitungen sollten nun die entschlüsselten Partitionen bereits unter /dev/mapper/ aufzufinden zu sein, in meinem Fall musste ich aber erst noch nach LVM block devices scannen und diese aktivieren:

vgscan
vgchange -ay

Nun kann ich das / meines Laptops nach /mnt meines Netbooks mounten:

mount /dev/mapper/laptop-vg-root /mnt

Um GRUB neu auf /boot schreiben zu können musste ich natürlich /boot auch noch mounten:

mount /dev/sdb1 /mnt/boot

Anschließend konnte ich auf mein Laptop-System chrooten:

mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt

Nun konnte ich in /etc/default/grub die unsinnige Wartezeit von 0 Sekunden auf 5 Sekunden hochsetzen und GRUB neu schreiben lassen, anschließend habe ich zur Sicherheit auch noch mal das initramfs neu erstellen lassen:

update-grub
update-initramfs -uk all

Nachdem ich die SSD wieder in meinen Laptop gesteckt habe booted auch dieser wieder problemlos. 😄


  1. Die manpages der benutzten Programme:

     ↩︎

Inhalt

Teilen: E-Mail

Hinterlasse einen Kommentar oder diskutiere im OSBN-Chat.


In den Kommentaren können folgende Formatierungen genutzt werden.