obnova smazaneho (stale otevreneho) souboru
Dan Lukes
dan at obluda.cz
Wed Apr 14 13:25:21 CEST 2010
On 04/14/10 12:58, Miroslav Lachman:
> Mam celkem strucny dotaz - lze nejak snadno na FreeBSD 7.x obnovit
> smazany soubor, ktery je stale jeste otevreny nejakym procesem?
Jo. Ze zalohy. Ale ty ho asi potrebujs a tohle jako vtip nejspis
neocenis. Tak ti nabidnu jine dve moznost - a ty, upozornuju, uz vtip
nejsou.
1. Postrilis pokud mozno vsechno krome toho procesu, ktery "drzi"
soubor, pak parkrat zavolas "sync", chvili pockas - a pak stisknes
tlacitko reset.
Nabootujes a budes doufat, ze fsck obnovi neposkozeny chain do "lost_found".
Ovsem, jde o neotestovany postup a pokud to nezabere, tak jsi vis kde.
Ten druhy je ovsem jeste silenejsi.
2. Nastudujes kernelovou funkci kernel_link(), ktera za normalni situace
vyrabi hardlink. Jako parametry ma zdrojove jmeno a nove jmeno.
Napises si kernelovy modul (protoze z userlandu tohle neudelas), ktery
bude mit v sobe velmi podobnou funkci, jen to nove jmeno nebude delat z
udaju toho stareho, ale z udaju, ktere mu tam nejak dodas (treba
zakompilujes). Ten modul pri svem nahrati tu funkci provede, cimz
vytvori jmeno na inode a tim uloha modulu skonci. Inode ma jmeno, tudiz
referenci a tak pozavreni descriptoru v programu nezanikne.
Ovsem - doporucuju modul napsat a ladit na nejakem jinem stroji, protoze
tenhle si urcite nechces pokusama polozit. Myslenkove je to ciste a
jednoduche a navic deterministicky funkcni, ale napsat to trivialni nebude.
Dan
More information about the Users-l
mailing list