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
--
FreeBSD mailing list (users-l@freebsd.cz)
http://www.freebsd.cz/listserv/listinfo/users-l