資源描述:
《linux 磁盤分區(qū)詳解.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、系統(tǒng)引導(dǎo)過程及硬盤分區(qū)結(jié)構(gòu)論述 作者:zhy 來自:LinuxSir.Orgouc.edu.cn 摘要:本文是理論性文檔,主要講述系統(tǒng)引導(dǎo)過程以及硬盤的物理結(jié)構(gòu); ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 正文 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 一、系統(tǒng)引導(dǎo)過程簡介 系統(tǒng)引導(dǎo)過程主要由以下幾個(gè)步驟組成(以硬盤啟動(dòng)為例) 1、開機(jī); 2、BIOS加電自檢(POST---PowerOnSelfT
2、est),內(nèi)存地址為0fff:0000; 3、將硬盤第一個(gè)扇區(qū)(0頭0道1扇區(qū),也就是BootSector)讀入內(nèi)存地址0000:7c00處; 4、檢查(WORD)0000:7dfe是否等于0xaa55.若不等于則轉(zhuǎn)去嘗試其他介質(zhì);如果沒有其他啟動(dòng)介質(zhì),則顯示”NoROMBASIC”,然后死機(jī); 5、跳轉(zhuǎn)到0000:7c00處執(zhí)行MBR中的程序; 6、MBR先將自己復(fù)制到0000:0600處,然后繼續(xù)執(zhí)行; 7、在主分區(qū)表中搜索標(biāo)志為活動(dòng)的分區(qū).如果發(fā)現(xiàn)沒有活動(dòng)分區(qū)或者不止一個(gè)活動(dòng)分區(qū),則停止; 8、將活動(dòng)分區(qū)的第一個(gè)扇區(qū)讀入內(nèi)存地址0000:7c00處; 9、
3、檢查(WORD)0000:7dfe是否等于0xaa55,若不等于則顯示“MissingOperatingSystem”,然后停止,或嘗試軟盤啟動(dòng); 10、跳轉(zhuǎn)到0000:7c00處繼續(xù)執(zhí)行特定系統(tǒng)的啟動(dòng)程序; 11、啟動(dòng)系統(tǒng). 以上步驟中(2),(3),(4),(5)步由BIOS的引導(dǎo)程序完成;(6),(7),(8),(9),(10)步由MBR中的引導(dǎo)程序完成. 一般多系統(tǒng)引導(dǎo)程序(如SmartBootManager,BootStar,PQBoot等)都是將標(biāo)準(zhǔn)主引導(dǎo)記錄替換成自己的引導(dǎo)程序,在運(yùn)行系統(tǒng)啟動(dòng)程序之前讓用戶選擇想要啟動(dòng)的分區(qū).而某些系統(tǒng)自帶的多系統(tǒng)引導(dǎo)程
4、序(如LILO,NTLoader等)則可以將自己的引導(dǎo)程序放在系統(tǒng)所處分區(qū)的第一個(gè)扇區(qū)中,在Linux中即為兩個(gè)扇區(qū)的SuperBlock. 注:以上步驟中使用的是標(biāo)準(zhǔn)的MBR,多系統(tǒng)引導(dǎo)程序的引導(dǎo)過程與此不同. 二、硬盤結(jié)構(gòu)及參數(shù) 3D參數(shù)(DiskGeometry):CHS(Cylinder/Head/Sector)C-Cylinder柱面數(shù)表示硬盤每面盤片上有幾條磁道,最大為1024(用10個(gè)二進(jìn)制位存儲(chǔ));H-Head磁頭數(shù)表示硬盤總共有幾個(gè)磁頭,也就是幾面盤片,最大為256(用8個(gè)二進(jìn)制位存儲(chǔ));S-Sector扇區(qū)數(shù)表示每條磁道上有幾個(gè)扇區(qū),最大為63(
5、用6個(gè)二進(jìn)制位存儲(chǔ)). 1、引導(dǎo)扇區(qū) BootSector組成 BootSector也就是硬盤的第一個(gè)扇區(qū),它由MBR(MasterBootRecord),DPT(DiskPartitionTable)和BootRecordID三部分組成.MBR又稱為主引導(dǎo)記錄,占用BootSector的前446個(gè)字節(jié)(0~0x1BD),存放系統(tǒng)主引導(dǎo)程序(它負(fù)責(zé)從活動(dòng)分區(qū)中裝載并且運(yùn)行系統(tǒng)引導(dǎo)程序).DPT即主分區(qū)表占用64個(gè)字節(jié)(0x1BE~0x1FD),記錄磁盤的基本分區(qū)信息.主分區(qū)表分為四個(gè)分區(qū)項(xiàng),每項(xiàng)16個(gè)字節(jié),分別記錄每個(gè)主分區(qū)的信息(因此最多可以有四個(gè)主分區(qū)).B
6、ootRecordID即引導(dǎo)區(qū)標(biāo)記占用兩個(gè)字節(jié)(0x1FE~0x1FF),對(duì)于合法引導(dǎo)區(qū),它等于0xaa55,這是判別引導(dǎo)區(qū)是否合法的標(biāo)志). BootSecor具體結(jié)構(gòu)如圖: 2、分區(qū)表結(jié)構(gòu)簡介 分區(qū)表由四個(gè)分區(qū)項(xiàng)構(gòu)成,每一項(xiàng)結(jié)構(gòu)如下: BYTEState:分區(qū)狀態(tài),0=未激活,0x80=激活(注意此項(xiàng)); BYTEStartHead:分區(qū)起始磁頭號(hào); WORDStartSC:分區(qū)起始扇區(qū)和柱面號(hào),底字節(jié)的底6位為扇區(qū)號(hào),高2位為柱面號(hào)的第9,10位,高字節(jié)為柱面號(hào)的低8位; BYTEType:分區(qū)類型,如0x0B=FAT32,0x83=Linux等,00
7、表示此項(xiàng)未用; BYTEEndHead:分區(qū)結(jié)束磁頭號(hào); WORDEndSC:分區(qū)結(jié)束扇區(qū)和柱面號(hào),定義同前; DWORDRelative:在線性尋址方式下的分區(qū)相對(duì)扇區(qū)地址(對(duì)于基本分區(qū)即為絕對(duì)地址); DWORDSectors:分區(qū)大小(總扇區(qū)數(shù)). 在DOS或Windows系統(tǒng)下,基本分區(qū)必須以柱面為單位劃分(Sectors*Heads個(gè)扇區(qū)),如對(duì)于CHS為764/256/63的硬盤,分區(qū)的最小尺寸為256*63*512/=7.875MB. 由于硬盤的第一個(gè)扇區(qū)已經(jīng)被引導(dǎo)扇區(qū)占用,所