NTFS文件系統詳解(一)之硬盤基本信息

本文參考自博客

這裏寫圖片描述

一般硬盤正面貼有產品標籤,主要包括廠家信息和產品信息,如商標、型號、序列號、生產日期、容量、參數和主從設置方法等。這些信息是正確使用硬盤的基本依據,下面將逐步介紹它們的含義。

硬盤主要由盤體、控制電路板和接口部件等組成,如圖1-1所示。盤體是一個密封的腔體。硬盤的內部結構通常是指盤體的內部結構;控制電路板上主要有硬盤BIOS、硬盤緩存(即CACHE)和主控制芯片等單元,如圖1-2所示;硬盤接口包括電源插座、數據接口和主、從跳線,如圖1-3所示。

這裏寫圖片描述

電源插座連接電源,爲硬盤工作提供電力保證。數據接口是硬盤與主板、內存之間進行數據交換的通道,使用一根40針40線(早期)或40針80線(當前)的IDE接口電纜進行連接。新增加的40線是信號屏蔽線,用於屏蔽高速高頻數據傳輸過程中的串擾。中間的主、從盤跳線插座,用以設置主、從硬盤,即設置硬盤驅動器的訪問順序。其設置方法一般標註在盤體外的標籤上,也有一些標註在接口處,早期的硬盤還可能印在電路板上。

此外,在硬盤表面有一個透氣孔(見圖1-1),它的作用是使硬盤內部氣壓與外部大氣壓保持一致。由於盤體是密封的,所以,這個透氣孔不直接和內部相通,而是經由一個高效過濾器和盤體相通,用以保證盤體內部的潔淨無塵,使用中注意不要將它蓋住。

1.2 硬盤的內部結構

硬盤的內部結構通常專指盤體的內部結構。盤體是一個密封的腔體,裏面密封着磁頭、盤片(磁片、碟片)等部件,如圖1-4所示。

這裏寫圖片描述

硬盤的盤片是硬質磁性合金盤片,片厚一般在0.5mm左右,直徑主要有1.8in(1in=25.4mm)、2.5in、3.5in和5.25in 4種,其中2.5in和3.5in盤片應用最廣。盤片的轉速與盤片大小有關,考慮到慣性及盤片的穩定性,盤片越大轉速越低。一般來講,2.5in硬盤的轉速在5 400 r/min~7 200 r/ min之間;3.5in硬盤的轉速在4 500 r/min~5 400 r/min之間;而5.25in硬盤轉速則在3 600 r/min~4 500 r/min之間。隨着技術的進步,現在2.5in硬盤的轉速最高已達15 000 r/min,3.5in硬盤的轉速最高已達12 000 r/min。

有的硬盤只裝一張盤片,有的硬盤則有多張盤片。這些盤片安裝在主軸電機的轉軸上,在主軸電機的帶動下高速旋轉。每張盤片的容量稱爲單碟容量,而硬盤的容量就是所有盤片容量的總和。早期硬盤由於單碟容量低,所以,盤片較多,有的甚至多達10餘片,現代硬盤的盤片一般只有少數幾片。一塊硬盤內的所有盤片都是完全一樣的,不然控制部分就太複雜了。一個牌子的一個系列一般都用同一種盤片,使用不同數量的盤片,就出現了一個系列不同容量的硬盤產品。

盤體的完整構造如圖1-5所示。

這裏寫圖片描述

硬盤驅動器採用高精度、輕型磁頭驅動/定位系統。這種系統能使磁頭在盤面上快速移動,可在極短的時間內精確地定位在由計算機指令指定的磁道上。目前,磁道密度已高達5 400Tpi(每英寸磁道數)或更高;人們還在研究各種新方法,如在盤上擠壓(或刻蝕)圖形、凹槽和斑點等作爲定位和跟蹤標記,以提高到和光盤相等的道密度,從而在保持磁盤機高速度、高位密度和高可靠性的優勢下,大幅度提高存儲容量。

硬盤驅動器內的電機都是無刷電機,在高速軸承支持下機械磨損很小,可以長時間連續工作。高速旋轉的盤體產生明顯的陀螺效應,所以,在硬盤工作時不宜搬動,否則,將增加軸承的工作負荷。爲了高速存儲和讀取信息,硬盤驅動器的磁頭質量小,慣性也小,所以,硬盤驅動器的尋道速度明顯快於軟驅和光驅。

