Springe zum Inhalt

Datenrettung von LUKS + LVM Partitionen

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.

Ein Gedanke zu „Datenrettung von LUKS + LVM Partitionen

Kommentare sind geschlossen.