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

Testdisk

SaHel

Member
Hallo,

Ich hatte gestern ein Problem mit der Partitionstabelle. Dieses Problem konnte ich via Testdisk lösen. Soweit sogut.

Nun zu meiner Frage:

Als ich diesen Testdisk mit dem "deep scan" über meine Festplatte laufen lies, taten sich Abgründe auf.... Da wurden sämtliche Partitionen, die ich in den letzten 4,5 Jahren angelegt, verändert oder gelöscht habe aufgelistet.

Weiss jemand an welchem Ort diese Informationen stehen und vor allem wie kann ich die löschen so dass nur die jetzt aktuellen Partitionen hinterlegt sind?

Der Hintergrund ist: wenn mir parallel nicht fdisk resp. cfdisk einigermassen vernünftige Partitionsinformationen geliefert hätten, hätte ich keine Chance gehabt diese Tabelle zu korrigieren.

Besten Dank im voraus
SaHel
 

th.giese

Hacker
Hallo,

dass diese alten Informationen noch vorhanden waren/sind liegt wohl daran, dass die Partinionier-Programme heute zu löschende Plattenanteile nur ausblenden und nur bei Bedarf neu beschreiben, wenn kein anderer Bereich auf der Platte frei ist.
Die einzigste mir bekannte effektive Methode eine Platte vollständig zu löschen, ist das Überschreiben aller Bereiche mit Nullen.
 
OP
S

SaHel

Member
Es ist ein Drama...

So sieht die Platte jetzt aus (es funktioniert zwar alles perfekt)
http://www.mle.bplaced.de/cfdisk1.png

und so sah die Platte vor etwa einem Jahr aus:
http://www.mle.bplaced.de/cfdisk.png

Naja vielleicht hat ja jemand einen Vorschlag.

SaHel
 

josef-wien

Ultimate Guru
SaHel schrieb:
Weiss jemand an welchem Ort diese Informationen stehen
Primäre Partitionen stehen im MBR, aber logische Partitionen sind einfach eine Kette, d. h. in einer logischen Partition stehen die Informationen über diese Partition sowie die Adresse der nächsten Partition. Wenn Du z. B. vier logische Partitionen hast, die dritte davon löschst und die zweite entsprechend vergrößerst, dann stehen sämtliche Daten der ehemaligen dritten Partition immer noch an derselben Stelle. Es ist hier nicht anders als bei Dateien, auch deren Inhalt bleibt gespeichert, bis die jeweiligen Sektoren der Festplatte mit anderen Werten versehen werden.

Deine beiden Bilder zeigen, daß auch testdisk keine Wunder wirken kann, aber das Ergebnis ist immer noch besser als verlorene Daten. Ob Du damit lebst oder die Partitionen um die derzeitigen Leerräume vergrößerst oder zur Ausschaltung des Restrisikos Deine Daten sicherst und danach neu partitionierst, ist Deine Entscheidung (ich würde letzteres machen).

Du solltest über eine Sicherung Deiner Partitionentabellen nachdenken.
 
OP
S

SaHel

Member
josef-wien schrieb:
Primäre Partitionen stehen im MBR, aber logische Partitionen sind einfach eine Kette, d. h. in einer logischen Partition stehen die Informationen über diese Partition sowie die Adresse der nächsten Partition.
Ok, wenn ich also die dazugehörigen Daten sichere und die logischen Partitionen neu einrichte mag das Problem vielleicht vordergründig gelöst sein.... Meine Frage war aber:
SaHel schrieb:
Weiss jemand an welchem Ort diese Informationen stehen und vor allem wie kann ich die löschen so dass nur die jetzt aktuellen Partitionen hinterlegt sind?
Sagen wir das so: wenn ich also sämtliche extented Partitionen lösche und den Plattenplatz mit den extended Partitions (nicht der anderen primary Partitions) mit zero initialisiere, sind diese Alt-Informationen auch gelöscht??

Besten Dank für euere Hilfe
SaHel
 
A

Anonymous

Gast
SaHel schrieb:
Meine Frage war aber:
Weiss jemand an welchem Ort diese Informationen stehen....
Ja sicherlich und, was soll dir das helfen?
diese könnten sich in jedem ersten 512 Block der jemals eine erweiterte oder logische Parition war noch befinden wenn dieser Block bis jetzt noch nicht mit anderen Daten überschrieben wurde. Dort sind es genau die letzten 66 Byte dieses ersten 512 Blocks. Und ungültig könntest du diese machen, wenn du von diesen letzten 66 Byte die letzten beiden Byte, in denen wenn sie noch nicht überschrieben sind die Hexadezimalwerte 0x55 0xAA stehen, in irgendwas Anderes änderst.

Und was bringt dir das jetzt ? Hast du eine Auflistung "fdisk -ul" aller Partitionstabellen die du jemals bewußt oder unbewußt auf die Platte geschrieben hast, damit du nachschauen kannst ob die entsprechenden Blöcke schon überschrieben worden sind? Wenn du zufällig irgendwelche Plattenimage , kopien von MBRs und wenn es nur welche von USB-Sticks oder ähnlichen sind, auf der Platte gibt, werden diese von Testdisk eventuell auch als mögliche Bestandteile einer gültigen Partitionstabelle erkannt. Mit sowas rechnet Testdisk nicht und tut sich dann auch schwer alles unmögliche auch sauber auszuschließen.