硬盤驅動器磁頭與磁頭臂及伺服定位系統是一個整體。伺服定位系統由磁頭臂後的線圈和固定在底板上的電磁控制系統組成。由於定位系統限制,磁頭臂只能在盤片的內外磁道之間移動。因此,不管開機還是關機,磁頭總在盤片上;所不同的是,關機時磁頭停留在盤片啓停區,開機時磁頭“飛行”在磁盤片上方。

硬盤上的數據是如何組織與管理的呢?硬盤首先在邏輯上被劃分爲磁道、柱面以及扇區,其結構關係如圖1-6所示。

這裏寫圖片描述

每個盤片的每個面都有一個讀寫磁頭,磁盤盤面區域的劃分如圖1-7所示。磁頭靠近主軸接觸的表面,即線速度最小的地方,是一個特殊的區域,它不存放任何數據,稱爲啓停區或着陸區(Landing Zone),啓停區外就是數據區。在最外圈,離主軸最遠的地方是“0”磁道,硬盤數據的存放就是從最外圈開始的。那麼,磁頭是如何找到“0”磁道的位置的呢?從圖1-5中可以看到,有一個“0”磁道檢測器,由它來完成硬盤的初始定位。“0”磁道是如此的重要,以致很多硬盤僅僅因爲“0”磁道損壞就報廢,這是非常可惜的。這種故障的修復技術在後面的章節中有詳細的介紹。

這裏寫圖片描述

早期的硬盤在每次關機之前需要運行一個被稱爲Parking的程序,其作用是讓磁頭回到啓停區。現代硬盤在設計上已摒棄了這個雖不復雜卻很讓人不愉快的小缺陷。硬盤不工作時,磁頭停留在啓停區,當需要從硬盤讀寫數據時,磁盤開始旋轉。旋轉速度達到額定的高速時,磁頭就會因盤片旋轉產生的氣流而擡起,這時磁頭才向盤片存放數據的區域移動。盤片旋轉產生的氣流相當強,足以使磁頭托起,並與盤面保持一個微小的距離。這個距離越小,磁頭讀寫數據的靈敏度就越高,當然對硬盤各部件的要求也越高。早期設計的磁盤驅動器使磁頭保持在盤面上方几微米處飛行。稍後一些設計使磁頭在盤面上的飛行高度降到約0.1μm~0.5μm,現在的水平已經達到0.005μm~0.01μm,這只是人類頭髮直徑的千分之一。氣流既能使磁頭脫離開盤面,又能使它保持在離盤面足夠近的地方,非常緊密地跟隨着磁盤表面呈起伏運動,使磁頭飛行處於嚴格受控狀態。磁頭必須飛行在盤面上方,而不是接觸盤面,這種位置可避免擦傷磁性塗層,而更重要的是不讓磁性塗層損傷磁頭。但是,磁頭也不能離盤面太遠,否則,就不能使盤面達到足夠強的磁化,難以讀出盤上的磁化翻轉(磁極轉換形式,是磁盤上實際記錄數據的方式)。

硬盤驅動器磁頭的飛行懸浮高度低、速度快,一旦有小的塵埃進入硬盤密封腔內,或者一旦磁頭與盤體發生碰撞,就可能造成數據丟失,形成壞塊,甚至造成磁頭和盤體的損壞。所以,硬盤系統的密封一定要可靠,在非專業條件下絕對不能開啓硬盤密封腔,否則,灰塵進入後會加速硬盤的損壞。另外,硬盤驅動器磁頭的尋道伺服電機多采用音圈式旋轉或直線運動步進電機,在伺服跟蹤的調節下精確地跟蹤盤片的磁道,所以,硬盤工作時不要有衝擊碰撞,搬動時要小心輕放。

這種硬盤就是採用溫徹斯特(Winchester)技術製造的硬盤,所以也被稱爲溫盤。其結構特點如下。

①磁頭、盤片及運動機構密封在盤體內。

②磁頭在啓動、停止時與盤片接觸,在工作時因盤片高速旋轉,帶動磁頭“懸浮”在盤片上面呈飛行狀態(空氣動力學原理),“懸浮”的高度約爲0.1μm~0.3μm,這個高度非常小,圖1-8標出了這個高度與頭髮、煙塵和手指印的大小比較關係,從這裏可以直觀地“看”出這個高度有多“高”。

這裏寫圖片描述

③磁頭工作時與盤片不直接接觸,所以,磁頭的加載較小,磁頭可以做得很精緻,檢測磁道的能力很強,可大大提高位密度。

④磁盤表面非常平整光滑,可以做鏡面使用。

下面對“盤面”、“磁道”、“柱面”和“扇區”的含義逐一進行介紹。

  1. 盤面號

