• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

erweiterte Partitionstabelle wiederherstellen?

lOtz1009

Moderator
Teammitglied
Moin,

dank der Windows Datenträgerverwaltung sind bei einem Rechner die Linux-Partitionen aus der erweiterten Partition verschwunden. Keine Ahnung was Windows da gemacht hat. Der User hat nur die Boot-Partition von Windows als aktiv gesetzt, und dann waren sie nicht mehr :D

Ich habe jetzt mal Testdisk über die Platte laufen lassen, das Problem ist jedoch dass zwei der Partitionen mit LUKS verschlüsselt waren.
Testdisk findet alle Partitionen (soweit ich das überblicken kann), allerdings nicht auf die Art und Weise, wie es sein sollte. Jedenfalls werden für die Partitionen unterschiedliche Start- und Endsektoren angegeben, als dies jetzt der Fall ist (und ich kann mir eigentlich nicht vorstellen, dass die erweiterte Partition an sich auf einmal etwas verschoben auf der Festplatte liegen soll).

Die erweiterte Partition an sich ist noch vorhanden, ebenso ein logisches (NTFS-)Laufwerk. Der Rest wird derzeit als unbelegter Platz in der erweiterten Partition angezeigt.

Ist es generell möglich, den Aufbau der erweiterten Partition wiederherzustellen (inkl. der verschlüsselten Partitionen? "swap" und "/" werden durch Testdisk gefunden, die beiden Verschlüsselten allerdings nur mit der Größe 0.
Oder kann ich mir den Aufwand sparen und dem User gleich klarmachen, dass die Daten futsch sind?

Etwaige Konsolenausgaben kann ich heute Abend per Knoppix nachliefern.
 
Die verschlüsselten Partitionen haben eine Größe von 0, weil Testdisk vermutlich noch nicht damit umgehen kann. Welche Testdisk Version verwendest du?

Du kannst, um Datenverlust auf der Platte zu vermeiden, mit dd ein 1:1 Image ziehen, das Image in eine VM einbinden, per Live-CD Booten und dann versuchen die Partitionen per Testdisk wiederherzustellen.

Was sagt den eigentlich
Code:
fdisk -l
zu den Partitionen?
Ich weiss nicht, ob es ein Bug oder ein Feature von Win7 ist, dass sich die "Bootpartition" über die Partitionsgrenze hinwegsetzt. Es ist bestimmt aber ersteres und wird auch bestimmt nicht gefixt. Man kennt ja M$.

Am besten macht man mit der Datenträgerverwaltung nichts, sondern verwendet ein anderes Programm für so etwas, was eigentlich auch für das System gilt.;) :D (ausser fürs Gamen)
 
OP
L

lOtz1009

Moderator
Teammitglied
500 GB Image sprengt momentan den Rahmen.
Ich habe es mittlerweile hinbekommen, die verschlüsselten Partitionen manuell einzubinden und die Daten zu sichern (wenn man den LUKS Header findet, ist das sogar sehr leicht!).

Wenn ich bei Testdisk (6.11) die erweiterten Einstellungen ändere und die Ausrichtung an den Zylindern deaktiviere, werden auch alle Partitionen gefunden und mit den richtigen Startzylindern angegeben (bei den verschlüsselten Partitionen leider die Endzylinder nicht, da Größe=0).

Werde dann mal die Win7 Daten sichern und dann den Vorschlag von Testdisk speichern lassen. Vielleicht reicht das schon.
Falls nicht, wird die erweiterte Partition einfach neu angelegt, Linux neu installiert und die Daten zurückkopiert.

Code:
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x8178dd36

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800    7  HPFS/NTFS
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        7675    61443613+   7  HPFS/NTFS
/dev/sda3            7676       58876   411265506+   f  W95 Ext'd (LBA)
/dev/sda4           58876       60802    15471640   12  Compaq diagnostics
/dev/sda5           55091       58876    30403584    7  HPFS/NTFS
 
lOtz1009 schrieb:
500 GB Image sprengt momentan den Rahmen.
Ich habe es mittlerweile hinbekommen, die verschlüsselten Partitionen manuell einzubinden und die Daten zu sichern (wenn man den LUKS Header findet, ist das sogar sehr leicht!).

Teilst du uns auch mit, wie man den LUKS Header findet?
 
OP
L

lOtz1009

Moderator
Teammitglied
Aufbau des LUKS-Headers
Wichtig ist dabei Offset 0: LUKS, 0xBA, 0xBE
Bzw. in HEX: 4c 55 4b 53 ba be

Jetzt kann man natürlich über hexdump -C /dev/sda | grep "4c 55 4b 53 ba be" die komplette Festplatte nach diesem/n Header/n durchsuchen (wobei das ziemlich lange dauern kann). Wenn man bereits weiß, an welchem Byte der Header sitzt, kann man natürlich auch erstmal dort schauen, in diesem Fall hexdump -C -s 99633594368 /dev/sda | grep "4c 55 4b 53 ba be"
Wenn man nur ungefähr weiß, wo der Header sitzen könnte, z.B. weil vor der verschlüsselten Partition noch unverschlüsselte waren, kann man auch die Größe der vorherigen Partitionen zusammenrechnen und ungefähr diesen Wert als Anfang für die Suche nehmen, das spart auch Zeit.

Ausgabe sieht dann beide Male ungefähr so aus:
Code:
1732a00000  4c 55 4b 53 ba be 00 01  61 65 73 00 00 00 00 00  |LUKSºŸ..aes.....|
Dezimal: 1732a00000 → 99633594368 (kann man sich z.B. dort ausrechnen lassen)

Jetzt wissen wir also, an welchem Byte der Header sitzt.

Loopdevice erstellen: losetup -o 99633594368 /dev/loop1 /dev/sda
LUKS-Partition öffnen: cryptsetup luksOpen /dev/loop1 Daten
Mounten: mount /dev/mapper/Daten /media/Daten

Und nun hat man Zugriff auf den Inhalt des verschlüsselten Laufwerks.
 
Oben