Wenn du Lust hast kannst du ja auch selbst suchen. der "deep scan" von Testdisk macht auch nur das nur eben binär und mit ein bisschen mehr Intelligenz in dem es die vorhergehenden 64 Byte natürlich versucht auswertet und schaut ob die Partitionsangaben dort irgendwie zusammenpassen könnten und einen Sinn ergeben. Ein ext2/3/4 Superblock der 512 Byte später beginnt, würde zB als untrügliches Zeichen für einen aktuellen Partitionanfang gewertet. Ungeachtete natürlich, das auch dieser Filesystemsuperblock durchaus auch eine uralte Leiche im Filesystem sein könnte, die noch aus Uralten Zeiten stammt, oder aber auch eine der zahlreichen Superblockkopien die es innerhalb eines Filesystem gibt.

Folgende Kommandozeile sucht manuell auf der Konsole nur alle möglichen Kandidaten. Den Eintrag vom MBR habe ich mal vorsichtshalber rausgeschnitten. Von dem solltest du auf alle Fälle die Finger lassen.
Code:
hexdump -vC /dev/sda | sed -ne '/[0-9a-f]\{5\}[13579bdf]f0/s/^\(.* 55 aa  .*\)/\1/p ' | sed  '1d '
wird vielleicht ein paar Tage oder Wochen dauern bis dabei die ersten Ausgaben kommen. Macht nichts, danach musst du nur noch entscheiden welche dieser Einträge jetzt zu deiner aktuellen Partitionstabelle gehört und welche nicht, und welcher zu einer normalen Datei gehört die nur zufällig an dieser Stelle 55 aa stehen hat. Ein Taschenrechner, die aktuelle Partitionstabelle, debugfs und hexdump hilft hier weiter. Wenn du fertig bist, bist du Spezialist und kannst die Partitionstabelle in Zukunft auch mit einem hexadezimal Editor erstellen.

SaHel schrieb:
Sagen wir das so: wenn ich also sämtliche extented Partitionen lösche und den Plattenplatz mit den extended Partitions (nicht der anderen primary Partitions) mit zero initialisiere,
Lass es bleiben, sichere einfach deine jetzige Partitonstabelle wenn sie funktioniert und gut ist. Verkorkst ist sie schon jetzt genug. Die kleinen Löcher dazwischen kommen wahrscheinlich von ungenauen Optionen bei Reparaturversuchen mit fdisk oder cfdisk. Wenn du mit den Optionen der Bilder dort gearbeitet hast, überlege mal 0.01MB (der kleinste Wert der auf dem Bild zu unterscheiden ist) das sind 10KB oder 2,5 Filessystemblöcke a 4KB oder aus Plattensicht gesehen sind das 20 Blöcke a 512 Byte. Und genau diese Genauigkeit von 512er Plattenblöcke ist das was in der Partitionstabelle hinterlegt ist. Eine gehörige Ungenauigkeit um damit ein Partitionstabelle wieder 100%genau aufzubauen zu wollen. Ist wie mit Boxhandschuhen einen Zwirn in eine Nadelöhr zu fädeln. Kannst du nur hoffen das du das Ende der Filesysteme dadurch nicht beschnitten hast, sonst merkst du das beim nächsten kompletten Filesystemcheck. Das auf der Platte noch irgendwo Blöcke mit uralten Daten sind, bemerkt ansonsten nur Testdisk bei einem Scan über alle Blöcke, und das braucht man erst wenn man sich die Partitionstabelle zerschossen hat, (was an sich schon ein kleines Kunststück ist) und dann feststellen muss das man keine blockgenaue Sicherung oder Kopie davon hat.

Ansonten mach eine Backup aller Daten aller Partitionen und hebe sie gut auf, oder mach gleich die Platte oder zu mindestens die komplette Erweiterte Partition komplett platt und baue sie mit dem Backup neu und sauber wieder auf. Alte ehemalige Partitionsbestandteile stören da beim Neuaufbau der Platte nicht. Sie werden zu 99,9% irgendwelche Datenbereiche die irgendwann überschrieben werden.

robi
 
OP
S

SaHel

Member
Besten Dank @robi für die ausführliche Antwort. Ich habe nun etwas gesucht und bin hier fündig geworden, wo das mit den ext. Partitionen recht gut erklärt ist
http://en.wikipedia.org/wiki/Extended_boot_record
Jetzt leuchtet das ein, dass natürlich die alten Partitionsinformationen einer 4,5 Jahre alten HDD mehr oder weniger zufällig via Testdisk noch gefunden werden oder auch nicht (wenn sie eben überschrieben wurden).
Ich denke ich kann damit leben, da wie ja oben erwähnt das System stabil läuft.

Nochmals besten Dank für euere Antworten
SaHel
 
Oben