資料恢復教學 - 2 硬碟物理和邏輯結構

第二章 硬碟物理和邏輯結構


2.1主流磁片介質

下面我們先通過不同的存儲介質來看一看當今市場上流行的主機資訊存儲技術,根據使

用的材料和存儲原理的不同,存儲介質可分為三大類:

電存儲技術介質,如記憶體、快閃記憶體等;

磁存儲技術介質,如磁帶、磁片等;

光存儲技術介質,如光碟、DVD等。


2.2.硬碟的外部結構

硬碟是一個集機、電、磁于一體的高精密系統。其內部是密封的,對用戶而言既是黑匣

子,也是透明的,用戶根本不用關心其內部的運行,只需把標準介面接上即可正常使用。


113001

2-1



對上圖的解釋:


1. 緩存:這就是我們經常說的緩存,其實就和記憶體條上的記憶體顆粒一樣,是一片

SDRAM。緩存的作用主要是和硬碟內部交換資料,我們平時所說的內部傳輸率其

實也就是緩存和硬碟內部之間的資料傳輸速率。


2. 電源介面和光碟機一樣,硬碟的電源介面也是由4針組成。其中,紅線所對應的+5V

電壓輸入,黃線對應輸出的是+12V電壓。現在的硬碟電源介面都是梯形,不會因為插反

方向而使硬碟燒毀。


3. 跳線:跳線的作用是使IDE設備在工作時能夠一致。當一個IDE介面上接兩個設

備時,就需要設置跳線為主盤或者從盤,具體的設置可以參考硬碟上的說明。


4. IDE介面:硬碟IDE介面是和主機板IDE介面進行資料交換的通道。我們通常說的

UDMA/33模式就是指緩存和主機板IDE介面之間的資料傳輸率(也就是外部資料傳輸率)

33.3MB/s,目前的介面規範已經從UDMA/33發展到UDMA/66UDMA/100


但是由於內部傳輸率的限制,實際上外部傳輸率達不到理論上的那麼高。為了使數據傳

輸更加可靠,UDMA/66模式要求使用80針的資料傳輸線,增加接地功能,使得高速傳

輸的資料不致出錯。在UDMA/66線的使用中還要注意,其藍色的一端要接在主機板IDE

口上,而黑色的一端接在硬碟上。


5. 電容:硬碟存儲了大量的資料,為了保證資料傳輸時的安全,需要高品質的電容使電

路穩定。這種黃色的鉭電容品質穩定,屬於優質元件,但價格較貴,所以一般用量都比較

少,只是在最需要的地方才使用。


6. 控制晶片:硬碟的主要控制晶片,負責資料的交換和處理,是硬碟的核心部件之一。

硬碟的電路板可以互相換(當然要同型號的),在硬碟不能讀出資料的時候,只要硬碟本

身沒有物理損壞且能夠加電,我們就可以通過更換電路板的方式來使硬碟起死回生


a2


2-2


a5


2-3

2.3硬碟內部結構

A、 磁頭元件:這個元件是硬碟中最精密的部位之一,它由讀寫磁頭、傳動手臂、

傳動軸三部分組成。磁頭是硬碟技術中最重要和關鍵的一環,實際上是集成工

藝製成的多個磁頭的組合,採用非接觸式磁頭碟片結構,加電後在高速旋轉的

磁片表面移動,與碟片之間的間隙只有0.10.3μm,這樣可以獲得很好的數

據傳輸率。


B、 磁頭驅動機構:磁頭驅動機構由電磁線圈電機、磁頭驅動小車、防震動裝置構

成,高精度的輕型磁頭驅動機構能夠對磁頭進行正確的驅動和定位,並能在很

短的時間內精確定位系統指令指定的磁軌。


C、 磁碟片:碟片是硬碟存儲資料的載體,現在硬碟碟片大多採用金屬薄膜材料,

這種金屬薄膜與軟碟的不連續顆粒載體相比具有更高的存儲密度、高剩磁及高

矯頑力等優點。


D、 主軸組件:主軸元件包括主軸部件,如軸承和驅動電機等。隨著硬碟容量的擴

大和速度的提高,主軸電機的速度也在不斷提升,有廠商開始採用精密機械工

業的液態軸承電機技術(FDB)。採用FDB電機不僅可以使硬碟的工作噪音降低

許多,而且還可以增加硬碟的工作穩定性。


E、 前置控制電路:前置電路控制磁頭感應的信號、主軸電機調速、磁頭驅動和伺

