LUKS-Header suchen mit hexdump - stuuuundenlang

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
Benutzeravatar
manes
Beiträge: 958
Registriert: 27.08.2007 11:26:54
Wohnort: Köln
Kontaktdaten:

LUKS-Header suchen mit hexdump - stuuuundenlang

Beitrag von manes » 19.03.2012 17:42:51

hallo forum,

wegen eines festplattenproblems und geistig umnaechtigter rettungsversuche zu nachtschlafender zeit bin ich jetzt mit einer live-cd auf der suche nach dem beginn der luks-partition. (hexdump -C /dev/disk/by-id/ata-TOSHIBA_MK2529GSG_7947W4KAW | grep "4c 55 4b 53 ba be")
seit >72h laeuft nun schon hexdump und ist noch immer nicht fertig, die platte ist 250GB gross und hexdump belegt permanent 100% auf einem kern eines core2duo.
aehh, ist das noch normal? dass es lange dauert, wusste ich ja, aber soo lange?

gruesse
manes
Sometimes you have a programming problem and it seems like the best solution is to use regular expressions; now you have two problems.
David Mertz

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: LUKS-Header suchen mit hexdump - stuuuundenlang

Beitrag von rendegast » 19.03.2012 18:16:51

Läuft bei mir mit ~ 2.5MB/s, hd mit 100%, grep mit 10% auf dem zweiten Kern.
-> 100.000s ~ 1Tag
Aber 3 Tage?
Läuft die CPU unter dem Live-System mit voller Leistung? Vielleicht governor powersave o.ä.?

Es geht zumindest etwas schneller:

Code: Alles auswählen

# dd if=/dev/sda of=/tmp/sda bs=1M count=30
30+0 records in
30+0 records out
31457280 bytes (31 MB) copied, 0.0355381 s, 885 MB/s

# date; nice hexdump -C /tmp/sda > /dev/null ; date
Mon Mar 19 18:34:16 CET 2012
Mon Mar 19 18:34:28 CET 2012
12 Sekunden

# date; nice hexdump  /tmp/sda > /dev/null ; date
Mon Mar 19 18:34:33 CET 2012
Mon Mar 19 18:34:38 CET 2012
5 Sekunden, 6MB/s!
'-x' wäre auch so "schnell",
die anderen Optionen geben anders codierte Ausgaben.




Da hexdump bei weitem nicht die Datenrate einer Platte erreicht,
wären vielleicht mehrere Prozesse möglich.
Als Idee core-Anzahl 100MB-Blöcke (o.ä) in das tmpfs kopieren, und auf jedes einen hexdump ansetzen.
Bei einem Quadcore also gleichzeitig 4 solche Suchen.

Aus den 100.000 Sekunden würden mit dem "richtigen" hexdump 40.000 Sekunden,
und daraus mit zwei Suchprozessen vielleicht 25.000 Sekunden.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Benutzeravatar
habakug
Moderator
Beiträge: 4313
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

Re: LUKS-Header suchen mit hexdump - stuuuundenlang

Beitrag von habakug » 19.03.2012 19:29:26

Hallo!

Ich hatte hier mal ein Tool für diesen Zweck verlinkt [1].
Good Luck!

Gruß, habakug

