硬盤存儲原理和硬盤數據結構

初買來一塊硬盤,我們是沒有辦法直接使用的,你需要將它分區、格式化,然後再安裝上操作系統纔可以使用。就拿我們一直沿用到現在的Win9x/Me系列來說,我們一般要將硬盤分成主引導扇區、操作系統引導扇區、FAT、DIR和Data等五部分(其中只有主引導扇區是唯一的,其它的隨你的分區數的增加而增加)。

主引導扇區

主引導扇區位於整個硬盤的0磁道0柱面1扇區,包括硬盤主引導記錄MBR(Main Boot Record)和分區表DPT(Disk Partition Table)。其中主引導記錄的作用就是檢查分區表是否正確以及確定哪個分區爲引導分區,並在程序結束時把該分區的啓動程序(也就是操作系統引導扇區)調入內存加以執行。至於分區表,很多人都知道,以80H或00H爲開始標誌,以55AAH爲結束標誌,共64字節,位於本扇區的最末端。值得一提的是,MBR是由分區程序(例如DOS 的Fdisk.exe)產生的,不同的操作系統可能這個扇區是不盡相同。如果你有這個意向也可以自己去編寫一個,只要它能完成前述的任務即可,這也是爲什麼能實現多系統啓動的原因(說句題外話:正因爲這個主引導記錄容易編寫,所以纔出現了很多的引導區病毒)。

操作系統引導扇區

 OBR(OS Boot Record)即操作系統引導扇區,通常位於硬盤的0磁道1柱面1扇區(這是對於DOS來說的,對於那些以多重引導方式啓動的系統則位於相應的主分區/擴展分區的第一個扇區),是操作系統可直接訪問的第一個扇區,它也包括一個引導程序和一個被稱爲BPB(BIOS Parameter Block)的本分區參數記錄表。其實每個邏輯分區都有一個OBR,其參數視分區的大小、操作系統的類別而有所不同。引導程序的主要任務是判斷本分區根目錄前兩個文件是否爲操作系統的引導文件(例如MSDOS或者起源於MSDOS的Win9x/Me的IO.SYS和MSDOS.SYS)。如是,就把第一個文件讀入內存,並把控制權交予該文件。BPB參數塊記錄着本分區的起始扇區、結束扇區、文件存儲格式、硬盤介質描述符、根目錄大小、FAT個數、分配單元(Allocation Unit,以前也稱之爲簇)的大小等重要參數。OBR由高級格式化程序產生(例如DOS 的Format.com)。
文件分配表

 FAT(File Allocation Table)即文件分配表,是DOS/Win9x系統的文件尋址系統,爲了數據安全起見,FAT一般做兩個,第二FAT爲第一FAT的備份, FAT區緊接在OBR之後,其大小由本分區的大小及文件分配單元的大小決定。關於FAT的格式歷來有很多選擇,Microsoft 的DOS及Windows採用我們所熟悉的FAT12、FAT16和FAT32格式,但除此以外並非沒有其它格式的FAT,像Windows NT、OS/2、UNIX/Linux、Novell等都有自己的文件管理方式。

目錄區

 DIR是Directory即根目錄區的簡寫,DIR緊接在第二FAT表之後,只有FAT還不能定位文件在磁盤中的位置,FAT還必須和DIR配合才能準確定位文件的位置。DIR記錄着每個文件(目錄)的起始單元(這是最重要的)、文件的屬性等。定位文件位置時,操作系統根據DIR中的起始單元,結合FAT表就可以知道文件在磁盤的具體位置及大小了。在DIR區之後,纔是真正意義上的數據存儲區,即DATA區。