服定位等,由於磁頭讀取的信號微弱,將放大電路密封在腔體內可減少外來信

號的干擾,提高操作指令的準確性。


目前,微機上安裝的硬碟幾乎都是採用溫徹斯特(Winchester)技術製造的硬碟,這種

硬碟也被稱為溫盤。這種結構的特點為:

1)、磁頭、碟片及運動機構密封在盤體內;

2)、磁頭在啟動、停止時與碟片接觸,而在工作時因碟片高速旋轉,從而帶動磁頭

在碟片上面呈飛行狀態(空氣動力學原理),這個懸浮的高度約為0.1

米~0.3微米,這個高度是非常小的,圖2-4標出了這個高度與頭髮、煙塵和手

指印的大小比較關係,從這裡就可以直觀的出這個高度到底有多了。


2-4 磁頭高度


3)、磁頭工作時與碟片不直接接觸,所以磁頭的載入較小,磁頭可以做得很精緻,檢

測磁軌的能力很強,可大大提高位元密度;

4)、磁片表面非常平整光滑,可以做鏡面使用。

綜上所述,硬碟內部的完整結構如圖2-5所示。


b2

2-5



每個碟片的每個面都有一個讀寫磁頭,磁片盤面區域的劃分如圖20所示。與磁頭接觸的表面靠近主軸,即線速度最小的地方,是一個特殊的區域,它不存放任何資料,稱為啟停區或著陸區(LandingZone),啟停區外就是資料區。在最外圈,離主軸最遠的地方是0磁軌,而硬碟資料的存放就是從最外圈開始的,所以在硬碟啟動的時候有時能聽到吧嗒、吧嗒聲,這是磁頭從啟停區轉到0磁軌尋道時,由於轉速不夠,又被磁力拉回,與主軸磕碰發出的聲音,很顯然,出現這種聲音可不是什麼好兆頭。那麼磁頭是如何找到0磁軌的位置的呢?


從圖2-6中還可以看到,有一個0磁軌檢測器,就是由它來完成硬碟的初始定位的。

早期的硬碟,每次關機之前需要運行一個叫Parking的程式,其作用就是讓磁頭回到啟停區,現代硬碟在設計上已摒棄了這個雖不複雜卻很讓人不愉快的小缺陷,硬碟不工作的時候,磁頭就停留在這個啟停區。當需要從硬碟讀寫資料時,磁片開始旋轉,當旋轉速度達到額定的高速時,磁頭就會被碟片旋轉產生的氣流所抬起,這時磁頭才向碟片存放資料的區域移動。讀寫完畢,碟片停止旋轉,磁頭又回歸到啟停區。碟片旋轉產生的氣流相當強,足以使磁頭托起與盤面保持一個微小的距離。這個距離越小,磁頭讀寫資料的速度就越快,當然對硬碟各部件的要求也越高。早期設計的磁碟機使磁頭保持在盤面上方幾微米處飛行。稍後一些設計使磁頭在盤面上的飛行高度降到約 0.10.5 微米,現在的水準已經達到 0.005


b3

2-6 硬碟內部結構


0.01微米,這只是人類頭髮直徑的千分之一。氣流既能使磁頭脫離開盤面,又能使它保持在離盤足夠近的地方,非常緊密地跟隨著磁片表面呈起伏運動,使磁頭飛行處於嚴格受控狀態。磁頭必須飛行在盤面上方,而不是接觸盤面,這種位置可避免擦傷磁性塗層,更重要的是,不讓磁性層損傷磁頭。但是,磁頭也不能離盤面太遠,否則就不能使盤面達到足夠強的磁化,也就難以讀出盤上的磁化翻轉(磁極轉換形式,也就是磁片上實際記錄資料的方式)。


磁片上的磁軌與唱片上的紋路很類似,其區別就在於磁片盤面上的磁軌是一個個的同心各磁軌之間互不相連,而唱片只有一條從外側向中心呈螺旋狀的紋路(光碟的紋路和唱片的紋路是非常相象的,不過光碟是從內向外)。放送唱片時,唱針從唱片外側向中心連續移動。而在磁片上讀/寫資料時,磁頭保持靜止不動,只有在需要從一條磁軌進到另一條磁

道時,磁頭才會移動。


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


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


