硬盤(pán)主引導(dǎo)扇區(qū)(mbs)結(jié)構(gòu),代碼已注釋_第1頁(yè)
已閱讀1頁(yè),還剩11頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、硬盤(pán)主引導(dǎo)扇區(qū)(MBS)結(jié)構(gòu)代碼已注釋.txt∞一人行必會(huì)發(fā)情二人行必會(huì)激情三人行必有奸情就不會(huì)被珍惜。真實(shí)的女孩不完美,完美的女孩不真實(shí)。得之坦然,失之淡然,順其自然,爭(zhēng)其必然。硬盤(pán)主引導(dǎo)扇區(qū)(MBS)結(jié)構(gòu),代碼已注釋有的網(wǎng)友反映第五部分MBR源代碼看不懂,我注釋一下我們經(jīng)常遇到各種各樣的硬盤(pán)故障,其中有相當(dāng)部分是硬盤(pán)軟故障,如有些朋友在安裝Linux后,發(fā)現(xiàn)無(wú)法安裝Windows等,但很多朋友由于在對(duì)硬盤(pán)的邏輯結(jié)構(gòu)不是很了解,無(wú)法判

2、斷合解決該類問(wèn)題。為了普及這些知識(shí),增強(qiáng)大家的興趣和做試驗(yàn)成功后的成就感,本人以提問(wèn)的形式給大家展現(xiàn)這方面的知識(shí),同時(shí)也提醒大家在實(shí)做時(shí)先用一個(gè)多余而且無(wú)重要數(shù)據(jù)的硬盤(pán)做試驗(yàn),免得造成不必要的損失。另外,對(duì)于匯編不了解但有一定計(jì)算機(jī)基礎(chǔ)的朋友,建議自己查找資料進(jìn)一步學(xué)習(xí),也可以記下本文中的代碼,實(shí)做中靈活應(yīng)用。問(wèn)題:我們?cè)诎惭b所有版本的Windows時(shí),一般不管使用Win9X的Fdisk命令對(duì)硬盤(pán)進(jìn)行分區(qū),還是由安裝程序進(jìn)行分區(qū),基本上

3、都只能分一個(gè)主分區(qū)和一個(gè)擴(kuò)展分區(qū),擴(kuò)展分區(qū)里面又分若干邏輯分區(qū),很少人嘗試過(guò)分多個(gè)主分區(qū)或多個(gè)擴(kuò)展分區(qū),今天有空出下面問(wèn)題,隨便做了個(gè)試驗(yàn)(Linux下做直接讀Linux分區(qū)的文件試驗(yàn)導(dǎo)致硬盤(pán)Linux徹底被破壞,干脆。。。),結(jié)果如下:10G硬盤(pán)分為了3個(gè)主分區(qū),而且還可以從任何一個(gè)主分區(qū)啟動(dòng),也就是說(shuō),3個(gè)主分區(qū)裝了3個(gè)操作系統(tǒng)。問(wèn)題:(1)在只有基本的DOS情況下是如何做到的?(除了DOS,不允許用其它任何軟件)(2)一塊硬盤(pán)最多

4、可分為幾個(gè)主分區(qū)和幾個(gè)擴(kuò)展分區(qū)?目的:通過(guò)討論,讓大家(1)深刻理解硬盤(pán)0面0道1扇區(qū)的MBRDPTBRI結(jié)構(gòu);(2)掌握手動(dòng)修改MBR和DPT的手段,具備手動(dòng)備份和還原硬盤(pán)0面0道1扇區(qū)的能力;(3)了解計(jì)算機(jī)從硬盤(pán)啟動(dòng)的過(guò)程,了解編寫(xiě)多重啟動(dòng)程序的基本方法;(4)為將來(lái)學(xué)習(xí)其它操作系統(tǒng)打下良好的基礎(chǔ)。答案:(由于編輯窗口太小,可能有不少錯(cuò)誤,也已修改不少,剩下的請(qǐng)指出)關(guān)鍵詞:MBSMasterBootSect主引導(dǎo)扇區(qū)MBR-Ma

5、sterBootRecd主引導(dǎo)記錄DPT-DiskPartitionTable硬盤(pán)分區(qū)表BRI-BootRecdID引導(dǎo)記錄標(biāo)志CHS-(Cylinder柱面,也就是磁道編號(hào)0-mHead頭,編號(hào)0nSect扇區(qū)編號(hào)1t)參數(shù)。一、硬盤(pán)結(jié)構(gòu)和邏輯編號(hào)(1)硬盤(pán)物理結(jié)構(gòu)傳統(tǒng)硬盤(pán)由多個(gè)雙面磁碟組成,每個(gè)面都有一個(gè)讀寫(xiě)磁頭,磁頭編號(hào)從0開(kāi)始,所謂0面就是指0磁頭所對(duì)應(yīng)的面;每個(gè)面被劃為若干磁道,編號(hào)從負(fù)數(shù)開(kāi)始,磁道數(shù)越小,越靠近磁MBS),也

6、就是LBA=0的扇區(qū);(2)分區(qū)是按空心圓柱形(蛋卷形狀)劃分,如圖所示由于0面0道1扇區(qū)(MBS)保存啟動(dòng)代碼和硬盤(pán)分區(qū)信息,如果這個(gè)扇區(qū)物理?yè)p壞,這個(gè)硬盤(pán)也就無(wú)法進(jìn)行分區(qū),導(dǎo)致硬盤(pán)無(wú)法使用。但是對(duì)于現(xiàn)代硬盤(pán),由于它內(nèi)部使用的是映射機(jī)制,完全可以把個(gè)好的扇區(qū)映射過(guò)來(lái),修復(fù)硬盤(pán)。很多硬盤(pán)修復(fù)軟件可以做到這點(diǎn),比較有名的是MHDD和PC3000對(duì)于這個(gè)重要扇區(qū)(512個(gè)字節(jié))的規(guī)范為:MBR—MasterBootRecd,主引導(dǎo)記錄,共4

7、46個(gè)字節(jié)。規(guī)范并沒(méi)有規(guī)定代碼是什么,很多軟件公司都有自己的MBR,如MS的MBR,Linux的Grub或Lilo,DM的等。我們常用的DOS下的Fdiskmbr其實(shí)就是使用MS的MBR覆蓋這446個(gè)字節(jié),F(xiàn)disk程序內(nèi)部本身包含這段代碼,有興趣可以把Fdisk.EXE改名為Fdisk.Txt,再用記事本打開(kāi),可以看到如下信息Invalidpartitiontable.Errloadingoperatingsystem.Missing

8、operatingsystem。MS的這段代碼的功能是查找引導(dǎo)分區(qū)信息或者叫活動(dòng)分區(qū)(在MBR后面)如果沒(méi)有或?yàn)?個(gè)以上,則顯示以上信息系統(tǒng)引導(dǎo)失??;否則再按引導(dǎo)分區(qū)項(xiàng)讀對(duì)應(yīng)引導(dǎo)扇區(qū),判斷結(jié)尾是否為55AA,是的話把CPU的控制權(quán)交給引導(dǎo)扇區(qū)對(duì)應(yīng)的代碼;否則引導(dǎo)失敗。當(dāng)然我們也可以編寫(xiě)自己的MBR,做多重啟動(dòng),這個(gè)大家先反匯編MS的MBR,認(rèn)真研究以后就不難了,呵呵。對(duì)于這個(gè)MBR,MS非常霸道,如果你安裝了Linux的Grub,你就別

9、想在這個(gè)硬盤(pán)上安裝Windows,這個(gè)問(wèn)題在TPYBBS里面出現(xiàn)過(guò)多次(本人也回答過(guò)多次,對(duì)于一些人動(dòng)不動(dòng)就叫別人對(duì)硬盤(pán)低級(jí)格式化的做法有點(diǎn)反感),最快的解決方法是:Fdiskmbr,當(dāng)然如果你的硬盤(pán)東西都不要的話,可以往MBS里面寫(xiě)一堆垃圾,破壞后面要說(shuō)的BRI,讓W(xué)indows安裝程序認(rèn)為MBS非法,然后在安裝程序里面重新分區(qū)就可以了DPT—DiskPartitionTable硬盤(pán)分區(qū)表,這是硬盤(pán)最重要的信息,這種信息被破壞,也就不

10、知道硬盤(pán)是怎么分區(qū)的了,不過(guò)現(xiàn)在有些軟件通過(guò)搜索可以找回分區(qū)信息,如easyrecovery.DPT共64個(gè)字節(jié),分為4項(xiàng),每項(xiàng)16個(gè)字節(jié)對(duì)應(yīng)一個(gè)分區(qū)。分區(qū)規(guī)范規(guī)定:一個(gè)硬盤(pán)可以有多個(gè)主分區(qū)(PrimaryPartition),但最多只能有一個(gè)擴(kuò)展分區(qū)(ExtendedPartition),一個(gè)擴(kuò)展分區(qū)可以劃分為多個(gè)邏輯分區(qū),所以一個(gè)硬盤(pán)最多只能劃為4個(gè)主分區(qū)或者3個(gè)主分區(qū)+一個(gè)擴(kuò)展分區(qū)。MS真懶,它的OS最多只讓我們劃一個(gè)主分區(qū)+一個(gè)

11、擴(kuò)展分區(qū),其它OS沒(méi)這個(gè)問(wèn)題。每個(gè)分區(qū)項(xiàng)的結(jié)構(gòu)如下:偏移內(nèi)容大小00h0x80表示活動(dòng)分區(qū),00不活動(dòng)1BYTE,由于這個(gè)字節(jié)為MBR代碼所識(shí)別,我們完全可以編寫(xiě)自己的MBR,不理會(huì)該字節(jié)內(nèi)容,啟動(dòng)時(shí)選擇所要啟動(dòng)的分區(qū)。甚至設(shè)置全部的分區(qū)為活動(dòng)分區(qū)都可以。無(wú)論為怎么樣填寫(xiě),作為從盤(pán),都能被操作系統(tǒng)所識(shí)別01h分區(qū)開(kāi)始磁頭編號(hào)(面號(hào))1BYTE02h低6位分區(qū)開(kāi)始扇區(qū)號(hào)6位二進(jìn)制數(shù)02h高2位和03h分區(qū)開(kāi)始的柱面數(shù),也叫道編號(hào)10位二進(jìn)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論