數據區

  DATA雖然佔據了硬盤的絕大部分空間,但沒有了前面的各部分,它對於我們來說,也只能是一些枯燥的二進制代碼,沒有任何意義。在這裏有一點要說明的是,我們通常所說的格式化程序(指高級格式化,例如DOS下的Format程序),並沒有把DATA區的數據清除,只是重寫了FAT表而已,至於分區硬盤,也只是修改了MBR和OBR,絕大部分的DATA區的數據並沒有被改變,這也是許多硬盤數據能夠得以修復的原因。但即便如此,如MBR/OBR/FAT/DIR之一被破壞的話,也足夠咱們那些所謂的DIY老鳥們忙乎半天了……需要提醒大家的是,如果你經常整理磁盤,那麼你的數據區的數據可能是連續的,這樣即使MBR/FAT/DIR全部壞了,我們也可以使用磁盤編輯軟件(比如DOS下的DiskEdit),只要找到一個文件的起始保存位置,那麼這個文件就有可能被恢復(當然了,這需要一個前提,那就是你沒有覆蓋這個文件……)。

硬盤分區方式

我們平時說到的分區概念,不外乎三種:主分區、擴展分區和邏輯分區。

  主分區是一個比較單純的分區,通常位於硬盤的最前面一塊區域中,構成邏輯C磁盤。在主分區中,不允許再建立其它邏輯磁盤。

  擴展分區的概念則比較複雜,也是造成分區和邏輯磁盤混淆的主要原因。由於硬盤僅僅爲分區表保留了64個字節的存儲空間,而每個分區的參數佔據16個字節,故主引導扇區中總計可以存儲4個分區的數據。操作系統只允許存儲4個分區的數據,如果說邏輯磁盤就是分區,則系統最多隻允許4個邏輯磁盤。對於具體的應用,4個邏輯磁盤往往不能滿足實際需求。爲了建立更多的邏輯磁盤供操作系統使用,系統引入了擴展分區的概念。

  所謂擴展分區,嚴格地講它不是一個實際意義的分區,它僅僅是一個指向下一個分區的指針,這種指針結構將形成一個單向鏈表。這樣在主引導扇區中除了主分區外,僅需要存儲一個被稱爲擴展分區的分區數據,通過這個擴展分區的數據可以找到下一個分區(實際上也就是下一個邏輯磁盤)的起始位置,以此起始位置類推可以找到所有的分區。無論系統中建立多少個邏輯磁盤,在主引導扇區中通過一個擴展分區的參數就可以逐個找到每一個邏輯磁盤。

  需要特別注意的是,由於主分區之後的各個分區是通過一種單向鏈表的結構來實現鏈接的,因此,若單向鏈表發生問題,將導致邏輯磁盤的丟失。

數據存儲原理

  既然要進行數據的恢復,當然數據的存儲原理我們不能不提,在這之中,我們還要介紹一下數據的刪除和硬盤的格式化相關問題……

文件的讀取

  操作系統從目錄區中讀取文件信息(包括文件名、後綴名、文件大小、修改日期和文件在數據區保存的第一個簇的簇號),我們這裏假設第一個簇號是0023。

  操作系統從0023簇讀取相應的數據,然後再找到FAT的0023單元,如果內容是文件結束標誌(FF),則表示文件結束,否則內容保存數據的下一個簇的簇號,這樣重複下去直到遇到文件結束標誌。

文件的寫入

  當我們要保存文件時,操作系統首先在DIR區中找到空區寫入文件名、大小和創建時間等相應信息,然後在Data區找到閒置空間將文件保存,並將Data區的第一個簇寫入DIR區,其餘的動作和上邊的讀取動作差不多。

文件的刪除

  看了前面的文件的讀取和寫入,你可能沒有往下邊繼續看的信心了,不過放心,Win9x的文件刪除工作卻是很簡單的,簡單到只在目錄區做了一點小改動――將目錄區的文件的第一個字符改成了E5就表示將改文件刪除了。

Fdisk和Format的一點小說明

  和文件的刪除類似,利用Fdisk刪除再建立分區和利用Format格式化邏輯磁盤(假設你格式化的時候並沒有使用/U這個無條件格式化參數)都沒有將數據從DATA區直接刪除,前者只是改變了分區表,後者只是修改了FAT表,因此被誤刪除的分區和誤格式化的硬盤完全有可能恢復……
