Bei der Ubuntu-Serverinstallation kann ausgewählt werden, dass die System-Partitionen auf dem Rechner automatisch verschlüsselt werden. Zudem wird bei einer Standarinstallation die verschlüsselte Partion anschließend automatisch mit LVM aufgeteilt. Bei einem Fehler im Dateisystem der Root-Partition startet der Rechner dann selbst im Rescue Modus nur noch in eine Busybox, in der keinerlei Kommandos für LUKS oder LVM verfügbar sind. Genau so ist es mir passiert und es war guter Rat teuer, wie das System wieder zum Leben zu erwecken ist. Im Folgenden wird beschrieben, wie mit einer Linux-Live-CD auf die Daten in den mit LUKS verschlüsselten und mit LVM aufgeteilten Partitionen zugegriffen werden kann.
Linux-Live-CD
Zuerst einmal wird eine Linux-Live-CD benötigt, um die Partitionen zu bearbeiten. Der Kernel sollte LUKS- und LVM-Unterstützung einkompiliert haben. Meines Wissens nach ist das bei allen aktuellen Ubuntu- oder Linux Mint-Live-CDs der Fall. Evtl. ist auch noch die CD von der Installation des Servers vorhanden. Andernfalls kommt man nicht darum herum, sich auf einem anderen System eine aktuelle Live-CD herunterzuladen und zu brennen oder mit dem Download einen bootbaren USB-Stick zu erstellen. Nach dem Start von der Live-CD bzw. DVD öffnet man ein Terminal. Sollte (wie bei mir) am Server keine Maus angeschlossen sein, kann alternativ auch mit der Tastenkombination Alt-F1 auf die erste Konsole gewechselt werden. Danach wird mit sudo -s zum Benutzer root gewechselt.
LUKS
Wurde bei der Installation des Servers keine eigene Partitionierung durchgeführt, enthält die erste primäre Partition (sda1 bzw. hda1) das Verzeichnis /boot. Die zweite primäre Partition (sda2 bzw. hda2) wird als erweitert gekennzeichet und darin die erste logische Partition (sda5 bzw. hda5) verschlüsselt und darin das LVM erstellt. Die Anzeige der Partitionen erfolgt mit dem Kommando fdisk -l:
# fdisk -l Platte /dev/sda: 123.5 GByte, 123522416640 Byte 255 Köpfe, 63 Sektoren/Spur, 15017 Zylinder Einheiten = Zylinder von 16065 × 512 = 8225280 Bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0008ad2c Gerät boot. Anfang Ende Blöcke Id System /dev/sda1 * 1 32 248832 83 Linux /dev/sda2 32 15018 120376321 5 Erweiterte /dev/sda5 32 15018 120376320 83 Linux
Die Partition 5 wird dabei nicht als "Linux LVM" gekennzeichnet, da sie ja erst einmal eine mit LUKS verschlüsselte Partition ist. Es gilt nun, diese Partiton zu entperren. Das Kommando
# cryptsetup luksOpen /dev/sda5 sda5_crypt
fragt nach dem Verschlüsselungspasswort und stellt anschließend ein virtuelles Device unter /dev/mapper/sda5_crypt bereit.
LVM
Mit dem Kommando pvscan wird anschließend das System auf vorhandene LVM-PVs untersucht:
# pvscan PV /dev/mapper/sda5_crypt VG enterprise lvm2 [114,80 GiB / 0 free] Total: 1 [114,80 GiB] / in use: 1 [114,80 GiB] / in no VG: 0 [0 ]
Hinter "VG" wird der Name der Volume Group ausgegeben. Anschließend wird nach logischen Volumes mit dem Kommando lvscan gesucht:
# lvscan inactive '/dev/enterprise/root' [111,93 GiB] inherit inactive '/dev/enterprise/swap_1' [2,87 GiB] inherit
Die logischen Volumes müssen nun mit dem Kommando
# vgchange -a y
aktiviert werden. Damit werden die Volumes dem Kernel bekannt. Ein anschließendes lvscan zeigt die Volumes dann auch als aktiv an:
# lvscan ACTIVE '/dev/enterprise/root' [111,93 GiB] inherit ACTIVE '/dev/enterprise/swap_1' [2,87 GiB] inherit
Sollten die LVM-Kommandos nicht auf der Live-CD enthalten sein, können diese mit apt-get install lvm2 nachinstalliert werden. Vorraussetzung ist dabei natürlich, dass im Live-System eine Internetverbindung besteht.
Überprüfen des Dateisystems
Mit
# fsck.ext4 -v /dev/enterprise/root
kann die Partition nun auf Fehler überprüft und evtl. repariert werden.
Mounten der Partitionen
Nach den vorgenannten Schritten kann die Partition wie gewohnt ins Dateisystem eingehängt werden. Um Fehler zu vermeiden sollte das vorzugsweise im Nur-Lese-Modus erfolgen:
mount -o ro /dev/enterprise/root /mnt
Mit diesem Kommando wird die Partition unter dem Verzeichnis /mnt eingehängt und es kann auf die Daten zugegriffen werden. Evtl. kopiert man nun die noch zu sichernden Daten auf einen USB-Stick oder einen anderen Ort im Netzwerk oder versucht anschließend nach der erfolgreichen Reparatur des Dateisystems den Server wieder ganz normal hochzufahren.
Danke für diese klare Anleitung. Sehr nützlich.
Viele Grüße, Richard.