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