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

Odpovedet emailem