硬盤的盤片一般用鋁合金材料做基片,高速硬盤也可能用玻璃做基片。玻璃基片更容易達到所需的平面度和光潔度,且有很高的硬度。磁頭傳動裝置是使磁頭部件作徑向移動的部件,通常有兩種類型的傳動裝置。一種是齒條傳動的步進電機傳動裝置;另一種是音圈電機傳動裝置。前者是固定推算的傳動定位器,而後者則採用伺服反饋返回到正確的位置上。磁頭傳動裝置以很小的等距離使磁頭部件做徑向移動,用以變換磁道。

硬盤的每一個盤片都有兩個盤面(Side),即上、下盤面,一般每個盤面都會利用,都可以存儲數據,成爲有效盤片,也有極個別的硬盤盤面數爲單數。每一個這樣的有效盤面都有一個盤面號,按順序從上至下從“0”開始依次編號。在硬盤系統中,盤面號又叫磁頭號,因爲每一個有效盤面都有一個對應的讀寫磁頭。硬盤的盤片組在2~14片不等,通常有2~3個盤片,故盤面號(磁頭號)爲0~3或0~5。

  1. 磁道

磁盤在格式化時被劃分成許多同心圓,這些同心圓軌跡叫做磁道(Track)。磁道從外向內從0開始順序編號。硬盤的每一個盤面有300~1 024個磁道,新式大容量硬盤每面的磁道數更多。信息以脈衝串的形式記錄在這些軌跡中,這些同心圓不是連續記錄數據,而是被劃分成一段段的圓弧,這些圓弧的角速度一樣。由於徑向長度不一樣,所以,線速度也不一樣,外圈的線速度較內圈的線速度大,即同樣的轉速下,外圈在同樣時間段裏,劃過的圓弧長度要比內圈劃過的圓弧長度大。每段圓弧叫做一個扇區,扇區從“1”開始編號,每個扇區中的數據作爲一個單元同時讀出或寫入。一個標準的3.5in硬盤盤面通常有幾百到幾千條磁道。磁道是“看”不見的,只是盤面上以特殊形式磁化了的一些磁化區,在磁盤格式化時就已規劃完畢。

  1. 柱面

所有盤面上的同一磁道構成一個圓柱,通常稱做柱面(Cylinder),每個圓柱上的磁頭由上而下從“0”開始編號。數據的讀/寫按柱面進行,即磁頭讀/寫數據時首先在同一柱面內從“0”磁頭開始進行操作,依次向下在同一柱面的不同盤面即磁頭上進行操作,只在同一柱面所有的磁頭全部讀/寫完畢後磁頭才轉移到下一柱面,因爲選取磁頭只需通過電子切換即可,而選取柱面則必須通過機械切換。電子切換相當快,比在機械上磁頭向鄰近磁道移動快得多,所以,數據的讀/寫按柱面進行,而不按盤面進行。也就是說,一個磁道寫滿數據後,就在同一柱面的下一個盤面來寫,一個柱面寫滿後,才移到下一個扇區開始寫數據。讀數據也按照這種方式進行,這樣就提高了硬盤的讀/寫效率。

一塊硬盤驅動器的圓柱數(或每個盤面的磁道數)既取決於每條磁道的寬窄(同樣,也與磁頭的大小有關),也取決於定位機構所決定的磁道間步距的大小。更深層的內容請參考其他書籍,限於篇幅,這裏不再深入介紹。

  1. 扇區

操作系統以扇區(Sector)形式將信息存儲在硬盤上,每個扇區包括512個字節的數據和一些其他信息。一個扇區有兩個主要部分:存儲數據地點的標識符和存儲數據的數據段,如圖1-9所示。

這裏寫圖片描述

標識符就是扇區頭標,包括組成扇區三維地址的三個數字:扇區所在的磁頭(或盤面)、磁道(或柱面號)以及扇區在磁道上的位置即扇區號。頭標中還包括一個字段,其中有顯示扇區是否能可靠存儲數據,或者是否已發現某個故障因而不宜使用的標記。有些硬盤控制器在扇區頭標中還記錄有指示字,可在原扇區出錯時指引磁盤轉到替換扇區或磁道。最後,扇區頭標以循環冗餘校驗(CRC)值作爲結束,以供控制器檢驗扇區頭標的讀出情況,確保準確無誤。

扇區的第二個主要部分是存儲數據的數據段,可分爲數據和保護數據的糾錯碼(ECC)。在初始準備期間,計算機用512個虛擬信息字節(實際數據的存放地)和與這些虛擬信息字節相應的ECC數字填入這個部分。

