Boot Sector 結構、系統啟動過程簡介 一. Boot Sector 的組成 Boot Sector 也就是硬盤的第一個扇區 (注 1 : 0 柱面, 0 磁道, 1 扇區) (注 2 : 1 磁道 =16 扇區" name="description" />

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • Boot Sector結構、系統啟動過程簡介

    發表于:2007-07-04來源:作者:點擊數: 標簽:
    解決困擾已久的系統啟動過程,可以幫助使多系統共存,而不影響各自啟動! MI LY: Verdana">Boot Sector 結構、系統啟動過程簡介 一. Boot Sector 的組成 Boot Sector 也就是硬盤的第一個扇區 (注 1 : 0 柱面, 0 磁道, 1 扇區) (注 2 : 1 磁道 =16 扇區
    解決困擾已久的系統啟動過程,可以幫助使多系統共存,而不影響各自啟動!

    MILY: Verdana">Boot Sector結構、系統啟動過程簡介

    一.
    Boot Sector 的組成

       Boot Sector
    也就是硬盤的第一個扇區(注10柱面,0磁道,1扇區) (注2 1磁道=16扇區,1扇區=512字節), 它由 MBR (Master Boot Record), DPT (Disk Partition Table) Boot Record ID  三部分組成.
       MBR
    又稱作主引導記錄占用 Boot Sector 的前 446 個字節 ( 0 to 0x1BD ),
    存放系統主引導程序 (它負責檢查硬盤分區表、尋找可引導分區并負責將可引導分區的引導扇區(DBR)裝入內存).
       DPT
    即主分區表占用 64 個字節 (0x1BE to 0x1FD), 記錄了磁盤的基本分區
    信息. 主分區表分為四個分區項, 每項 16 字節, 分別記錄了每個主分區的信息
    (
    因此最多可以有四個主分區).
       Boot Record ID
    即引導區標記占用兩個字節 (0x1FE and 0x1FF), 對于合法
    引導區, 它等于 0xAA55, 這是判別引導區是否合法的標志.
       Boot Sector
    的具體結構如下圖所示:
         0000  |------------------------------------------------|
               |                                                |
               |                                                |
               |             Master Boot Record                 |
               |                                                |
               |                                                |
               |            
    主引導記錄(446字節)                |
               |                                                |
               |                                                |
               |                                                |
         01BD  |                                                |
         01BE  |------------------------------------------------|
               |                                                |
         01CD  |            
    分區信息  1(16字節)                |
         01CE  |------------------------------------------------|
               |                                                |
         01DD  |            
    分區信息  2(16字節)                |
         01DE  |------------------------------------------------|
               |                                                |
         01ED  |            
    分區信息  3(16字節)                |
         01EE  |------------------------------------------------|
               |                                                |
         01FD  |            
    分區信息  4(16字節)                |
               |------------------------------------------------|
               | 01FE                | 01FF                     |
               |         55          |           AA             |
               |------------------------------------------------|

    . 系統啟動過程簡介

       
    系統啟動過程主要由一下幾步組成(以硬盤啟動為例):

       1.
    開機
       2. BIOS
    加電自檢 ( Power On Self Test -- POST )
         
    內存地址為 0ffff:0000
       3.
    將硬盤第一個扇區 (001扇區, 也就是Boot Sector)
         
    讀入內存地址 0000:7c00 .(注3:遇到最后兩個字節55 AA讀入內存執行
       4.
    檢查 (WORD) 0000:7dfe 是否等于 0xaa55, 若不等于
         
    則轉去嘗試其他啟動介質, 如果沒有其他啟動介質則顯示
          "No ROM BASIC"
    然后死機.
       5.
    跳轉到 0000:7c00 處執行 MBR 中的程序.
       6. MBR
    首先將自己復制到 0000:0600 , 然后繼續執行.
       7.
    在主分區表中搜索標志為活動的分區. 如果發現沒有活動
         
    分區或有不止一個活動分區, 則轉停止.
       8.
    將活動分區的第一個扇區讀入內存地址 0000:7c00 .

    (注4在分區表的四個記錄中,一般來說有且只有一個記錄的標記是活動的,MBR主要負責從活動分區中裝載并運行系統引導程序)會去找到這個分區記錄,根據記錄的起始扇區加載該分區的邏輯 0 扇區(起始扇區)的內容到 0x07C0:0000,并且執行 JUMP 0x07C0:0000(按照規范,BOOT RECORD 也應該從 0x07C0:0000 處開始執行,所以 MBR 通常都要先將自己搬移,以騰出位置去加載 BOOT RECORD)??刂茩嗲袚Q到 BOOT RECORD。BOOT RECORD(包括boot loadergrub或lilo ) linux 為例,它會讀取 linux 內核鏡像到地址 0x9000:0000,然后開始切換到 0x9000:0000 繼續運行。 MS-DOS 為例,則它會讀取文件系統根目錄下的 IO.SYS MSDOS.SYS 兩個文件然后加載到內存中繼續運行。
       9. 檢查 (WORD) 0000:7dfe 是否等于 0xaa55, 若不等于則
         
    顯示 "Missing Operating System" 然后停止, 或嘗試
         
    軟盤啟動.
       10.
    跳轉到 0000:7c00 處繼續執行特定系統的啟動程序.
       11.
    啟動系統 ...

       
    以上步驟中 2,3,4,5 步是由 BIOS 的引導程序完成. 6,7,8,9,10
    步由MBR中的引導程序完成.

       
    一般多系統引導程序 ( SmartFDISK, BootStar, PQBoot )
    都是將標準主引導記錄替換成自己的引導程序, 在運行系統啟動程序
    之前讓用戶選擇要啟動的分區.
       
    而某些系統自帶的多系統引導程序 ( lilo, NT Loader )
    則可以將自己的引導程序放在系統所處分區的第一個扇區中, Linux
    中即為 SuperBlock (其實 SuperBlock 是兩個扇區).
       
    : 以上各步驟中使用的是標準 MBR, 其他多系統引導程序的引導過程與此不同.

    5:一些早期的引導型病毒,以及某些 bootloader,還有些硬盤加密卡,他們會修改 MBR,做個鉤子出來。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>