亚洲国产综合精品一区|亚洲中文字幕第一页|色老久久精品偷偷鲁一区|亚洲狠狠狠狠狠2021

<dl id="1nr0n"><ins id="1nr0n"><span id="1nr0n"></span></ins></dl>
    <optgroup id="1nr0n"><td id="1nr0n"><dfn id="1nr0n"></dfn></td></optgroup><font id="1nr0n"><thead id="1nr0n"><span id="1nr0n"></span></thead></font>
    <delect id="1nr0n"><pre id="1nr0n"><rp id="1nr0n"></rp></pre></delect>
  1. <dl id="1nr0n"></dl>
    歡迎進入湘潭紅數(shù)信息技術(shù)有限公司官網(wǎng)
    4008088160
    現(xiàn)在的位置:首頁 > 發(fā)布營銷型網(wǎng)站建設(shè) > 新聞資訊 > 如何恢復(fù)被刪除的文件
    如何恢復(fù)被刪除的文件
    信息來源:優(yōu)度網(wǎng)絡(luò)  發(fā)布日期:2009/3/25 瀏覽數(shù)量:1145
    文章導讀:
    被刪文件的恢復(fù)策略


      要恢復(fù)被刪除的文件,只能根據(jù)刪除后留下的東西去做文章。文件被刪除后留下了什么呢?由上述分析可知:其一、留下了文件的內(nèi)容;其二、留下了“現(xiàn)場”。文件的恢復(fù)策略只能從這兩個方面來分析。以下談幾種恢復(fù)策略。


      1.根據(jù)磁盤現(xiàn)場進行恢復(fù)


      如果文件被刪除,現(xiàn)場未被破壞(即文件被刪除后硬盤未發(fā)生過寫操作),而且假定只刪除了一個文件,那么可根據(jù)系統(tǒng)的分配算法進行恢復(fù)。因為系統(tǒng)建立一個文件時,必定根據(jù)某一特定的分配算法決定文件占用的數(shù)據(jù)塊位置。而當該文件被刪除后,它所占用的數(shù)據(jù)塊被釋放,又回到系統(tǒng)的分配表中,這時如果重新建立一個文件,系統(tǒng)根據(jù)原來的分配算法分配出的數(shù)據(jù)塊必定跟該文件原來占用的數(shù)據(jù)塊一致,而且我們知道,UNIX文件最后一數(shù)據(jù)塊尾部多出的字節(jié)是全部置0的,據(jù)此只要調(diào)用系統(tǒng)的數(shù)據(jù)分配算法,在系統(tǒng)中一塊塊的申請數(shù)據(jù)塊,因為UNIX文件最后一個數(shù)據(jù)塊尾部多出的字節(jié)全部為0,所以,只要發(fā)現(xiàn)一個分配出的數(shù)據(jù)塊中尾部全為0,即可認為文件結(jié)束,由此可確定文件長度和內(nèi)容,進而實現(xiàn)恢復(fù)。方法如下:


     ?、派暾堃粋€索引節(jié)點,即向系統(tǒng)申請創(chuàng)建一個新文件名而不寫入任何內(nèi)容。如:#>/tmp/xx


     ?、普{(diào)用系統(tǒng)分配數(shù)據(jù)塊算法getnextfreeblock()得到一個數(shù)據(jù)塊號,記入某一地址表變量中。


     ?、亲x出這個數(shù)據(jù)塊,判斷其尾部是否全部連續(xù)為0,若不是,則回到(2),若是,則進行(4)。


     ?、仁紫扔孟到y(tǒng)函數(shù)fstat得到/tmp/xx的i節(jié)點號,然后將(2)步所得的地址表寫入索引節(jié)點的地址表中(注意間址問題),并根據(jù)數(shù)據(jù)塊個數(shù)和最后一塊中有效數(shù)據(jù)長度計算出文件大小,寫入i節(jié)點的di_size字段。


     ?、苫貙懴到y(tǒng)的索引節(jié)點表即可。


      需要說明的是,第一,系統(tǒng)分配數(shù)據(jù)塊的算法因不同的UNIX版本而不同;第二,有的UNIX如SCO UNIX 5.0版,其空閑數(shù)據(jù)塊的分配和回收是使用一種動態(tài)鏈表的數(shù)據(jù)結(jié)構(gòu)來實現(xiàn)的,它們的文件恢復(fù)更加容易,只要在空閑鏈表中的表尾去尋找即可,筆者另行描述。


      2. 根據(jù)內(nèi)容恢復(fù)。


      若現(xiàn)場已被破壞,即硬盤發(fā)生過寫操作,那么只好根據(jù)內(nèi)容來恢復(fù)。而且,由于UNIX是一個多進程、多用戶系統(tǒng),它每一次開關(guān)機或硬件、通訊故障等都會記錄系統(tǒng)日志、.sh_history等,硬盤現(xiàn)場被破壞可能性極大。因此討論按內(nèi)容恢復(fù)的方法具有更大的實用價值。筆者經(jīng)過實際探索得出下列四種恢復(fù)策略供參考。


      ⑴關(guān)鍵字搜索法


      如果知道被刪除的文件內(nèi)容中若干字節(jié)的內(nèi)容,而且該文件長度又不超過一個磁盤塊,那么可以在整個文件系統(tǒng)中搜索這一字節(jié)串,得出一個文件所在的數(shù)據(jù)塊,將它們的塊號填入一個i節(jié)點,即可恢復(fù)一個文件,搜索文件系統(tǒng)的算法很簡單,說明如下:


      a. #df -k 確定文件系統(tǒng)的設(shè)備文件名(如/dev/root)


      b.用下述函數(shù)搜索,若成功,返回數(shù)據(jù)塊號,反之返回-1。其中fsname是文件系統(tǒng)的設(shè)備名,如/dev/root,comp()參數(shù)是實現(xiàn)搜索條件的函數(shù)。


      long searchfs(char *fsname , int comp())


      {


      FILE *fp;


      char buf[1024];


      long i=0;


      fp=fopen(fsname,"r");


      while (!feof(fp))


      {


      fread(buf,1024,1,fp);


      if (comp()) /* 檢查是否符合搜索條件 */


      return i; /* 若成功返回塊號 */


      i++;


      }


      fclose(fp);


      return -1; /* 未找到符合條件的塊,返回-1*/


      }


      ⑵精確長度搜索法


      如果知道被刪除文件的精確長度(字節(jié)數(shù)),那么可根據(jù)一個數(shù)據(jù)塊的大小,計算出文件的最后一個數(shù)據(jù)塊中數(shù)據(jù)的精確長度,該數(shù)據(jù)塊中其他字節(jié)必然是全0。根據(jù)這一條件,通過搜索整個文件系統(tǒng),找出其中符合條件的數(shù)據(jù)塊,若出現(xiàn)多個塊符合要求,則還需要根據(jù)其他條件區(qū)分。但不管怎樣,根據(jù)精確長度分析也是恢復(fù)數(shù)據(jù)的一個策略。


      ⑶內(nèi)容關(guān)聯(lián)法


      如果知道文件內(nèi)容中存在某種可實現(xiàn)的關(guān)聯(lián),例如文件的校驗和,或者文件內(nèi)容的某種上下文關(guān)系,那么也可通過搜索整個文件系統(tǒng),通過反復(fù)嘗試尋找符合關(guān)聯(lián)條件的磁盤數(shù)據(jù)塊,進而恢復(fù)一個文件。


     ?、拳h(huán)境比較法


      如果知道刪除文件所在的文件系統(tǒng)的安裝過程,那么,另行找一臺完全相的機器,按原來完全相同的步驟安裝相同版本的UNIX和相應(yīng)的其他軟件,可以想象,新的機器環(huán)境會與原來的環(huán)境基本相同,比較兩個機器上相同文件系統(tǒng)的內(nèi)容,可以推斷出被刪除文件的大致位置,至少可以大大減少查找的范圍,一旦查找的范圍足夠小時,可以用逐個觀察和嘗試的方法結(jié)合其他條件恢復(fù)數(shù)據(jù),降低恢復(fù)的難度,增加恢復(fù)的可靠性。


      UNIX系統(tǒng)下文件系統(tǒng)恢復(fù)的具體實現(xiàn)依賴于不同操作系統(tǒng)和不同版本的具體文件系統(tǒng)結(jié)構(gòu)和磁盤塊分配算法。本文試圖總結(jié)出一種一般性的思路和策略,限于篇幅,不能詳細討論它們的具體實現(xiàn)過程。
    18973218026
    其他業(yè)務(wù)合作請發(fā)下面郵箱
    郵箱:254596208@qq.com
    地址:湖南省湘潭市岳塘區(qū)霞光東路58號(維也納酒店6樓)
    營銷型網(wǎng)站建設(shè)掃一掃關(guān)注官方微信

    關(guān)注優(yōu)度

    官方微信
    官方微博
    官網(wǎng)首頁