扇區頭標包含一個可識別磁道上該扇區的扇區號。有趣的是,這些扇區號物理上並不連續編號,它們不必用任何特定的順序指定。扇區頭標的設計允許扇區號可以從1到某個最大值,某些情況下可達255。磁盤控制器並不關心上述範圍中什麼編號安排在哪一個扇區頭標中。在很特殊的情況下,扇區還可以共用相同的編號。磁盤控制器甚至根本就不管數據區有多大,只管讀出它所找到的數據,或者寫入要求它寫的數據。

給扇區編號的最簡單方法是l,2,3,4,5,6等順序編號。如果扇區按順序繞着磁道依次編號,那麼,控制器在處理一個扇區的數據期間,磁盤旋轉太遠,超過扇區間的間隔(這個間隔很小),控制器要讀出或寫入的下一扇區已經通過磁頭,也許是相當大的一段距離。在這種情況下,磁盤控制器就只能等待磁盤再次旋轉幾乎一週,才能使得需要的扇區到達磁頭下面。

顯然,要解決這個問題,靠加大扇區間的間隔是不現實的,那會浪費許多磁盤空間。許多年前,IBM的一位傑出工程師想出了一個絕妙的辦法,即對扇區不使用順序編號,而是使用一個交叉因子(interleave)進行編號。交叉因子用比值的方法來表示,如3﹕1表示磁道上的第1個扇區爲1號扇區,跳過兩個扇區即第4個扇區爲2號扇區,這個過程持續下去直到給每個物理扇區編上邏輯號爲止。例如,每磁道有17個扇區的磁盤按2﹕1的交叉因子編號就是:l,10,2,11,3,12,4,13,5,14,6,15,7,16,8,17,9,而按3﹕1的交叉因子編號就是:l,7,13,2,8,14,3,9,15,4,10,16,5,11,17,6,12。當設置1﹕l的交叉因子時,如果硬盤控制器處理信息足夠快,那麼,讀出磁道上的全部扇區只需要旋轉一週;但如果硬盤控制器的後處理動作沒有這麼快,磁盤所轉的圈數就等於一個磁道上的扇區數,才能讀出每個磁道上的全部數據。將交叉因子設定爲2﹕1時,磁頭要讀出磁道上的全部數據,磁盤只需轉兩週。如果2﹕1的交叉因子仍不夠慢,磁盤旋轉的週數約爲磁道的扇區數,這時,可將交叉因子調整爲3﹕1,如圖1-10所示。

這裏寫圖片描述

圖1-10所示的是典型的MFM(Modified Frequency Modulation,改進型調頻制編碼)硬盤,每磁道有17個扇區,畫出了用三種不同的扇區交叉因子編號的情況。最外圈的磁道(0號柱面)上的扇區用簡單的順序連續編號,相當於扇區交叉因子是1﹕1。1號磁道(柱面)的扇區按2﹕1的交叉因子編號,而2號磁道按3﹕1的扇區交叉因子編號。

早期的硬盤管理工作中,設置交叉因子需要用戶自己完成。用BIOS中的低級格式化程序對硬盤進行低級格式化時,就需要指定交叉因子,有時還需要設置幾種不同的值來比較其性能,而後確定一個比較好的值,以期硬盤的性能較好。現在的硬盤BIOS已經自己解決這個問題,所以,一般低級格式化程序不再提供這一選項設置。

系統將文件存儲到磁盤上時,按柱面、磁頭、扇區的方式進行,即最先是第1磁道的第一磁頭下(也就是第1盤面的第一磁道)的所有扇區,然後,是同一柱面的下一磁頭,……,一個柱面存儲滿後就推進到下一個柱面,直到把文件內容全部寫入磁盤。系統也以相同的順序讀出數據。讀出數據時通過告訴磁盤控制器要讀出扇區所在的柱面號、磁頭號和扇區號(物理地址的三個組成部分)進行。磁盤控制器則直接使磁頭部件步進到相應的柱面,選通相應的磁頭,等待要求的扇區移動到磁頭下。在扇區到來時,磁盤控制器讀出每個扇區的頭標,把這些頭標中的地址信息與期待檢出的磁頭和柱面號做比較(即尋道),然後,尋找要求的扇區號。待磁盤控制器找到該扇區頭標時,根據其任務是寫扇區還是讀扇區,來決定是轉換寫電路,還是讀出數據和尾部記錄。找到扇區後,磁盤控制器必須在繼續尋找下一個扇區之前對該扇區的信息進行後處理。如果是讀數據,控制器計算此數據的ECC碼,然後,把ECC碼與已記錄的ECC碼相比較。如果是寫數據,控制器計算出此數據的ECC碼,與數據一起存儲。在控制器對此扇區中的數據進行必要處理期間,磁盤繼續旋轉。由於對信息的後處理需要耗費一定的時間,在這段時間內,磁盤已轉了相當的角度。

