瀏覽單個文章
chaotommy
Elite Member
 

加入日期: Mar 2003
您的住址: Vancouver, Canada
文章: 15,006
無聊在GOOGLE上看到的
對救FILE的概念不是很了解的人可以大概看一
下這只是一個基本的概念...I think...I hope

http://delphi.ktop.com.tw/TOPIC.ASP?TOPIC_ID=42468




其實,這類資料救回的軟體運作模式都是一樣的,如果您了解以下的技術,您也可以自己作喔。

1. 讀取磁區的能力
2. 判讀是否有 Boot, Partition 磁區 -> 用來掃瞄整個硬碟內可能的分割
3. 解讀 Boot 磁區,將 FAT 表的大小取出
4. 解讀 Directory 磁區的能力,在 Directory 磁區內記錄檔名(含長檔名)、檔案時間、檔案長度、檔案屬性、檔案存在硬碟中磁區起始位置... 包含已刪除檔案,在 Directory 磁區內都還有記錄,只是檔名的第一碼被系統改為特定的符號(所以,一般救回刪除檔其檔名的第一個字都要自己手動還原)。
5. 假設每個檔案(每個目錄也是一個檔案,記錄目錄內的檔案資訊)在硬碟中都是連續的,按 Directory 磁區的資料,將檔案自硬碟起始磁區開始讀取檔案長度的資料出來存檔。
6. 只要目錄內檔案數量少,Directory 會在同一磁區(這裡指的是當初在 format 時所設定的檔案最小單位,可能是 2K,4K,8K 或其他數值),如果檔案數量多,Directory 在多個磁區,如果 Directory 不身不連續,則在還原時,還原軟體只會知道第一個磁區內的關連,之後的,則以個別檔案或目錄來處理。
7. 經由上述的方法,可以得到許多檔案、目錄資料,同時,可以試著將這些 Directory 磁區記錄的檔案目錄另存出來。只要檔案在硬碟中真的就是連續的,則轉存出來的就與原檔案相同,但只要檔案是在分散磁區,那救回來的檔案還是垃圾不能用。再來就是,如果原硬碟已使用很長的時間,可能在原硬碟內檔案、目錄移來移去、更名、刪除、複製等等動作,將使 Directory 磁區內記錄一大堆沒有用的東西,或是在硬碟中有一大堆沒用的 Directory 磁區,這樣,在還原時,就會多出許多垃圾的檔案及目錄。

像我用 Final Data 在 20G 的硬碟內可以找到 30G 以上的檔案!而其中可能只有 1/4 ~ 1/3 是真的可用的檔案,再加上一大堆檔名資訊沒有的檔案需要一個一個去 check ...
對於壓縮檔可以用解壓工具確認檔案是否壞掉,還可以很快找出沒有用的回收檔,對於非壓縮檔可就慘了,特別是安裝執行檔,總不能叫我每個都安裝測試吧... 嗚~~~ 還是重新下載比較快
自己工作的都會使用 ZIP 壓縮打包起來,很快可以確認是否正確回收,但還是有部分救不回了 以後還是先整個硬碟備份再來更新的好。
舊 2005-07-21, 01:53 AM #16
回應時引用此文章
chaotommy離線中