日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

UNIX系統(tǒng)被刪文件的恢復策略( 二 )


二、文件的刪除過程;
UNIX下刪除一個文件的過程很簡單,那就是釋放索引節(jié)點表和文件占用的數據塊,清空文件占用的索引節(jié)點,但不清除文件內容 。但刪除文件與刪除目錄的處理不盡相同,不同命令刪除文件的過程也不相同 。;
1. 刪除一個文件;
UNIX 刪除一個文件的具體步驟是:根據文件i節(jié)點的地址表逐一釋放文件占用的磁盤數據塊,然后清空相應的節(jié)點,最后釋放i節(jié)點 。;
2. 刪除一個目錄;
刪除一個目錄的過程:首先逐一刪除目錄里的所有文件,然后刪除目錄 。目錄本身也是一個文件,故刪除方法與刪除文件一致 。;
3. 幾種不同的刪除命令;
.rm 命令;
一般刪除命令,刪除過程上述已說明 。;
.mv命令;
格式:mv 文件1 文件2;
處理過程是將文件2的數據塊釋放,然后將文件1的名稱改為文件2,再釋放文件2所占的i節(jié)點 。;
【UNIX系統(tǒng)被刪文件的恢復策略】. > 命令;
格式:>文件名;
若產生一個新文件,>命令僅僅申請一個i節(jié)點,而不寫入任何文件內容;若清空一個已經存在的文件,則釋放文件所占的數據塊,并將文件長度清零 。;
三、被刪文件的恢復策略;
要恢復被刪除的文件,只能根據刪除后留下的東西去做文章 。文件被刪除后留下了什么呢?由上述分析可知:其一、留下了文件的內容;其二、留下了“現場” 。文件的恢復策略只能從這兩個方面來分析 。以下談幾種恢復策略 。;
1.根據磁盤現場進行恢復;
如果文件被刪除,現場未被破壞(即文件被刪除后硬盤未發(fā)生過寫操作),而且假定只刪除了一個文件,那么可根據系統(tǒng)的分配算法進行恢復 。因為系統(tǒng)建立一個文件時,必定根據某一特定的分配算法決定文件占用的數據塊位置 。而當該文件被刪除后,它所占用的數據塊被釋放,又回到系統(tǒng)的分配表中,這時如果重新建立一個文件,系統(tǒng)根據原來的分配算法分配出的數據塊必定跟該文件原來占用的數據塊一致,而且我們知道,UNIX文件最后一數據塊尾部多出的字節(jié)是全部置0的,據此只要調用系統(tǒng)的數據分配算法,在系統(tǒng)中一塊塊的申請數據塊,因為UNIX文件最后一個數據塊尾部多出的字節(jié)全部為0,所以,只要發(fā)現一個分配出的數據塊中尾部全為0,即可認為文件結束,由此可確定文件長度和內容,進而實現恢復 。方法如下:;
⑴申請一個索引節(jié)點,即向系統(tǒng)申請創(chuàng)建一個新文件名而不寫入任何內容 。如:#>/tmp/xx;
⑵調用系統(tǒng)分配數據塊算法getnextfreeblock()得到一個數據塊號,記入某一地址表變量中 。;
⑶讀出這個數據塊,判斷其尾部是否全部連續(xù)為0,若不是,則回到(2),若是,則進行(4) 。;
⑷首先用系統(tǒng)函數fstat得到/tmp/xx的i節(jié)點號,然后將(2)步所得的地址表寫入索引節(jié)點的地址表中(注意間址問題),并根據數據塊個數和最后一塊中有效數據長度計算出文件大小,寫入i節(jié)點的di_size字段 。;
⑸回寫系統(tǒng)的索引節(jié)點表即可 。;
需要說明的是,第一,系統(tǒng)分配數據塊的算法因不同的UNIX版本而不同;第二,有的UNIX如SCO UNIX 5.0版,其空閑數據塊的分配和回收是使用一種動態(tài)鏈表的數據結構來實現的,它們的文件恢復更加容易,只要在空閑鏈表中的表尾去尋找即可,筆者另行描述 。;
2. 根據內容恢復 。;
若現場已被破壞,即硬盤發(fā)生過寫操作,那么只好根據內容來恢復 。而且,由于UNIX是一個多進程、多用戶系統(tǒng),它每一次開關機或硬件、通訊故障等都會記錄系統(tǒng)日志、.sh_history等,硬盤現場被破壞可能性極大 。因此討論按內容恢復的方法具有更大的實用價值 。筆者經過實際探索得出下列四種恢復策略供參考 。;

推薦閱讀