交叉因子的確定是一個系統級的問題。一個特定硬盤驅動器的交叉因子取決於:磁盤控制器的速度、主板的時鐘速度、與控制器相連的輸出總線的操作速度等。如果磁盤的交叉因子值太高,就需多花一些時間等待數據在磁盤上存入和讀出。如果交叉因子值太低,就會大大降低磁盤性能。

前面已經述及,系統在磁盤上寫入信息時,寫滿一個磁道後轉到同一柱面的下一個磁頭,當柱面寫滿時,再轉向下一柱面。從同一柱面的一個磁道到另一個磁道,從一個柱面轉到下一個柱面,每一個轉換都需要時間,在此期間磁盤始終保持旋轉,這就會帶來一個問題:假定系統剛剛結束對一個磁道前一個扇區的寫入,並且已經設置了最佳交叉因子比值,現在準備在下一磁道的第一扇區寫入,這時,必須等到磁頭轉換好,讓磁頭部件重新準備定位在下一道上。如果這種操作佔用的時間超過了一點,儘管是交叉存取,磁頭仍會延遲到達。這個問題的解決辦法是以原先磁道所在位置爲基準,把新的磁道上全部扇區號移動約一個或幾個扇區位置,這就是磁頭扭斜。磁頭扭斜可以理解爲柱面與柱面之間的交叉因子,已由生產廠設置好,用戶一般不用去改變它。磁頭扭斜的更改比較困難,但是,它們只在文件很長、超過磁道結尾進行讀出和寫入時才發揮作用,所以,扭斜設置不正確所帶來的時間損失比採用不正確的扇區交叉因子值帶來的損失要小得多。交叉因子和磁頭扭斜可用專用工具軟件來測試和更改。更具體的內容這裏就不再詳述,畢竟現在很多用戶都沒有見過這些參數。

扇區號存儲在扇區頭標中,扇區交叉因子和磁頭扭斜的信息也存放在這裏。最初,硬盤低級格式化程序只是行使有關磁盤控制器的專門職能來完成設置任務。由於這個過程可能破壞低級格式化的磁道上的全部數據,也極少採用。

扇區交叉因子由寫入到扇區頭標中的數字設定,所以,每個磁道可以有自己的交叉因子。在大多數驅動器中,所有磁道都有相同的交叉因子。但有時因爲操作上的原因,也可能導致各磁道有不同的扇區交叉因子。如在交叉因子重置程序工作時,由於斷電或人爲中斷,就會造成一些磁道的交叉因子發生了改變,而另一些磁道的交叉因子沒有改變。這種不一致性對計算機不會產生不利影響,只是有最佳交叉因子的磁道要比其他磁道的工作速度更快。

介紹完硬盤的基本結構後,我們再來看看一個擁有三個基本分區加一個擴展分區的硬盤結構

這裏寫圖片描述

其中如果只用到四個分區,則第四個分區也可以做成基本分區,但是如果分區大於四個,因爲在MBR裏只有四個分區表項,所以只能容下四個分區的信息.需要多個分區的時候就需要一個分區是擴展分區,然後在擴展分區裏面再分出分區

擴展分區中的每個邏輯驅動器都存在一個類似於MBR的擴展引導記錄( Extended Boot Record, EBR),也有人稱之爲虛擬mbr或擴展mbr,意思是一樣的。擴展引導記錄包括一個擴展分區表和該扇區的標籤。擴展引導記錄將記錄只包含擴展分區中每個 邏輯驅動器的第一個柱面的第一面的信息。一個邏輯驅動器中的引導扇區一般位於相對扇區32或63。但是,如果磁盤上沒有擴展分區,那麼就不會有擴展引導記 錄和邏輯驅動器。第一個邏輯驅動器的擴展分區表中的第一項指向它自身的引導扇區。第二項指向下一個邏輯驅動器的EBR。如果不存在進一步的邏輯驅動器,第 二項就不會使用,而且被記錄成一系列零。如果有附加的邏輯驅動器,那麼第二個邏輯驅動器的擴展分區表的第一項會指向它本身的引導扇區。第二個邏輯驅動器的 擴展分區表的第二項指向下一個邏輯驅動器的EBR。擴展分區表的第三項和第四項永遠都不會被使用。

這裏寫圖片描述

發佈了42 篇原創文章 · 獲贊 37 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章