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

Partitionstabelle mit testdisk reparieren

Falkenstein

Hacker
Ich habe meine Partitionstabelle des home-Verzeichnisses bei einem Crash verloren.
Es handelt sich um crypto ext3.
Wenn ich Testdisk mit "Intel-Partition" laufen lasse findet er nichts.
Wenn ich Testdisk mit "none"-Partition laufen lasse findet er sie aber "Write-Support is disabled because "none" is selected".
Wie stelle ich das genau wieder her?

Dank Euch
 
Über die (Abwesenheit von) Erfolgen mit testdisk brauche ich nicht zu berichten. Oft ist das eigene Auge schneller und präziser.

Nundenn, da es sich hier um Crypto handelt sollte man zumindest noch sein Passwort wissen. Ist das geschafft, legt man in gegebenen Intervallen die Cryptomaske auf, und prüft ob sich eine Dateisystemssignatur findet. Sollte die Partition die erste auf der Platte gewesen sein (und es liegt eine MS-DOS-Partitionstabelle vor), kann man sich das direkt sparen (liegt eh am Anfang).
Code:
for ((i = 0; i < $plattenGroesseInByets; i += 512)); do
        losetup -r /dev/loop0 /dev/sdb;
        cryptsetup create $sonstige_parameter --key-file=password.txt /dev/loop0 home;
        blkid /dev/mapper/home && break;
        cryptsetup remove home;
done;
Evtl. muss man etwas rumspielen mit den Parametern für cryptsetup sodass das Passwort auch "richtig" ist (komisches Verhalten --key-file=, na zumindest ist es in der Manpage erklärt).
Eilige können u.U. eine Abkürzung mit i+=1024 nehmen (aber nicht größer), 1024 wird aber Partitionen auf dem 1.Sektor nicht finden—verdank das dem MSDOS-Layout—aber s.o.
 
OP
Falkenstein

Falkenstein

Hacker
Oh Danke.

Hab bereits eine Partition mit testdisk gefunden gehabt, wiederhergestellt und diese war nur 7,81MB gross.
Also zeigt sie nur den Anfang der Daten, das klappt immerhin.
nun hab ich versucht sie mit sfdisk zu vergrössern und er erkennt den Dateisystemtyp nicht mehr.
Wie komm ich weiter?

Danke fürs helfen.

Achso: Ja es gibt nur eine PArtition auf dieser Festplatte. bzw. gab sie.
 
OP
Falkenstein

Falkenstein

Hacker
die partition hab ich offenbar wieder.
wenn ich sie einhängen will bekomm ich:
linux-kwq2:/etc/init.d # ./boot.crypto start
Activating crypto devices using /etc/crypttab ...
cipher, hash, size, pseed and itercountk options are ignored for LUKS
Please enter passphrase for /dev/disk/by-uuid/6f76c1d5-6852-4e72-a8c7-c3f85033f9c8 (data):
Please enter passphrase for /dev/disk/by-uuid/6f76c1d5-6852-4e72-a8c7-c3f85033f9c8 (data):
Enter LUKS passphrase:
Please enter passphrase for /dev/disk/by-uuid/6f76c1d5-6852-4e72-a8c7-c3f85033f9c8 (data): Command failed: No key available with this passphrase.

/dev/disk/by-uuid/6f76c1d5-6852-4e72-a8c7-c3f85033f9c8... failed

und im yast: "unknown filesystem crypto_luks"

hm weiss nich weiter leute...
 
Falkenstein schrieb:
Hab bereits eine Partition mit testdisk gefunden gehabt, wiederhergestellt und diese war nur 7,81MB gross.
Naja ich traue da testdisk einfach nicht. 7 MB, das müsste doch auch dir suspekt erscheinen! Sorry aber mit 7 MB gebe ich mich nicht zufrieden.
Achso: Ja es gibt nur eine PArtition auf dieser Festplatte. bzw. gab sie.
Na dann ist doch einfach. Starte fdisk, und lege eine Partition an, mit maximaler Größe. Ob by-uuid/6f7 auch wieder 6f7 wird kann ich nicht sagen. Aber du kannst sie ja mittels /dev/sdXY ansprechen.
 

josef-wien

Ultimate Guru
Die UUID wird beim Formatieren festgelegt (und kann nachträglich z. B. mittels tune2fs geändert werden), die Partitionentabelle spielt da nicht mit.
 
Eben das dachte ich auch, somit verwunderte es, dass by-uuid genutzt wurde. (Ich selber verwende by-id, denn das geht mit Partitionen allein, wenn der Crypto-Container noch nicht entschlüsselt vorliegt.)
 

josef-wien

Ultimate Guru
Sowohl /dev/disk/by-id/... also auch /dev/disk/by-uuid/... (und natürlich auch /dev/disk/by-label/... und /dev/disk/by-path/...) sind Verknüpfungen auf die Gerätekennung (/dev/sd..), die seit der Verwendung von libata nicht mehr dauerhaft ist, sondern jeweils beim Hochfahren des Systems zugeordnet wird. Die genannten Verknüpfungsbegriffe dagegen sind dauerhaft (die Verknüpfungen selbst werden ebenfalls beim Hochfahren des Systems erstellt), zumindest solange, als es keine diesbezüglichen Eingriffe (z. B. UUID ändern, Label ändern, Platten anders anschließen) gibt. Lediglich "by-id" kannst du nicht ändern, da hier hauptsächlich Herstellerbezeichnung und Seriennummer verwendet werden.
 
Oben