閃存存儲原理
  閃存(Flash Memory)是非揮發存儲的一種,具有關掉電源仍可保存數據的優點,同時又可重複讀寫且讀寫速度快、單位體積內可儲存最多數據量,以及低功耗特性等優點。 其存儲物理機制實際上爲一種新型EEPROM(電可擦除可編程只讀存儲)。是SCM(半導體存儲器)的一種。早期的SCM採用典型的晶體管觸發器作爲存儲位元,加上選擇、讀寫等電路構成存儲器。現代的SCM採用超大規模集成電路工藝製成存儲芯片,每個芯片中包含相當數量的存儲位元,再由若干芯片構成存儲器。目前SCM廣泛採用的主要材料是金屬氧化物場效應管(MOS),包括PMOS、NMOS、CMOS三類,尤其是NMOS和CMOS應用最廣泛。RAM(隨機存取存儲),是一種半導體存儲器。必須在通電情況下工作,否則會喪失存儲信息。RAM又分爲DRAM(動態)和SRAM(靜態)兩種,我們現在普遍使用的PC機內存即是SDRAM(同步動態RAM),它在運行過程當中需要按一定頻率進行充電(刷新)以維持信息。DDR DDR2內存也屬於SDRAM。而SRAM不需要頻繁刷新,成本比DRAM高,主要用在CPU集成的緩存(cache)上。PROM(可編程ROM)則只能寫入一次,寫入後不能再更改。EPROM(可擦除PROM)這種EPROM在通常工作時只能讀取信息,但可以用紫外線擦除已有信息,並在專用設備上高電壓寫入信息。EEPROM(電可擦除PROM),用戶可以通過程序的控制進行讀寫操作。閃存實際上是EEPROM的一種。一般MOS閘極(Gate)和通道的間隔爲氧化層之絕緣(gate oxide),而Flash Memory的特色是在控制閘(Control gate)與通道間多了一層稱爲“浮閘”(floating gate)的物質。拜這層浮閘之賜,使得Flash Memory可快速完成讀、寫、抹除等三種基本操作模式;就算在不提供電源給存儲的環境下,也能透過此浮閘,來保存數據的完整性。 Flash Memory芯片中單元格里的電子可以被帶有更高電壓的電子區還原爲正常的1。Flash Memory採用內部閉合電路,這樣不僅使電子區能夠作用於整個芯片,還可以預先設定“區塊”(Block)。在設定區塊的同時就將芯片中的目標區域擦除乾淨,以備重新寫入。傳統的EEPROM芯片每次只能擦除一個字節,而Flash Memory每次可擦寫一塊或整個芯片。Flash Memory的工作速度大幅領先於傳統EEPROM芯片。 MSM(磁表面存儲)是用非磁性金屬或塑料作基體,在其表面塗敷、電鍍、沉積或濺射一層很薄的高導磁率、硬矩磁材料的磁面,用磁層的兩種剩磁狀態記錄信息"0"和"1"。基體和磁層合稱爲磁記錄介質。依記錄介質的形狀可分別稱爲磁卡存儲器、磁帶存儲器、磁鼓存儲器和磁盤存儲器。計算機中目前廣泛使用的MSM是磁盤和磁帶存儲器。硬盤屬於MSM設備。ODM(光盤存儲)和MSM類似,也是將用於記錄的薄層塗敷在基體上構成記錄介質。不同的是基體的圓形薄片由熱傳導率很小,耐熱性很強的有機玻璃製成。在記錄薄層的表面再塗敷或沉積保護薄層,以保護記錄面。記錄薄層有非磁性材料和磁性材料兩種,前者構成光盤介質,後者構成磁光盤介質。ODM是目前輔存中記錄密度最高的存儲器,存儲容量很大且盤片易於更換。缺點是存儲速度比硬盤低一個數量級。現已生產出與硬盤速度相近的ODM。CD-ROM、DVD-ROM等都是常見的ODM。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章