硬碟的碟片是硬質磁性合金碟片片厚一般在 0.5 毫米左右,直徑主要有 1.8 英寸、2.5英寸3.5英寸和5.25英寸四種,其中2.5英寸和3.5英寸碟片應用最廣,目前也有大量的新型硬碟如微型硬碟上市,直徑為0.8英寸或1英寸。碟片的轉速與碟片大小有關,考慮到慣性及碟片的穩定性,碟片越大轉速越低。一般來講,2.5英寸硬碟的轉速在5400r/min7200r/min之間,3.5英寸硬碟的轉速在4500r/min5400r/min之間,而5.25英寸硬碟轉速則在3600r/min4500r/min之間。現在2.5英寸硬碟的轉速最高已達15000r/min3.5英寸硬碟的轉速最高已達12000r/min


舊式硬碟驅動器的磁頭是一種讀寫合一的薄膜磁頭,這種磁頭體積小重量輕,與碟片的 磨擦較小。但在碟片高速旋轉時磁頭仍然與碟片產生較大的磨擦,因而容易引起碟片發熱,增加能耗,從而限制了碟片的轉速。又因為磁頭是讀寫合一,磁頭只能單向工作,讀寫不能

同時進行,影響了資料傳輸速率。現在的硬碟驅動器磁頭已從MR磁頭(磁致電阻磁頭,這種磁頭不但輕小,而且還可以做到讀寫分離),發展到GMR(巨磁阻)磁頭、MRX(擴展磁阻)磁頭、窄磁軌薄膜感應性寫入磁頭等新型磁頭,而且還有更多採用最新技術的新型磁頭不斷面世,其性能也更加優越。



2.4.硬碟的邏輯結構

硬碟的邏輯結構基本如下:

A、 磁面(Side)

硬碟的每個碟片都有兩個盤面(Side),即上、下盤盤面,按照順序從上至下從0開始依次編號。

B、 磁軌(Track)

磁片在格式化時被劃分成許多同心圓,這些同心圓軌跡叫磁軌(Track)。磁軌從外向內從0開始順序編號。

C、 柱面(Cylinder)