[1] viewtopic.php?f=37&t=132345#p850032
( # = root | $ = user | !! = mod ) (Vor der PN) (Debianforum-Wiki) (NoPaste)

Benutzeravatar
schorsch_76
Beiträge: 2543
Registriert: 06.11.2007 16:00:42
Lizenz eigener Beiträge: MIT Lizenz

Re: LUKS-Header suchen mit hexdump - stuuuundenlang

Beitrag von schorsch_76 » 19.03.2012 19:35:01

Kennst du diesen Artikel? [1]

Insbesondere den Abschnitt über hexedit?

Gruß
schorsch

[1] http://forum.ubuntuusers.de/topic/anlei ... s-partiti/

wanne
Moderator
Beiträge: 7463
Registriert: 24.05.2010 12:39:42

Re: LUKS-Header suchen mit hexdump - stuuuundenlang

Beitrag von wanne » 19.03.2012 20:20:52

Code: Alles auswählen

dd if=/dev/ | grep -a -b LUKS

Das müsste einigermasen Flott durchlaufen du kannst ja einen 2. prozess in der Mitte der Platte anfangen lassen.
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
manes
Beiträge: 958
Registriert: 27.08.2007 11:26:54
Wohnort: Köln
Kontaktdaten:

Re: LUKS-Header suchen mit hexdump - stuuuundenlang

Beitrag von manes » 19.03.2012 20:46:06

merci allen miteinander fuer die hilfreichen hinweise!
hexdump ist inzwischen ins stolpern geraten:

Code: Alles auswählen

hexdump -C /dev/disk/by-id/ata-TOSHIBA_MK2529GSG_7947W4KAW |grep "4c 55 4b 53 ba be"
hexdump: /dev/disk/by-id/ata-TOSHIBA_MK2529GSG_7947W4KAW: Input/output error
dann kann ich jetzt mal euen links folgen...

gruesse
manes
Sometimes you have a programming problem and it seems like the best solution is to use regular expressions; now you have two problems.
David Mertz

Brancaleone
Beiträge: 62
Registriert: 20.02.2009 14:24:01

Re: LUKS-Header suchen mit hexdump - stuuuundenlang

Beitrag von Brancaleone » 19.03.2012 22:34:36

Da ich gerade am WE meine verschlüsselte Externe aus Versehen komplett formatiert habe ... (VORSICHT: Wenn ihr im Ubuntu-Startdisk-Ersteller eine Partition auswählt und dann auf Format media geht wird DIE GESAMTE HDD FORMATIERT UND NICHT DIE PARTITION !!! Ich hätts mir bei Ubuntu aaaaaber auch denken können ...)

Hier die Wiederherstellung:

1. testdisk deep search rüberlaufen lassen
2. Partitionen werden angezeigt, aber die Größe stimmt nicht (sind nur ein paar KB). Partitionen setzen und Tabelle schreiben.
3. Mit sfdisk -d /dev/sdx > partition die Tabelle kopieren.
4. Die korrekte Größe errechnen und in der Tabelle unter size eintragen
5. mit sfdisk --force /dev/sdx < partition zurückschreiben
6. Partitionen laufen wieder.
7. Entschlüsseln, ro mounten, Backup machen

Klappt leider nicht bei Truecrypt ... da bleibt die Partition verschollen. :(
Im Zweifelsfall die Partition größer wählen, als sie vorher war. Wenn ihr sie zu klein macht, könnt ihr zwar entschlüsseln und mounten, aber es fehlen Daten.

PS Ihr könnt natürlich auch mit fdisk editieren ...
PPS Hab mir gerade den Artikel über Hexedit durchgelesen. Meiner Erfahrung nach ist die Größe das einzige, was testdisk nicht richtig erkennt. Irrelevant, solange wir den Anfang und den der nächsten Partition kennen. Aber wer es sich lieber komplizierter machen will oder sauer ist, kann natürlich auch den Computer zur Rache ein bischen rechnen lassen ... :D
OS:
Debian Testing mit LXDE

Lizenz:
WTFPL V2
http://sam.zoy.org/wtfpl/

wanne
Moderator
Beiträge: 7463
Registriert: 24.05.2010 12:39:42

Re: LUKS-Header suchen mit hexdump - stuuuundenlang

Beitrag von wanne » 19.03.2012 23:25:19

Also als ich mir das letzte mal eine LUKS-Partition zerschossen habe, konnte testdisk die noch nicht finden. Das ist aber auch ne weile her.
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
manes
Beiträge: 958
Registriert: 27.08.2007 11:26:54
Wohnort: Köln
Kontaktdaten:

Re: LUKS-Header suchen mit hexdump - stuuuundenlang

Beitrag von manes » 20.03.2012 08:03:50

hallo forum,
nochmal vielen dank fuer eure hilfe!
ich bin schorsch_76' hinweis auf die suche mit hexedit gefolgt - leider wird das babe-suchmuster nicht gefunden.
jetzt gestehe ich: mein "rettungsversuch" wegen ausufernder ata-fehlermeldungen war ein gedankenloses

Code: Alles auswählen

badblocks -vvws /dev/<device>
Checking for bad blocks in read-write mode
From block 0 to <irgendeine grosse zahl>
Testing with pattern 0xaa: 0.3irgendwas% done, 0:05 elapsed
das ich nach ca fuenf gedenksekunden erst wieder gestoppt habe. ich hatte das mit copy&paste aus irgendeinem thread gefischt hatte, ohne die optionen zu ueberpruefen.
gerechte strafe, dass ich meine daten verloren habe.
die sind doch verloren, oder?

gruesse
manes
Sometimes you have a programming problem and it seems like the best solution is to use regular expressions; now you have two problems.
David Mertz

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: LUKS-Header suchen mit hexdump - stuuuundenlang

Beitrag von Cae » 20.03.2012 09:27:51

Naja, badblocks -w schreibt zufällig (?) bestimmte Pattern auf die Platte, egal, ob da ein Dateisystem drauf ist oder nicht. Nach Murphys Gesetz wirst du natürlich den LUKS-Header erwischt haben, was auch sonst…
Putt ist putt, aber du kannst ja habakugs Empfehlung bgrep ausprobieren, das hat auch den Vorteil, dass man den Umweg über ASCII nicht hat, wie hexdump und grep es machen. Das müsste viel effizienter sein. Der Code sieht nett aus, Lob an den Autor.

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

wanne
Moderator
Beiträge: 7463
Registriert: 24.05.2010 12:39:42

Re: LUKS-Header suchen mit hexdump - stuuuundenlang

Beitrag von wanne » 20.03.2012 10:58:53

Wenn du hexdump -x ausführst verdreht er dir immer 2 Bytes. Du musst also dann nach "554c 534b beba" grepen. Und wenn du pech hast, dann ist ein Zeilenumbruch drin. Ich würde dir empfehlen (b)grep zu nuzen. Aber wenn du badblocks -w voll drüber gelaufen ist, ist nichts mehr zu holen. Der überschreibt schön braf alle Blöcke, um dann zu testen, ob auch wirklich jeder Block beim Auslesen das was er vorher reingeschrieben hat auch enthelt. Da hätte ein n hin ghört.
rot: Moderator wanne spricht, default: User wanne spricht.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: LUKS-Header suchen mit hexdump - stuuuundenlang

Beitrag von rendegast » 20.03.2012 11:19:57

Cae hat geschrieben:zufällig (?)

Code: Alles auswählen

... (0xaa, 0x55, 0xff, 0x00) ...
jeweils ein kompletter Durchgang
10101010
01010101
11111111
00000000
-> "systematisch"
Wanne hat geschrieben: Da hätte ein n hin ghört.
Der "non-destructive" Write-Modus schreibt zufällige Daten.
Ist aber nur Nicht-zerstörend, wenn der Datenträger wirklich fehlerfrei ist.
Sollte ein Fehlerblock festgestellt werden, können die zuvor ausgelesenen und im Arbeitsspeicher abgelegten Nutzdaten vielleicht nicht mehr zurückgeschrieben werden. -> Datenverlust
Und in diesem Fall ist von fehlerhafter Hardware auszugehen, der Auslöster waren ja ATA-Fehler.
Zuletzt geändert von rendegast am 20.03.2012 11:22:40, insgesamt 1-mal geändert.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: LUKS-Header suchen mit hexdump - stuuuundenlang

Beitrag von Cae » 20.03.2012 11:22:31

rendegast hat geschrieben:-> "systematisch"
Aha, danke für die Aufklärung!

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Benutzeravatar
manes
Beiträge: 958
Registriert: 27.08.2007 11:26:54
Wohnort: Köln
Kontaktdaten:

Re: LUKS-Header suchen mit hexdump - stuuuundenlang

Beitrag von manes » 20.03.2012 12:31:46

Cae hat geschrieben:Naja, badblocks -w schreibt (...) bestimmte Pattern auf die Platte, egal, ob da ein Dateisystem drauf ist oder nicht. Nach Murphys Gesetz wirst du natürlich den LUKS-Header erwischt haben, was auch sonst…
Putt ist putt, aber du kannst ja habakugs Empfehlung bgrep ausprobieren,(...)
es waren wirklich nur eine handvoll gedenksekunden, bis ich kapiert habe, was ich da anrichte und dann habe ich den prozess gestoppt. wenn aber hexedit das babe-muster nicht findet, nutzt doch auch ein anderes, effizienteres tool wie bgrep nix. wo nix ist, kann man auch nix finden!?
diese 0xaa-muster werden doch auch nicht nur auf die ersten zwei byte des sektors geschrieben, sondern der sektor wird vollgeschrieben: aa aa aa aa aa..., korrekt?
weil ausser /boot die gesamte platte verschluesselt ist, wird badblocks auch recht schnell am luks-header angekommen sein, ihn ueberschrieben haben und deshalb ist da nix mehr zu finden.
sind meine ueberlegungen grob unzutreffend?

und nochmal vielen dank fuer eure unterstuetzung!

gruesse
manes
Sometimes you have a programming problem and it seems like the best solution is to use regular expressions; now you have two problems.
David Mertz

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: LUKS-Header suchen mit hexdump - stuuuundenlang

Beitrag von rendegast » 20.03.2012 13:45:41

manes hat geschrieben: diese 0xaa-muster werden doch auch nicht nur auf die ersten zwei byte des sektors geschrieben, sondern der sektor wird vollgeschrieben: aa aa aa aa aa..., korrekt?
Das Muster wird linear auf die ganze Platte geschrieben,
nach 5s also 200-500MB je nach Plattengeschwindigkeit.
Einfach nachzuprüfen zBsp. mit einem VM-Image.

Anders der "non-destructive" Schreibtest, der nimmt sich immer einen Teilbereich vor.
Statistisch werden dabei nur die Hälfte aller Bits gekippt.
Die Chance, defekte Sektoren bestätigt zu bekommen ist dennoch hoch,
da wohl meist nicht nur einzelne defekte Bits existieren.
Der Test ist insgesamt lahm, und/weil erzeugt viele Kopfbewegungen
-> noch schnellerer Plattentod eines angeschlagenen Datenträgers.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

wanne
Moderator
Beiträge: 7463
Registriert: 24.05.2010 12:39:42

Re: LUKS-Header suchen mit hexdump - stuuuundenlang

Beitrag von wanne » 24.03.2012 02:08:00

Wenn du in etwa weist, wie groß die /boot partition war und dann die anzahl an blöcken überspringen und mal count=1 ausgeben lassen. wenn da nur aa rauskommt ist der header wahrscheinlich weg.
Prinzipiell kann es sein, dass ein zeilenumbruch im LUKS header ist, und du deswegen nichts findest. Aber das ist unwahrscheinlich, da eine Vernünftige Patitionierung an 512 Blöcken anfängt.
ABER:
Wenn du hexdump -x ausführst musst du die Zeichen vertasuchen:
=> Du must nach beba nicht nach babe greppen!
Der ganze Befehl ist dann

Code: Alles auswählen

dd if=/dev/sde6 | hexdump -x | grep -n -E "554c[[:space:]]*534b[[:space:]]*beba"
Oder eben alternativ:

Code: Alles auswählen

dd if=/dev/sde6 | hexdump -C | grep -n -E "4c 55 4b 53 ba be" #langsam
dd if=/dev/sde6 | grep -ab "LUKS" #schnell
rot: Moderator wanne spricht, default: User wanne spricht.

Benutzeravatar
manes
Beiträge: 958
Registriert: 27.08.2007 11:26:54
Wohnort: Köln
Kontaktdaten:

Re: LUKS-Header suchen mit hexdump - stuuuundenlang

Beitrag von manes » 02.04.2012 16:37:21

vielen dank für eure engagierte hilfe!
der header war nicht mehr aufzufinden, also ist der luks-container mindestens bis zur serienreife von quantenrechnern sicher vor mir.
außer zwei monaten mailkorrespondenz und meiner steuererklärung habe ich nichts wichtiges verloren. naja.
habe den neuen "spinning rust" genutzt, mal endlich von lenny kde 3.5 auf wheezy zu wechseln.
ein backup vom header und die position auf der platte mache ich mir noch...
danke nochmals!

grüße
manes
Sometimes you have a programming problem and it seems like the best solution is to use regular expressions; now you have two problems.
David Mertz

Antworten