磁頭:磁盤一般都有上下兩個(gè)面瞬哼,每一個(gè)面上都對(duì)應(yīng)一個(gè)磁頭捅厂。
磁道:讀寫硬盤時(shí)蜡豹,磁頭依靠磁盤的高速旋轉(zhuǎn)引起的空氣動(dòng)力效應(yīng)懸浮在盤面上右核,與盤面的距離不到1微米(約為頭發(fā)直徑的百分之一)。由于磁盤是旋轉(zhuǎn)的丛晌,則連續(xù)寫入的數(shù)據(jù)是排列在一個(gè)圓周上的仅炊。我們稱這樣的圓周為一個(gè)磁道(Track)。磁道的排序是最外圈是0澎蛛,然后由外往內(nèi)依次0抚垄,1,2谋逻,3....
柱面:不同盤片的相同編號(hào)的磁道構(gòu)成的圓柱面就被稱之為柱面呆馁,磁盤的柱面數(shù)與一個(gè)盤面上的磁道數(shù)是相等的
扇區(qū):每個(gè)磁道都別切分成很多扇形區(qū)域,每個(gè)磁道的扇區(qū)數(shù)量相同毁兆,每個(gè)扇區(qū)大小為512字節(jié)浙滤。扇區(qū)在磁道上并不是按規(guī)律排列的,因?yàn)槿绻?guī)律排列1扇區(qū)后面是2扇區(qū)的話气堕,就會(huì)出現(xiàn)一個(gè)問(wèn)題纺腊,由于磁面是高速旋轉(zhuǎn)的,會(huì)出現(xiàn)來(lái)不及讀取就轉(zhuǎn)過(guò)去的情況茎芭,所以扇區(qū)的排列規(guī)律是根據(jù)磁面的旋轉(zhuǎn)速度交叉排列的揖膜,比如1扇區(qū)后面是5扇區(qū),2扇區(qū)在5扇區(qū)后面的梅桩。
磁盤的定位是根據(jù)磁頭壹粟,柱面以及扇區(qū)來(lái)定位的,而存儲(chǔ)的方式也是先扇區(qū)摘投,再磁頭煮寡,最后柱面。這就說(shuō)起磁盤磁道犀呼,磁頭的路徑轉(zhuǎn)換了。下面是路徑轉(zhuǎn)換的方式:
由于磁面是高速運(yùn)轉(zhuǎn)的薇组,如果想要變換磁道外臂,需要磁面旋轉(zhuǎn)的速度改變,屬于機(jī)械操作
而磁頭只需要電子信號(hào)改變律胀,就可以改變磁頭宋光,屬于電子操作
機(jī)械操作理所當(dāng)然的沒(méi)有電子操作迅速,所以如果要讀完一個(gè)磁道上所有扇區(qū)炭菌,立馬轉(zhuǎn)換磁道罪佳,這樣接著讀取下一個(gè)磁道,一個(gè)磁面讀取完了黑低,換下一個(gè)磁面赘艳,這樣明顯沒(méi)有讀完一個(gè)磁道上的所有扇區(qū)酌毡,轉(zhuǎn)換磁頭讀同一個(gè)柱面上磁道上的扇區(qū)速度快,所以才會(huì)出現(xiàn)先磁道上扇區(qū)蕾管,再磁頭枷踏,最后柱面的情況。
扇區(qū)上的數(shù)據(jù)講解:
扇區(qū)上512字節(jié)都有些什么數(shù)據(jù)呢掰曾?扇區(qū)的第一個(gè)主要部分是標(biāo)識(shí)符旭蠕。標(biāo)識(shí)符,就是扇區(qū)頭標(biāo)旷坦,包括組成扇區(qū)三維地址的三個(gè)數(shù)字:扇區(qū)所在的磁頭(或盤面)掏熬、磁道(或柱面號(hào))以及扇區(qū)在磁道上的位置即扇區(qū)號(hào)。頭標(biāo)中還包括一個(gè)字段秒梅,其中有顯示扇區(qū)是否能可靠存儲(chǔ)數(shù)據(jù)孽江,或者是否已發(fā)現(xiàn)某個(gè)故障因而不宜使用的標(biāo)記。有些硬盤控制器在扇區(qū)頭標(biāo)中還記錄有指示字番电,可在原扇區(qū)出錯(cuò)時(shí)指引磁盤轉(zhuǎn)到替換扇區(qū)或磁道岗屏。最后,扇區(qū)頭標(biāo)以循環(huán)冗余校驗(yàn)(CRC)值作為結(jié)束漱办,以供控制器檢驗(yàn)扇區(qū)頭標(biāo)的讀出情況这刷,確保準(zhǔn)確無(wú)誤。扇區(qū)的第二個(gè)主要部分是存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)段娩井,可分為數(shù)據(jù)和保護(hù)數(shù)據(jù)的糾錯(cuò)碼(ECC)暇屋。在初始準(zhǔn)備期間,計(jì)算機(jī)用512個(gè)虛擬信息字節(jié)(實(shí)際數(shù)據(jù)的存放地)和與這些虛擬信息字節(jié)相應(yīng)的ECC數(shù)字填入這個(gè)部分洞辣。
MBR引導(dǎo):
1咐刨、引導(dǎo)代碼
上圖中黃色框內(nèi)的部分即為引導(dǎo)程序,占扇區(qū)前446字節(jié)扬霜。計(jì)算機(jī)在上電完成BIOS自檢后定鸟,會(huì)將該主引導(dǎo)扇區(qū)加載到內(nèi)存中并執(zhí)行前面446字節(jié)的引導(dǎo)程序,引導(dǎo)程序首先會(huì)在分區(qū)表中查找活動(dòng)分區(qū)著瓶,若存在活動(dòng)分區(qū)联予,則根據(jù)活動(dòng)分區(qū)的偏移量找到該活動(dòng)分區(qū)上的引導(dǎo)扇區(qū)的地址,并將該引導(dǎo)扇區(qū)加載到內(nèi)存中材原,同時(shí)檢查該引導(dǎo)扇區(qū)的有效性沸久,然后根據(jù)該引導(dǎo)扇區(qū)的規(guī)則去引導(dǎo)操作系統(tǒng)。在一些非啟動(dòng)磁盤上余蟹,MBR引導(dǎo)代碼可能都是0卷胯,這對(duì)磁盤使用沒(méi)有任何影響。
2威酒、分區(qū)表
上圖中藍(lán)色框內(nèi)的部分即為分區(qū)表窑睁,占扇區(qū)中間64字節(jié)挺峡。分區(qū)表是磁盤管理最重要的部分,通過(guò)分區(qū)表信息來(lái)定位各個(gè)分區(qū)卵慰,訪問(wèn)用戶數(shù)據(jù)沙郭。分區(qū)表包含4個(gè)分區(qū)項(xiàng),每一個(gè)分區(qū)項(xiàng)通過(guò)位置偏移裳朋、分區(qū)大小來(lái)唯一確定一個(gè)主分區(qū)或者擴(kuò)展分區(qū)病线。每個(gè)分區(qū)項(xiàng)占16字節(jié),包括引導(dǎo)標(biāo)識(shí)鲤嫡、起始和結(jié)束位置的CHS參數(shù)送挑、分區(qū)類型、開(kāi)始扇區(qū)暖眼、分區(qū)大小等惕耕,具體描述如下表所示:
解釋一下這個(gè)值:0x代表的是16進(jìn)制,剩下2位是第一位前4個(gè)bit诫肠,后一位4個(gè)bit司澎,因?yàn)楫吘?^4=16,4Byte類似。
分區(qū)項(xiàng)的第1個(gè)字節(jié)表示該分區(qū)是否是活動(dòng)分區(qū)栋豫,即是否包含系統(tǒng)引導(dǎo)扇區(qū)挤安,用來(lái)引導(dǎo)操作系統(tǒng)。每個(gè)磁盤只能同時(shí)有一個(gè)活動(dòng)分區(qū)丧鸯,活動(dòng)分區(qū)的引導(dǎo)指示符是0x80蛤铜,其他均為0x00;盡管我們可以通過(guò)一些工具來(lái)手動(dòng)修改引導(dǎo)指示符丛肢,但是引導(dǎo)程序只會(huì)查找并使用第一個(gè)引導(dǎo)指示符為0x80的活動(dòng)分區(qū)围肥。
結(jié)束標(biāo)志
上圖中最后的"55 AA"即為結(jié)束標(biāo)志,或者稱魔數(shù)蜂怎,占扇區(qū)最后2字節(jié)穆刻。每次執(zhí)行系統(tǒng)引導(dǎo)代碼時(shí)都會(huì)檢查MBR主引導(dǎo)扇區(qū)最后2字節(jié)是否是"55 AA",若是派敷,則繼續(xù)執(zhí)行后續(xù)的程序蛹批,否則,則認(rèn)為這是一個(gè)無(wú)效的MBR引導(dǎo)扇區(qū)篮愉,停止引導(dǎo)系統(tǒng)。
下面我們來(lái)說(shuō)明一下為什么mrt引導(dǎo)只能引導(dǎo)小于2TB差导,因?yàn)槲覀兛梢钥吹缴蠄D中對(duì)于扇區(qū)總個(gè)數(shù)的說(shuō)明试躏。
因?yàn)榉謪^(qū)表中扇區(qū)個(gè)數(shù)為232個(gè),然后一個(gè)扇區(qū)512Byte设褐,然后計(jì)算232*512/1024^3=2TB颠蕴,計(jì)算機(jī)讀取分區(qū)大小的時(shí)候只能讀取2TB
我的疑惑:
不是已經(jīng)確定了起始扇區(qū)位置和終止扇區(qū)位置了泣刹,為什么不能通過(guò)兩者直接計(jì)算呢?
還有為什么要多一個(gè)相對(duì)扇區(qū)數(shù)呢犀被,不是已經(jīng)有起始扇區(qū)位置了嗎椅您?
第一個(gè)問(wèn)題的解答,首先扇區(qū)是交叉排列的寡键,根本不可能通過(guò)起始扇區(qū)和終止扇區(qū)之差來(lái)判斷扇區(qū)個(gè)數(shù)掀泳,然后我又想到能不能在讀取的過(guò)程中計(jì)數(shù)呢,就是從頭到尾讀取完然后每過(guò)一個(gè)扇區(qū)+1西轩,我又想到這根本不可能员舵,因?yàn)檫@是啟動(dòng)階段,引導(dǎo)代碼是來(lái)檢測(cè)分區(qū)表藕畔,并不可能出現(xiàn)挨個(gè)讀取判斷马僻,這也太耗費(fèi)時(shí)間了。
第二個(gè)問(wèn)題不懂