所有盤面上的同一磁軌構成的一個圓柱,通常稱做柱面(Cylinder,每個柱面上的磁頭由上而下從0開始編號。

D、 磁區(Sector)

作業系統以磁區(Sector)形式將資訊存儲在硬碟上,每個磁區包括 512 個位元組的資料和一些其他資訊。

E、 硬碟的容量=硬碟盤面(磁頭數)*柱面數*磁區數*512(位元組)

F、 換算公式

1KB=210次方 1MB=220次方 1GB=230次方 1TB=240次方

1PB=250次方 1PB=1125899906842624Byte

G、C/H/S與LBA位址的對應關係

假設用C表示當前柱面號,H表示當前磁頭號,Cs表示起始柱面號,Hs 表示起始磁頭號,Ss表示起始磁區號,PS表示每磁軌有多少個磁區,PH表示每柱面有多少個磁軌,則有: LBA=C-Cs*PH*一般情況下,CS=0HS=0SS=1PS=63PH=255



2.4.1.碟片

硬碟的碟片一般用鋁合金作基片。

硬碟的每一個碟片都有兩個盤面(Side),即上、下盤面,一般每個盤面都利用上,即都裝上磁頭可以存儲資料,成為有效碟片,也有極個別的硬碟其盤面數為單數。每一個這樣

的有效盤面都有一個盤面號,按順序從上而下自0開始依次編號。在硬碟系統中,盤面號又叫磁頭號,就是因為每一個有效盤面都有一個對應的讀寫磁頭。硬碟的碟片組在214

片不等,通常有23個碟片,故盤面號(磁頭號)為0305

b5

27磁軌



2.4.2.磁軌

磁片在格式化時被劃分成許多同心圓,這些同心圓軌跡叫做磁軌(Track)。磁軌從外向內自0開始順序編號。硬碟的每一個盤面有3001024個磁軌,新式大容量硬碟每面的磁軌數更多,如上圖2-7所示。資訊以脈衝串的形式記錄在這些軌跡中,這些同心圓不是連續記錄資料,而是被劃分成一段段的圓弧,由於徑向長度不一樣,這些圓弧的角速度一樣,而線速度不一樣,外圈的線速度較內圈的線速度大,即同樣的轉速下,外圈在同樣時間段裡,劃過的圓弧長度要比內圈劃過的圓弧長度大。每段圓弧叫做一個磁區,磁區從1開始編號,每個磁區中的資料是作為一個單元同時讀出或寫入的。一個標準的3.5英寸硬碟盤面通常有幾百到幾千條磁軌。這些磁軌是看不見的,它們只是盤面上以特殊形式磁化了的一些磁化區。這些磁軌是在磁片格式化時就規劃好了的。

2.4.3.柱面

所有盤面上的同一磁軌構成一個圓柱,通常稱作柱面(Cylinder),每個圓柱上的磁頭,由上而下從0開始編號。資料的讀寫是按柱面進行的,即磁頭在讀寫資料時首先在同一

柱面內從0磁頭開始進行操作,依次向下在同一柱面的不同盤面即磁頭上進行操作,只在同一柱面所有的磁頭全部讀寫完畢後才移動磁頭轉移到下一柱面,這是因為選取磁頭只需通過電子切換即可,而選取柱面則必須通過機械切換。電子切換相當快,比在機械上磁頭向鄰近磁軌移動快得多,所以資料的讀/寫是按柱面來進行的,而不是按盤面來進行的。也就是說,一個磁軌已寫滿資料,就在同一柱面的下一個盤面來寫,一個柱面寫滿後,才移到下一個柱面,從下一個柱面的1磁區開始寫資料。而不是在同一盤面的下一磁軌來寫,一個盤面寫滿後再從下一個盤面的0磁軌開始寫。讀數據也是按照這種方式進行,這樣就提高了硬盤的讀/寫效率。

2.4.4.磁區

我們知道,作業系統是以磁區(Sector)形式將資訊存儲在硬碟上的。每個磁區包括512位元組的資料和一些其他資訊。一個磁區有兩個主要部分:即存儲資料地點的識別字和存

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

準確無誤。


磁區的第二個主要部分是存儲資料的資料段,可分為資料和保護資料的改錯碼(ECC)。在初始準備期間,電腦用512個虛擬資訊位元組(實際資料的存放地)和與這些虛擬資訊字節相對應的ECC數位填入這個部分。


磁區頭標包括有一個可識別磁軌上該磁區的磁區號。有趣的是這些磁區號物理上並不是象我們想像的那樣是連續編號的,它們不必用任何特定的順序指定。磁區頭標的設計允許扇

區號可以從1到某個最大值,某些情況下可達256。磁碟控制卡並不關心上述範圍中什麼編號安排在哪一個磁區頭標中。在很特殊的情況下,磁區還可以共用相同的編號。磁碟控制卡甚至還不管資料區有多大,它只管讀出它所找到的資料,或者寫入要求它寫的資料。


給磁區編號的最簡單方法是l23456等順序編號,而磁區交叉指的就是下一個磁區的編號不是連續的下一個數字,而是跳過幾個數字的編號,如17132814等。使用的交叉量是由磁區的交叉因數規定的。交叉因數用比值的方法來表示,如31,表示磁軌上的第一個磁區為1號磁區,跳過兩個磁區即第四個磁區編號為2號磁區,這個過

程持續下去直到給每個物理磁區編上邏輯號為止。



2-8磁區的結構


2.4.5.容量

硬碟的容量由盤面數(磁頭數)、柱面數和磁區數決定,其計算公式為:

硬碟容量=盤面數×柱面數×磁區數×512位元組


關於硬碟容量的大小,經常有人感到迷惑,為什麼同一塊硬碟,有時顯示或報為40GB,有時卻只有37GB,這主要是表示方法不標準造成的,如1MB到底代表1000000位元組還是代表1048576位元組。在有些軟體中把1000000位元組作為1MB,如DM等,硬碟上標稱容量一般也是按1MB1000000位元組計算的;而在另一些軟體中1MB1048576位元組,如FDISK等。一些書籍或報刊雜誌上發表的論文中,硬碟空間容量的單位也表示不一,有以1000000位元組為1MB的,也有把1048576位元組作為1MB的。依據電腦表示資料的特點、數制的表示方式及電腦本身的發展,硬碟容量單位還是應該以2的多少次方表示比較符合實際情況,即以KBKilobyte)、MBMegabyte)、GBGigabyte)、TBTerabyte)、PBPetabyte)、EBExabyte)為單位在對硬碟進行分區時,常常是實際的分區大小約大於用戶指定的分區大小,如輸入的基本分區大小為400MB,實際結果卻是402MB。這種情況的產生與Fdisk的分區機制有關。Fdisk分區的最小單位是柱面(Cylinder),它不會把一個柱面分配到兩個不同的分區中,這就是Fdisk的分區細微性。所以,Fdisk分區時分配的實際容量不小於使用者指定的分區容量。

2.4.6.線性位址磁區

系統在管理硬碟磁區時以簇為單位進行,並採用LBA方式來定位磁區。

