"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

Encrypted LUKS partition mit gparted vernichtet - wie wiederherstellen?

downhillschrott 04.01.2018 - 22:06 2820 5
Posts

Valera

Here to stay
Registered: Dec 2005
Location: Mint
Posts: 683
Hallo!

Ausgangsituation: Mein Laptop ist ein Linux Mint System, dessen SSD mit LUKS komplett verschlüsselt ist. Auf diesem verschlüsselten Laufwerk gab es / /home und eine swap.

Was ist passiert?
Ich wollte ein USB Laufwerk mit gparted komplett löschen und eine neue Partiton erstellen. Bloß habe ich aus Blödheit meine Systemplatte sda ausgewählt. Also auf sda alle Partitionen gelöscht und eine primäre erstellt. Alle Warnungen natürlich ignoriert, ich weiß ja schließlich was ich tue du dummer Compi! :-p

Backup vorhanden!
Es gibt ein paar Tage altes Backup. Es geht um ca. 4 emails und 2-3 Dateien die seitdem dazugekommen sind, also nicht wirklich schlimm, aber: Ich will wissen wie und ob das überhaupt geht!

Derzeit ziehe ich mit dd meine sda auf ein Image file auf eine USB Platte. Mein Ansatz wäre das Image zu mounten und mit testdisk und deep search auf dem Image die LUKS Partitionen finden und dann die Partitionen wiederherstellen. Mit dem Passwort entschlüsseln, das ganze sichern und wenn die Daten da sind den Laptop komplett neu installieren und /home aufspielen. Wenn was daneben geht ein neues Image ziehen usw.

Klingt das machbar?
Sobald ich anfange und die ersten Fehlermeldungen eintrudeln werde ich dann natürlich detailliertere Fragen haben.

Danke auf jeden Fall für jeden Input!

PS: Alle Beschimpfungen und bösen Kommentare sind berechtigt und ich habe es verdient. Aber es gibt ein Backup! :)

Valera

Here to stay
Registered: Dec 2005
Location: Mint
Posts: 683
Alle Befehle mit su auf einer Linux Mint 18.3 Live Session (USB Stick)

fdisk -l /dev/sda ergibt eine Partition sda1
/dev/sda1 232.9G Type HPFS/NTFS/exFAT

Ich habe mit dd if=/dev/sda of = /pfad zu externer platte/name.img bs=4K status progess
sowie dd if=/dev/sda1 of = /pfad zu externer platte/name1.img bs=4K status progess

2 images auf eine externe USB Platte gezogen. Wenn ich jetzt versuche mit
mount -o loop /pfad zu image datei/name1.img /pfad zu einheängepunkt
das ganze zu mounten bekomme ich eine Fehlermeldung
mount: wrong fs type, bad option, bad superblock, or other error
In syslog ist darüber nix zu finden.
??

Wo hab ich den Denkfehler?

Rogaahl

Super Moderator
interrupt
Avatar
Registered: Feb 2014
Location: K
Posts: 2305
Wenn es ein image von der gesamten SSD ist musst du den Partitions offset angeben. Suche mal nach "dd mount offset", "sfdisk -l -uS". Falls die originale Partition vorhanden ist kann man mit "kpartx -av" die partitionen mappen für
/dev/mapper.

Falls nicht die Partitionen sondern die SSD verschlüsselt war, wäre es einfacher zu entschlüsseln und dann ein dd image zu ziehen..
Bearbeitet von Rogaahl am 05.01.2018, 21:43

Valera

Here to stay
Registered: Dec 2005
Location: Mint
Posts: 683
Ich hab beides gemacht. Image von ganzer Disk und von der "frisch erstellten" sda1.

sda1 wollte ich einbinden, das hat nciht funktioniert. Aber ich bin gerade dabei zu überlegen: Die neue sda1 hat mit dem "alten" Layout nichts zu tun. Es wird notwendig sein die gesamte Disk einzuhängen, da die neue Partitionstabelle ja denn evtl ohne LUKS Header daherkommt.

Es wurde mit LUKS verschlüsselt. Daher muß ich die Partitionstabelle wiederherstellen, damit ich auf den LUKS Header komme um das ganze zu entschlüsseln.

Zumindest denke ich das.

Wie auch immer, ich habe jetzt parallel dazu das Image der ganzen Disk auf einen Windows Rechner kopiert, dort gemountet und lasse das jetzt mit Testdisk deep Search absuchen. Wird ein paar stunden dauern.

Fage zu testdisk: Am Anfang wird man danach gefragt welchen Partitionstyp man sucht. Standardmäßig hat er none vorgeschlagen, ich habe auf Intel geändert. War das Blödsinn oder ist das beim deep Search egal?? Ich finde dazu nichts im Netz.

Valera

Here to stay
Registered: Dec 2005
Location: Mint
Posts: 683
Bevor ich weitermache hab ich mir gedacht ich suche mal den LUKS Header ob der überhaupt noch da ist.

Code:
hexdump -C /dev/sda | grep LUKS


Code:
0f500000  4c 55 4b 53 ba be 00 01  61 65 73 00 00 00 00 00  |LUKS....aes.....|

Das müsste der richtige Header sein. Wie komme ich jetzt wieder zu meinen Sachen. Muß ich die originale Partitionstabelle herstellen, oder kann ich direkt mit der Position den LUKS Header wiederherstellen und damit die ganze Sache entschlüsseln. Mehr brauch ich nicht, die Daten sichere ich weg und dann installiere ich neu.
Bearbeitet von Valera am 05.01.2018, 22:58 (typo)

Valera

Here to stay
Registered: Dec 2005
Location: Mint
Posts: 683
Das ganze war ein wenig einfacher als gedacht. Habe die img und testdisk etc garnicht benötigt.

Wie schon erwähnt der LUKS Header beginnt bei 0xf500000

Also von dort weg die Platte in ein loop Device gemounted:

Code:
# losetup -o 0xf500000 -r -f /dev/sda
# losetup -a
/dev/loop1: [0006]:12041 (dev/sda), offset 256901120
# cryptsetup luksOpen /dev/loop1 luksrecover
Enter passphrase for /dev/sda:  [Keine Fehlermeldung ..funkt! :) ]
# mount -o ro,noload /dev/mapper/mint--vg-root /Pfad zu Einhängepunkt
Und jawohl! Dort ist die komplette Platte zu finden.. Cool. Also in /home navigiert und von dort alles auf eine externe Platte gesichert.

Einziges Problem: Anscheinend kann root nicht alle Sachen lesen mangels Zugriffsrecht (???) Wegen read only kann ich den Besitz nicht übernehmen. Na schaun wir mal wie oft das vorkommt.
Ansonsten erstelle ich mal schnell meinen User und mache das ganze damit.

edit: Sehr hilfreich war folgender Link: https://unix.stackexchange.com/ques...partition-table Danke an die Beteiligten dort.

edit: Zugriffsrecht gelöst.
Zuerst meinen user mit usernamen und passwort hinzugefügt.
Dann hat root meinen Namen übernommen.
Code:
# adduser  usernamen
# su usernamen
# cp -r Pfad zu homeverzeichnis/. /Pfad zu Sicherung auf die username schreiben darf
Bearbeitet von Valera am 06.01.2018, 00:43 (Link hinzugefügt)
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz