dm-crypt/LUKS Partition kaputtgemacht



  • Hi,

    ich hab nen scheußlichen Fehler gemacht.

    Ich hab meine LUKS-Partition irgendwie mit e2fsck kaputt gemacht. Ich habe e2fsck -b x /dev/sdax ausgeführt und wie wild 'yes' eingegeben, da stand irgendwas mit "INode X Clean?" und ich immer yes getippt, das ging dann so weiter bis INode 30 oder so und dann hab ich CTRL+C gedrückt, weil ich auf einmal garnicht mehr sicher war, was ich da tu... Als das nächste Mal die Passphrase abgefragt wurde, war sie nicht mehr gültig.

    Habe ich den LUKS-Header kaputt gemacht? Kann ich den irgendwie reparieren/überschreiben? Kann ich den Rest der Daten - den ich noch nicht kaputt gemacht hab - irgendwie entschlüsseln? Ich kenn ja noch die alte Passphrase.

    Wenn ich mount /dev/sdax /mnt mache bekomme ich folgende Fehlermeldung:

    mount: unknown filesystem type 'crypto_LUKS'
    

    was bedeutet, dass /dev/sdax immer noch ein LUKS-Filesystem ist. Also ganz kaputt ist es also nicht.

    Was mach ich denn jetzt?
    Bitte um Hilfe.



  • Aus der Manpage:

    LUKS header: If the header of a LUKS volume gets damaged, all data is permanently lost unless you have a header-backup. If a key-slot is damaged, it can only be restored from a header-backup or if another active key-slot with known passphrase is undamaged. Damaging the LUKS header is something people manage to do with surprising frequency.

    Hast du ein Backup? Warum nicht?

    Das Layout des Headers steht hier auf Seite 6.

    Ein Backup kannst du jetzt noch so erzeugen:

    cryptsetup luksHeaderBackup <device> --header-backup-file <file>
    

    Dann lädst du die Datei in einen Hexeditor und schaust mal nach, ob du darin noch irgendetwas ausmachen kannst. Wenn nur in den ersten 112 Bytes etwas vermurkst ist, könntest du das von Hand richten. Wenn der Masterkey oder alle aktiven Keyslots beschädigt sind, dann wars das natürlich, wie es ja schon in der Manpage steht.

    Zum entschlüsseln reicht deine Passphrase alleine nicht, weil dir die nur den (wesentlich längeren) Masterkey entschlüsselt, mit dem deine Daten wirklich verschlüsselt sind.



  • Das klingt nach harter Arbeit.

    Aber ich hab schonmal ein Backup der Disk mit ddrescue gemacht!

    Ein file image.img gibt mir folgendes aus:

    image.img: LUKS encrypted file, ver 1 [aes, xts-plain64, sha256] UUID: <MYUUID>
    

    Aber das hat mein Problem jetzt irgendwie nicht gelöst, da das Passwort immer noch nicht mit dem was ich eingebe übereinstimmt. Ein leeres Passwort, also ein Passwort ohne Zeichen ist es jedenfalls nicht. Mal so ne Frage am Rande: Angenommen man macht sich den Header mit e2fsck kaputt, was für einen Inhalt beinhaltet dann das Passwort? Etwa einen Haufen Nullen?

    Ich will mal annehmen, dass nur der Header im LUKS-Format ist und der Rest, also die Daten die drauf sind, immer noch im ext4-Format. Gibt es einen Weg nur den Header des Filesystems neu zu schreiben, sodass es wieder ein valides ext4-Filesystem ist und ich es somit einfach mounten kann? Ansonsten, gibt es vielleicht noch eine Möglichkeit mit dd die Daten von der Platte zu extrahieren?

    Ich trau mich nicht richtig weiter, ich will nicht noch mehr kaputt machen.

    Bin für jede Hilfe sehr dankbar.



  • Ich hab das anyfs-tools package installiert, build_e2fs scheint aber nicht dabei zu sein. Die man-page hab ich aber davon. Wenn ich anyconvertfs benutz bekomm ich folgende Fehlermeldung:

    Cannot find "build_e2fs". It is neccessary for converting to ext3
    

    Ein pacman -Ss build_e2fs gibt nichts aus. Im AUR ist auch nichts dergleichen. Ich finde nicht einmal die gleiche Fehlermeldung im Internet. Wie komme ich an build_e2fs ran?
    Gibt es Alternativen?



  • Ich kenne die genaue Situation nicht, verwende allerdings LUKS schon seit fast 10 Jahren. Die Fehlermeldung
    mount: unknown filesystem type 'crypto_LUKS'
    deutet für mich eher darauf hin, dass das VFS (Virtual File System) des Kernels beim Versuch das Dateisystem zu Mounten den LUKS Header gefunden hat (was an sich positiv ist) und sich bei dem Versuch zu ermitteln, wie es mit dem Dateisystem umzugehen hat die Karten gelegt hat.

    Schau mal auf:
    https://digitalvectorz.wordpress.com/tag/unknown-filesystem-type-crypto_luks/

    Da hat jemand ein ähnliches Problem. Es könnte durchaus sein, dass nur das /dev/mapper Device beschädigt wurde.

    Ich hab diese Meldung auf Systemen, auf denen das dm-crypt Modul nicht geladen war bekommen, wenn ich eine LUKS Partition mounten wollte. Daher würde ich mal ein "sudo modprobe dm-crypt" bzw ein "lsmod |grep dm-crypt" riskieren.

    UPDATE: Grade gesehen dass das Modul auf einigen Distros als dm_crypt geführt wird.

    Frei nach der Devise: Bevor man das Motherboard austauscht, einfach mal gucken ob der Stecker drinnen ist. 😃



  • dm_crypt ist aktiviert. Das /dev/mapper/cryptdisk Device wird doch erst angelegt, nachdem man luksOpen gemacht hat, nicht?

    ls /dev/mapper gibt mir kein LUKS-Device aus.

    Also ich mach folgendes:

    sudo cryptsetup luksOpen /dev/sdxy cryptdisk
    

    Dann wird mich das Passwort abgefragt, was fehlschlägt. Das, seitdem ich e2fsck über die Platte laufen gelassen habe und ungefähr 30 INodes gecleart habe, was ich bis jetzt noch nicht weiß, was ich da getan habe.

    Kann ich den Header nicht einfach irgendwie ohne Daten zu verlieren überschreiben? Normalerweise müssten die Daten selbst noch nicht verschlüsselt sein, denk ich mal. Und wenn doch, dann hab ich ja noch die Kopie des LUKS-Devices.

    Also angenommen, die Daten selbst sind noch nicht verschlüsselt, dann könnte ich das dd Programm mit der skip-Option verwenden, um alles nach dem Header irgendwie woanders hinzupacken? Oder stell ich mir die Welt da ein bisschen zu einfach vor? Also, neue ext4-Partition anlegen, dd mit skip/seek drüber laufen lassen und voilà?

    Hast du ein Backup? Warum nicht?

    Ich schreibs mir auf die Wand.



  • Ich hab nochmal folgendes über das Image geschossen:

    cryptsetup -v luksFormat <device>
    

    Ich habe das neue Passwort eingegeben, und jetzt kann ich folgendes problemlos ausführen:

    cryptsetup luksOpen <device> cryptdisk
    

    Nun habe ich /dev/mapper/cryptdisk, aber es lässt sich nicht mounten.
    Ich habe folgendes versucht:

    mount /dev/mapper/cryptdisk /mnt
    

    Dann bekomme ich ne "Wrong fstype"-Fehlermeldung.

    Dann habe ich im Internet gelesen, ich sollte mit mkfs.ext4 ein ext4-Filesystem draus machen, aber dann würden die Daten doch verloren gehen, nicht?

    Wie kann ich das Teil nun mounten?



  • Was haltet ihr von einem Disaster Recovery Service?
    Können die mir bei meinem Problem helfen?
    Wie viel würde mich sowas bei rund 50GB kosten?



  • Ich habe e2fsck über das Image laufen lassen, es mit

    mount -o loop -t ext4 data.img /mnt
    

    gemountet und konnte schlussendlich alle Daten im lost+found Verzeichnis aufspüren.

    Problem gelöst.


Log in to reply