硬碟探索 - MBRMBR(Master Boot Record,主要啟動磁區)是位於硬碟的第一個磁區(Cylinder 0、Head 0 Sector 1),其在硬碟開機過程中扮演一個非常重要的角色,同時一個硬碟是如何被分割的相關資訊也是擺放在 MBR 這塊區域中。我相信有些讀者看到這裡已經開始霧煞煞了!什麼叫做 Cylinder,什麼又叫做 Head 啊!因此我們先退一步,從硬碟的內部外觀開始看起(如下圖),不過在此建議讀者不要將你硬碟的外殼自行拆除,因為硬碟的內部是在無塵的環境中所組合而成,換句話說,因為硬碟的讀寫磁頭是非常精細的科技產物,甚至比灰塵的顆粒還細,如果一旦打開外殼,則後果您可要自行負責哦!此時您可能不服氣的想問我:「琳達,那你室內設計為什麼可以打開硬碟外殼呢?」,這個答案很簡單,因為我有練過,所以請小朋友不要學習。 嘻!騙你們的啦,這顆硬碟已經壽終正寢了,為了讓它的犧牲能重如泰山,所以我們將它遺體解剖,好讓讀者可以了解到硬碟內的真實面?。圖中所示光亮如鏡的部份(磁片),就是硬碟存放資料的地方,一個硬碟的容量有多大,我們常可以從硬碟的外殼上得知,下圖是硬碟外殼的部份影像,從這圖我們可以看出此硬碟的大小為 1,705 MB。但有些硬碟的外殼上並不會直接顯示容量大小,而是告訴你如下(表一)的資料(下圖硬碟外殼是二者資訊皆有告知):CylindersHeadsSectors33031663(表一)那此時你又該如何得知硬碟的容量有多大呢?所以接下來我們就房屋貸款來談談硬碟存放資料的邏輯架構。 硬碟係由多片金屬圓盤磁片組合而成,每片磁片的上下二面均可存放資料,我們稱其為記錄面(Recording Surface),記錄面的編號由上而下從 0 開始累計編號,故一顆硬碟若有 4 片磁片,則其記錄面編號由上而下為 0 ~ 7,這也代表會有 8 個讀寫磁頭(Head)來負責資料的存取工作。 在每個磁片的記錄面上是由許多不同半徑的同心圓(跟唱片有點類似,只是看不到明顯的溝紋)圈圈組合而成的,我們稱這些同心圓圈圈為磁軌(Track),磁軌一般來說是從外往圓心由0開始累計編號。每個磁軌又會切成等分的磁扇,這每一個磁扇稱為磁區(Sector),每個磁區可以存放512 Bytes的資料。無論每個磁軌的591圓周大小是否一樣,每一磁軌可存放的資料容量是相等的。由於硬碟是由很多的磁片所構成,每片磁片上又有很多磁軌,這些上下相對應且編號相同的磁軌所形成之圓柱狀磁軌的組合稱之為磁柱(Cylinder),而磁柱的編號就是等於磁軌的編號,也可說每一記錄面有多少磁軌,整個硬碟就有多少磁柱,每一磁柱所含磁軌的數量就等於記錄面的數量,也就是等於磁頭(Head)的個數。CylindersHeadsSectors33031663從上面的介紹,不知聰明的讀者是否已可算出左邊所示資訊的硬碟大小,如果你還不知道的話,請看下面的計算結果: Cylinders(磁柱數、磁軌數) * Heads(磁頭數、記錄面數) * Sectors(磁區數) * 512 Bytes= 3,303 * 16 * 63 * 關鍵字排名512 = 1,704,665,088 Bytes= 1,704,665,088 Bytes / (1,024 Bytes / 1KB) / (1,024 KB / 1MB)=1,625.6953125 MB(約1,626 MB) 眼尖的讀者是否發現一些徵兆,明明硬碟上面標明 1,705 MB,可是我們卻算出的結果是 1,626 MB 左右,這中間的差異到底在那裡呢?哦!原來廠商的計算方式如下(真是欺騙善良百姓啊!)。1,704,665,088 Bytes= 1,704,665,088 Bytes / (1,000 Bytes / 1KB) / (1,000 KB / 1MB) = 1,704.665088 MB(約1,705 MB) 聊到這裡,我們終於可以進入我們今天的主題 - MBR: 在前面我們提到 MBR(Master Boot Record,主要啟動磁區)是位於硬碟的第一個磁區(Cylinder 0、Head 0、Sector 1),意即 MBR 的大小為農地貸款 512 Bytes。MBR 是由磁碟分割工具(FDISK、SPFDISK、Partition Magic等)在對硬碟做磁碟分割時所建立出來的,MBR 的 512 Bytes 空間中總共分成了二個部份,第一部份為啟動程式(Boot Program),大小為446 Bytes,另一部份即我們俗稱的Partition Table(硬碟分割表),大小為64 Bytes,如下圖所示:Boot Program 此部份的內容會因不同的磁碟分割工具而有所不同,但程式再怎麼不同,其大小也絕對不會超過 446 Bytes,而且程式的最終的目的都是一樣的。當電腦開機完成硬體的POST(Power On Self Test)後,則BIOS會將開機硬碟之 MBR 中的 Boot Program 載入記憶體中執行,此 Boot Program 是一支讀取"Partition Table"的小程租屋式,其會從硬碟分割表中找出那一個分割區是啟動分割區(Active Partition),並將啟動分割區的第一個磁區中的資料載入,此磁區的資料也是一支小程式,此小程式是用來載入分割區上的作業系統程式,以便啟動欲開啟的作業系統進行資料處理。 接下來我們來談談 MBR 的第二部份 - Partition Table(硬碟分割表),通常為了有效的利用硬碟空間,一般來說我們都會將硬碟做切割的動作,每個切割過後的區域,我們稱之為分割(Partition)。每個分割(Partition)的區域之起始位置及結束位置均不一樣,所以必須要有一個地方來存放這些資訊,這個存放 Partition 資訊的地方就是在 MBR 中的硬碟分割表(Partition Table),每個 當鋪Partition 的相關資訊需要 16 Bytes 的空間來記錄,如下圖所示:附註:啟動狀態:這個欄位是用來標示此 Partition 是否為啟動分割區(Active Partition),若為 Active Partition,則這個值設定為 80(16),若不是 Active Partition,則這個值設定為 00(16),一個硬碟只會有一個 Active Partition。 分割區型態:這個欄位是用來標示此 Partition 是屬於何種作業系統或是使用那一種檔案系統,如此才能得知用何種方式存取 Partition 上的資料。 由上面的?述,我們不難發現一個問題,那就是一個硬碟只能切割四個 Partition,因為 MBR 的 Partition Table 只能記載 4 個分割區的資料,因此為了解決這個 Partition 切割數量的限制,所禮服以將 Partition 種類分成主要分割區(Primary Partition)及延伸分割區(Extend Partition)。主要分割區(Primary Partition)及延伸分割區(Extend Partition)的數量加起來不可超過 4 個,Extend Partition 無法直接使用,必須再細分切割成邏輯分割區(Logical Partition)才可用來存放資料。下表為主要分割區及延伸分割區幾種可能的排列組合方式:主要分割區數量1231234延伸分割區數量1110000 從表我們可以得知硬碟最多可以切割到 4 個主要分割區(Primary Partition)或 3 個主要分割區(Primary Partition)和 1 個延伸分割區(Extend Partition),即外面坊間書上所說的 4P 或 3P + 1E 的意思,如下圖所示。Logical 酒店打工Partition 區域之起始位置及結束位置的相關資訊則記載在每個邏輯分割區的第一個磁區,該磁區的資料結構圖如下(跟 MBR 的結構很類似): 最後我們再綜合一下,以圖示來展現一個硬碟的多個分割區到底是如何鏈接(Link)的,到底透過什麼樣的資訊來得到各個分割區(Partition)的起始位置,下圖是以一個硬碟切割了 3 個主要分割區(Primary Partition)和 1 個延伸分割區(Extend Partition),延伸分割區又切割了 3 個邏輯分割區(Logical Partition)為例。引用:http://www.msservermag.com.tw/technicwords/020829.aspx


.msgcontent .wsharing ul li { text-indent: 0; }



分享

Facebook
裝潢Plurk
YAHOO!

創作者介紹

wl84wlqnya 發表在 痞客邦 PIXNET 留言(0) 人氣()