LBA,全稱為Logic Block Address(即磁區的邏輯塊位址)。顯然,它是相對硬碟磁區三維物理位址而言的。磁區的三維物理位址與硬碟上的物理磁區一一對應,即三維物理位址

可完全確定硬碟上的物理磁區。那麼為什麼還要引入LBA地址呢?首先,由於INT 13的限制,三維地址C/H/S的最大值只能為1024/16/63,容量最大只能達到1024×16×63×512

Byte =1032192Byte=504MB。另外,在系統管理檔時去記錄煩瑣的C/H/S也非常吃力,效率非常低,使用邏輯磁區後,可在硬碟讀寫操作時脫離柱面、磁頭等硬體參數的制約。


DOS假設硬碟的全部存儲區域都由一系列的磁區組成,每個磁區固定包含512個位元組。此外,在硬碟中每4816個或更多的磁區組成一個簇,在對一個具體的簇進行讀寫操作時,DOS劃分一個一維資料的邏輯磁區號要比指出200柱面40、磁頭2、磁區512要簡單一些。如果一個簇的磁區跨越在兩個盤面(即兩個磁頭)之間,用柱面、磁頭、磁區的表示方法就更複雜了,這樣就引入了LBA的概念。在LBA方式下,系統把所有的物理磁區都按照某種方式或規則看做是一線性編號的磁區,即從0到某個最大值方式排列,並連成一條線,把LBA作為一個整體來對待,而不再是具體的實際的C/H/S值,這樣只用一個序數就確定了一個惟一的物理磁區,這就是線性位址磁區的由來,顯然線性位址是物理磁區的邏輯位址。


那麼線性位址如何與實際的C/H/S值相對應呢?如何把C/H/S值轉換為線性位址,把線性位址轉換成C/H/S值呢?

首先,要瞭解從C/H/SLBA線性位址的轉換規則。由於系統在寫入資料時是按照從柱面到柱面的方式,在上一個柱面寫滿資料後才移動磁頭到下一個柱面,並從下一柱面的第一個磁頭的第一個磁區開始寫入,從而使磁片性能最優,所以,在對物理磁區進行線性編址時,也按照這種方式進行。即把第一柱面(0柱)第一磁頭(0面)的第一磁區(1磁區)編為邏輯0磁區,把第一柱面(0柱)第一磁頭(0面)的第二磁區(2磁區)編為邏輯1磁區,直至第一柱面(0柱)第一磁頭(0面)的第63磁區(63磁區)編為邏輯62磁區,然後轉到第一柱面(0柱)第二磁頭(1面)的第一磁區(1磁區),接著上一面編為邏輯63磁區,0柱面所有磁區編號完畢後轉到1柱面的0磁頭1磁區,依次往下進行,直至把所有的磁區都編上號。


其次,要注意C/H/S中的磁區編號從163,而LBA方式下磁區從0開始編號,所有磁區順序進行編號。

1. 從C/H/S到LBA

通過對編號規則的介紹,很容易看出C/H/SLBA位址的對應關係。用C表示當前柱面號,H表示當前磁頭號,S表示當前磁區號,CS表示起始柱面號,HS表示起始磁頭號,SS表示起始磁區號,PS表示每磁軌有多少個磁區,PH表示每柱面有多少個磁軌,則有:

LBA=CCSPHPS+HHSPS+SSS公式(2-1

C/H/SLBA的轉換比較簡單,只用代入公式(2-1)計算即可,系統在管理磁區(簇)時就是按照LBA位址進行的,而在最終寫入(或讀出)硬碟,進行ATA調用時需要C/H/S參數,下面就看看從LBAC/H/S的轉換關係。


2. 從LBA到C/H/S

先介紹兩種運算DIVMOD(這裡指對正整數的操作)。DIV稱做整除運算,即被除數除以除數所得商的整數部分。比如,5 DIV 2=233 DIV 5=6MOD運算則是取商的餘數。比如,5 MOD 2=133 MOD 5=3DIVMOD是一對搭檔,一個取整數部分,一個取餘數部分。各變數仍按上述假設進行,則有:

C=LBA DIV PHPS+CS

H=LBA DIV PSMOD PH+HS (2-2)

S=LBA MOD PS+SS


如果不運用MOD運算子,只運用DIV運算子,也可按式(2-3)進行轉換,兩者的結果

相同,只是運算的複雜度不同。

C=LBA DIV PHPS+CS

H=LBA DIV PSCCSPH+HS 2-3

S=LBACCSPHPSHHSPS+SS



轉自:http://bbs.intohard.com/index.php

0 意見: