全文預覽已結(jié)束
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
MBR內(nèi)幕 個人計算機在系統(tǒng)BIOS中設(shè)置了一個訪問硬盤的中斷接口(INT 13H)。當一個應(yīng)用程序需要訪問硬盤時,它將通過操作系統(tǒng)計算出CHS(即Cylinder柱面、Heads盤面、Sector扇區(qū)的組合)地址然后使用這個地址調(diào)用INT 13中斷的相應(yīng)功能。BIOS使用這個CHS地址進行硬盤的讀寫工作。傳統(tǒng)BIOS的INT 13有很多缺陷,比如它能訪問的最大地址范圍是是8GB (102425663)。如今,比較常見的是INT 13將CHS地址轉(zhuǎn)換為LBA邏輯塊地址。LBA是非常單純的一種尋址模式;從0開始編號來定位區(qū)塊,第一區(qū)塊LBA=0,第二區(qū)塊LBA=1,依此類推。LBA使用64位的地址空間表示扇區(qū)數(shù)目,在每扇區(qū)512字節(jié)的前提下,它可以尋址的上限是 8,796,093,022,208 GB。傳統(tǒng)上操作系統(tǒng)對硬盤的尋址是通過柱(Cylinder)、面(Head)、扇區(qū)(Sector)的組合來進行。硬盤的每個盤片稱為一個面,每個面對應(yīng)著一個磁頭,所以可以用磁頭(head)表示硬盤的盤片,各面磁道(track)號相同的磁道合稱為一個柱面(cylinder),每個磁道又分為若干個扇區(qū)(sector)。扇區(qū)是硬盤讀寫操作的基本單元,每個扇區(qū)一般是512個字節(jié)。硬盤上可供用戶使用的空間從CHS(0,0,1)開始,此扇區(qū)稱作“主引導扇區(qū)”。主引導扇區(qū)上的512字節(jié)存儲的信息依次是引導代碼(偏移量000到1BD 共446個字節(jié)),分區(qū)表(偏移量1BE到1FD共64字節(jié),每個分區(qū)表占16字節(jié)),分區(qū)有效標志(1fe、1ff, 值是55AA)。在系統(tǒng)啟動時,BIOS自檢完畢后將控制權(quán)交給MBR中的引導代碼段,由此段代碼加載操作系統(tǒng)完成啟動過程。注意:MBR是獨立于操作系統(tǒng)的。分區(qū)表結(jié)構(gòu)第一分區(qū)表1BE1BF1C01C11C21C31C41C5Boot indStart HStart SStart CSys indEnd HEnd SEnd C1C61C71C81C91CA1CB1CC1CDRealsec4Realsec3Realsec2Realsec1#sect4#sect3#sect2#sect1第二分區(qū)表1CE1CF1D01D11D21D31D41D5Boot indStart HStart SStart CSys indEnd HEnd SEnd C1D61D71D81D91DA1DB1DC1DDRealsec4Realsec3Realsec2Realsec1#sect4#sect3#sect2#sect1第三分區(qū)表1DE1DF1E01E11E21E31E41E5Boot indStart HStart SStart CSys indEnd HEnd SEnd C1E61E71E81E91EA1EB1EC1EDRealsec4Realsec3Realsec2Realsec1#sect4#sect3#sect2#sect1第四分區(qū)表1EE1EF1F01F11F21F31F41F5Boot indStart HStart SStart CSys indEnd HEnd SEnd C1F61F71F81F91FA1FB1FC1FDRealsec4Realsec3Realsec2Realsec1#sect4#sect3#sect2#sect1 說明:1、boot ind 活動分區(qū)標志,4個分區(qū)只能有一個可以設(shè)置為活動分區(qū),活動分區(qū)標識符是80H,非活動分區(qū)是00H。sys ind 分區(qū)文件類型。比如0B代表FAT32,擴展分區(qū)是052、start H,end H,start S,end S,start C,end C分別表示開始結(jié)束的面(H),扇區(qū)(S),柱(C)。3、Realsec是DWORD值(字節(jié)順序realsec1,2,3,4),表示當前分區(qū)之前的總扇區(qū)數(shù)。#sect是DWORD值(字節(jié)順序#sect1,2,3,4),表示當前分區(qū)占用的扇區(qū)數(shù)。在主分區(qū)表的4個表項的某一項中記錄擴展分區(qū)信息。要將某個分區(qū)置為擴展分區(qū),只要將它的Sys ind字節(jié)置為05H即可。擴展分區(qū)分區(qū)表項記錄的是擴展分區(qū)的地址信息,此分區(qū)表項中的第2、3、4個字節(jié)組成的物理地址指向擴展分區(qū)的位置。而在擴展分區(qū)的第一個扇區(qū)中又有一個同主分區(qū)表結(jié)構(gòu)相同的分區(qū)表,第一表項是硬盤第一個邏輯分區(qū)的信息,第二表項則又是一個擴展分區(qū),其中含有第三個邏輯分區(qū)的物理地址依此類推,所有的邏輯分區(qū)就這樣一環(huán)一環(huán)連接起來構(gòu)成了鏈式結(jié)構(gòu),而一旦擴展分區(qū)表項壞掉,相當于這條鏈子從根上斷掉,因此后面的所有邏輯分區(qū)將全部消失。偏移1FE處開始的兩個字節(jié)值為55AAH,這是合法標志。如果沒有這個值,操作系統(tǒng)將不會認為這是一個合法的引導扇區(qū)。 假如有一個分區(qū)起始位置在分區(qū)表中表示為(HSC)AAH、BBH、CCH,那么可以直接得Head 值為AAH,扇區(qū)的二進制值的前兩位移到柱面數(shù)的二進制值的前面。例如我們從硬盤分區(qū)表中直接讀出Sector=BBH=10111011B,Cylinder=CCH=11001100H,那么真實的Sector就應(yīng)該是111011B=3BH,Cylinder=10001100H=8CH。這么做是為了配合bios和ATA規(guī)范才使用這種方式。所以,1024*256*64*512/1024/1024=8192M,即8GB。既然cylinder占10位,那么在分區(qū)表中所能表示的最大范圍只有1024,那么怎么使用10位記錄超過10位的cylinder值呢?在這種情況下,分區(qū)起始地址并不起什么作用,而是要靠#sects和Realsec來決定實際的分區(qū)地址。 下面是一個硬盤主引導扇區(qū)的數(shù)據(jù)標本:(可以使用hexedit /dev/had獲?。?0 1 2 3 4 5 6 7 8 9 A B C D E F0000: eb 48 90 d0 bc 00 7c fb 50 07 50 1f fc be 1b 7c .H.|.P.P.|0020: 38 2c 7c 09 75 15 83 c6 10 e2 f5 cd 18 8b 14 8b 8,|.u.0030: ee 83 c6 10 49 74 16 38 2c 74 f6 be 10 07 03 02 .It.8,t.0040: 80 00 00 80 f7 81 a0 00 00 08 fa ea 50 7c 00 00 .P|.0050: 31 c0 8e d8 8e d0 bc 00 20 fb a0 40 7c 3c ff 74 1. .|u.t7f.0090: 4c 10 be 05 7c c6 44 ff 01 66 8b 1e 44 7c c7 04 L.|.D.f.D|.00a0: 10 00 c7 44 02 01 00 66 89 5c 08 c7 44 06 00 70 .D.f.D.p00b0: 66 31 c0 89 44 04 66 89 44 0c b4 42 cd 13 72 05 f1.D.f.D.B.r.00c0: bb 00 70 eb 7d b4 08 cd 13 73 0a f6 c2 80 0f 84 .p.s.00d0: f1 00 e9 8d 00 be 05 7c c6 44 ff 00 66 31 c0 88 .|.D.f1.00e0: f0 40 66 89 44 04 31 d2 88 ca c1 e2 02 88 e8 88 .f.D.1.00f0: f4 40 89 44 08 31 c0 88 d0 c0 e8 02 66 89 04 66 .D.1.f.f0100: a1 44 7c 66 31 d2 66 f7 34 88 54 0a 66 31 d2 66 .D|f1.f.4.T.f1.f0110: f7 74 04 88 54 0b 89 44 0c 3b 44 08 7d 3c 8a 54 .t.T.D.;D.T0120: 0d c0 e2 06 8a 4c 0a fe c1 08 d1 8a 6c 0c 5a 8a .L.l.Z.0130: 74 0b bb 00 70 8e c3 31 db b8 01 02 cd 13 72 2a t.p.1.r*0140: 8c c3 8e 06 48 7c 60 1e b9 00 01 8e db 31 f6 31 .H|.1.10150: ff fc f3 a5 1f 61 ff 26 42 7c be 7e 7d e8 40 00 .a.&B|.0160: eb 0e be 83 7d e8 38 00 eb 06 be 8d 7d e8 30 00 .8.0.0170: be 92 7d e8 2a 00 eb fe 47 52 55 42 20 00 47 65 .*.GRUB .Ge0180: 6f 6d 00 48 61 72 64 20 44 69 73 6b 00 52 65 61 om.Hard Disk.Rea0190: 64 00 20 45 72 72 6f 72 00 bb 01 00 b4 0e cd 10 d. Error.01a0: ac 3c 00 75 f4 c3 00 00 00 00 00 00 00 00 00 00 .u.01b0: 00 00 00 00 00 00 00 00 60 47 61 47 00 00 00 01 .GaG.01c0: 01 00 0b fe 7f 87 3f 00 00 00 49 17 60 00 80 00 .?.I.01d0: 41 88 0f fe ff ff 88 17 60 00 39 cd f0 08 00 00 A.9.01e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .01f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa .U. 左列是偏移地址,中間是數(shù)據(jù)區(qū),右列是ASCII文本區(qū)。偏移地址1BE至1CD處的十六個字節(jié)是第一個分區(qū)表項。 第一部分:00 表示此分區(qū)為非活動分區(qū)。 第二部分:01 01 00 表示此分區(qū)開始于1面、1扇區(qū)、0道。 第三部分:0b 表示此分區(qū)文件系統(tǒng)為Fat32。 第四部分:FE 7F 87 表示此分區(qū)結(jié)束于254面,63扇區(qū),391道。 至此,我們就可以大致估算出這個分區(qū)的容量為: 391*63*254*512/1024/1024=3055M。 第五部分:3F 00 00 00 表示位于此分區(qū)之前的扇區(qū)數(shù)為0000003F=63個扇區(qū) 第六部分:49 17 60 00 表示此分區(qū)占用的扇區(qū)數(shù)為00601749H=6297417個扇區(qū)=3074M, 與第4部分計算出來的分區(qū)容量大致吻合。 這塊硬盤在linux下執(zhí)行fdisk -l /dev/hda 的輸出如下:Disk /dev/hda: 80.0 GB, 80026361856 bytes255 heads, 63 sectors/track, 9729 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System/dev/hda1 1 392 3148708+ b Win95 FAT32/dev/hda2 * 393 9729 74999452+ f Win95 Extd (LBA)/dev/hda5 393 1310 7373803+ 83 Linux/dev/hda6 1311 1507 1582371 83 Linux/dev/hda7 1508 3266 14129136 83 Linux/dev/hda8 3267 3332 530113+ 82 Linux swap/dev/hda9 3333 3593 2096451 b Win95 FAT32/dev/hda10 3594 7509 31455238+ b Win95 FAT32/dev/hda11 7510 9729 17832118+ b Win95 FA
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國光學儀器行業(yè)商業(yè)模式創(chuàng)新戰(zhàn)略制定與實施研究報告
- 2025-2030年中國幼小銜接教育行業(yè)商業(yè)模式創(chuàng)新戰(zhàn)略制定與實施研究報告
- 2025-2030年中國旅游行業(yè)并購重組擴張戰(zhàn)略制定與實施研究報告
- 2025-2030年中國休閑餐飲行業(yè)全國市場開拓戰(zhàn)略制定與實施研究報告
- 2025-2030年中國知識密集型服務(wù)行業(yè)營銷創(chuàng)新戰(zhàn)略制定與實施研究報告
- 2025-2030年中國鉭電容器行業(yè)全國市場開拓戰(zhàn)略制定與實施研究報告
- 新形勢下智能門鎖行業(yè)轉(zhuǎn)型升級戰(zhàn)略制定與實施研究報告
- 德州黑陶品牌推廣調(diào)研
- 單位辦公室2025年工作要點
- 護肝藥品知識培訓課件
- 梁平法制圖規(guī)則及鋼筋翻樣講解
- 乙肝 丙肝培訓課件
- 2024屆湖北省武漢實驗外國語學校數(shù)學七上期末統(tǒng)考模擬試題含解析
- 基于深度學習的網(wǎng)絡(luò)釣魚郵件識別技術(shù)研究
- 融資成本視角下的船舶融資租賃模式研究
- 感冒中醫(yī)理論知識課件
- 2023年希望杯數(shù)學培訓100題-六年級(含答案)
- 一年級科學人教版總結(jié)回顧2
- 個人住房貸款提前還款月供及節(jié)省利息EXCEL計算
- 第五單元《圓》教材解析-人教版數(shù)學六年級上冊
- 患者突發(fā)昏迷應(yīng)急預案演練腳本-
評論
0/150
提交評論