[linux-l] gelöschte Dateien wiederherstellen

Oswald Buddenhagen ossi at kde.org
Sa Mär 1 13:38:40 CET 2003


On Sat, Mar 01, 2003 at 11:03:25AM +0100, Steffen Schulz wrote:
> On 030301 at 10:16, Oswald Buddenhagen wrote:
> > nö. du suchst ja nach textdateien, und die enthalten bekanntlich text.
> 
> Ich versuche nach Möglichkeit alles zusammenzukratzen,
>
oh ... dann kannst du mir nur leidtun ... :}

> und da sind ne Menge Nullen drinn, wie ich feststellen musste.
>
ja, reichlich.

> Ich hatte das fs neu erstellt habe und nur in 3 grossen Kopieraktionen
> was draufkopiert, woraufhin die Partition fast voll war.
>
hmm, je nachdem, was "fast" heißt, könntest du noch einigermaßen glück haben.
erstmal solltest du dein script so trimmen, daß es sämtliche meta-daten
(block allocation & inode tables, superblock copies) überspringt.
dann geht es daran, die dateien so zusammenzufriemeln, wie linux'
dateisystemtreiber sie alloziiert hat. so lange das noch geht, versucht
linux a) nicht zu fragmentieren (also immmer schön aufeinanderfolgende
blöcke) und b) (darauf würde ich nicht wetten, hab damals im
2.0er-kernel solchen code gesehen) werden dateien bevorzugt an
8-block-boundaries angefangen (geht natürlich nur so lange noch genug
platz ist).
im prinizip mußt du jeden block auslesen, darauf "file" ausführen und
sehen, ob das den anfang einer datei darstellt. textdateien sind da
etwas speziell, weil sie im prinzip überall anfangen können (file würde
auch inmitten einer binärdatei "text" erkennen, wenn der block gerade
text ist), d.h., du müßtest auch das erwartete dateiende aus den 
binärdateien selbst auslesen (format-spezifisch, versteht sich). man
könnte im übrigen auch das ende von manchen textdateien mit heuristischen
methoden bestimmen.
ich kann's mir kaum vorstellen, aber vielleicht gibt es dafür ein tool
im netz ...

wie gesagt, ich kann dir versprechen, daß du _sehr_ lange daran sitzen
wirst ...

gruß

-- 
Hi! I'm a .signature virus! Copy me into your ~/.signature, please!
--
Chaos, panic, and disorder - my work here is done.



Mehr Informationen über die Mailingliste linux-l