為了加深大家對數據恢復的理解,我們有必要簡單了解一下數據存儲的基本原理。這里以硬盤為例做簡單說明(軟盤、光盤及閃盤的數據存儲原理與硬盤大同小異)。先來看看硬盤的數據結構。當我們拿到一塊新硬盤時,必須先對其進行分區和格式化操作后才能使用。對于目前大多數朋友所使用的Windows操作系統來說,硬盤被操作系統劃分成主引導扇區、操作系統引導扇區、文件分配表、目錄區和數據區這5個部分。其中主引導扇區在每塊硬盤中都是唯一的,一塊硬盤上只能有一個主引導扇區,而其他部分則在硬盤的每個分區里都會存在。
軟盤、光盤、閃存盤和硬盤的數據存儲原理其實有較大不同。軟盤的存儲原理更像是錄音帶,直接通過電磁感應原理把磁場變化變成電流變化,對磁頭和磁介質等材料并沒有特殊要求。光盤上面也說了,至于閃盤,是直接用半導體儲存高電位和低電位信號來表示0和1的數據信息。同時,各種存儲介質所采用的文件格式也有很大區別。
主引導扇區位于整個硬盤的0磁道0柱面1扇區,它包括硬盤主引導程序MBR(Main Boot Record)和分區表DPT(Disk Partition Table)兩部分。主引導程序是由分區程序(如大家最常用的Fdisk)產生的,所以在不同的操作系統中,主引導程序可能會不同。它的作用就是檢查分區表是否正確并確定以哪個分區為引導分區,然后在程序結束時把該分區的啟動程序(即操作系統)調入內存執行。而對于分區表,大家應比較熟悉了,它以80H或00H為開始標志,以55AAH為結束標志,共64字節,位于0磁道0柱面1扇區的最末端。它規定著系統有幾個分區,每個分區的起始和終止扇區、大小及是否為活動分區等重要信息。
操作系統引導扇區即OBR(OS Boot Record),通常位于硬盤的0磁道1柱面1扇區(如果硬盤被設置為多重引導方式,則位于每個引導系統所在的主分區或擴展分區的第一個扇區)。它是操作系統可直接訪問的第一個扇區,也包括一個引導程序和一個被稱為BPB(BIOS Parameter Block)的分區參數記錄表。引導程序的主要任務是判斷本分區根目錄前兩個文件是否為操作系統的引導文件。如檢查通過,就將引導文件讀入內存,并把控制權交予該文件。BPB分區表參數塊則是記錄著本分區的起始扇區、結束扇區、文件存儲格式、硬盤介質描述符、根目錄大小、FAT個數、分配單元(Allocation Unit,以前也稱為簇)的大小等重要參數。
不知大家注意過沒有,同一個硬盤,用生產廠家的原廠工具來分區與用Fdisk或Partition Magic之類的第三方工具來分區是有區別的。我們可以試一下,先用原廠工具來分區,然后啟動Partition Magic查看,發現什么問題沒有?通常用原廠工具分區的硬盤開頭或結尾部分,有可能還剩下4~8MB左右的未使用空間,而用Fdisk或Partition Magic分區則不會產生這種情況。這是硬盤廠家為防止硬盤因為引導區的信息出錯,或該處扇區物理損壞而產生的一系列麻煩而采取的一個小小的但是卻很有實用價值的措施。所以,一般用原廠工具分區,硬盤工作起來會比較穩定,在非法關機時也不容易掉鏈子;即使出現所謂的零磁道損壞(邏輯零磁道)、引導區出錯而導致系統不認盤等問題,用戶也不需使用Disk Editor、PCTools等軟件修復(甚至找JS維修),只需一個原廠工具重新快速低格然后分區就一切如常了。
文件分配表即FAT(File Allocation Table),是系統的文件尋址系統,為了數據安全起見,FAT一般做兩個,第二FAT為第一FAT的備份。FAT區緊接在OBR之后,其大小由本分區的大小及文件分配單元的大小決定。FAT的格式有很多種,大家比較熟悉的有FAT12、FAT16和FAT32等格式。FAT12目前僅在軟盤驅動器中使用,FAT16只能用于2GB以下的分區;而FAT32使用最為廣泛,可管理的最大分區為32GB。
在硬盤克隆、掃描、格式化、拷貝大文件過程中突然斷電的話,基本可肯定會出現分區表損壞的情況。不過現在大家知道原來分區表有兩個,同時如果使用原廠工具分區,非法關機時則不易丟失分區表信息。文件系統的格式除了FAT16和FAT32外,還有NTFS、ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、VFAT、HPFS、NFS、SMB、SysV、PROC、JFS等。其實,日常我們接觸的都是DOS和Windows下的文件系統,而其他的文件系統則同我們相距較遠,這里就不多做介紹了。
目錄區即DIR(Directory),它緊接在第二FAT表之后。只有FAT還不能定位文件在磁盤中的位置,FAT還必須和DIR配合才能準確定位文件的位置。DIR記錄著每個文件(目錄)的起始單元(對于文件來說,這才是至關重要的)、文件的屬性等。操作系統在定位文件位置時,根據DIR中的起始單元,再結合FAT表就可知文件在磁盤的具體位置及大小了。
數據區即DATA,當將數據復制到硬盤時,數據就存放在DATA區。對于一塊儲存數據的硬盤來說,它占據了硬盤的絕大部分空間,但如沒有前面所提到的4個部分,DATA區就僅只是一塊填充著0和1的區域,沒有任何意義。
也不能說沒有任何意義,特別是在SCSI硬盤這種具備完整的校驗和安全機制的硬盤上,數據區的信息里也還有很多附加標識信息和校驗信息,可作為數據恢復的手段。IDE硬盤上則確實較麻煩,要花不少功夫。不過目前很多發布數據恢復軟件的公司都在不斷研究這個問題,希望能通過優化算法,盡量提高數據恢復的成功率和恢復速度。
當操作系統要在硬盤上寫入文件時,首先在DIR區中寫入文件信息(包括文件名、后綴名、文件大小和修改日期),然后在DATA區找到閑置空間將文件保存,并將DATA區中存放文件的簇號寫入DIR區,從而完成整個寫入數據的工作。系統刪除文件時的操作則簡單許多,它只需將該文件在DIR區中的第一個字符改成E5,在文件分配表中把該文件占用的各簇表項清0,就表示將該文件刪除,而它實際上并不對DATA區進行任何改寫。通常的高級格式化程序,只是重寫了FAT表而已,并未將DATA區的數據清除;而對硬盤進行分區時,也只是修改了MBR和OBR, 并沒有改寫DATA區中的數據。正因為DATA區中的數據不易被改寫,從而也為恢復數據帶來了機會。事實上各種數據恢復軟件,也正是利用DATA區中殘留的種種痕跡,來恢復數據,這就是整個數據恢復的基本原理。
--- 版權最終歸艾銻無限所有http://www.maosdadas.net/ 如需轉載,請標明出處。
相關文章