駭客小築's Archiver

star 發表於 2006-2-1 04:11 AM

[轉載] 磁碟引導開機

由 [url]http://www.ascc.net/nl/93/2004/02.txt[/url]
[url]http://www.ascc.net/nl/93/2005/02.txt[/url] 轉載
-
《資訊技術》

  磁碟引導開機(上)

    科工所 黃耀輝

    前言

      目前大部份作業系統的安裝步驟都儘量自動化,連開機引導程序
    也一併處理了。或許\大家似乎感覺不到開機程序的存在,但它仍掌
    握著作業系統的命脈,當它真的不見了(如病毒破壞或安裝不當),
    可會動彈不得。

      再者,如果善用「系統開機程序」,不管是系統啟動或備份將更
    容易。故筆者想藉本文與讀者切磋心得,一起討論Windows、DOS環
    境下的開機問題。

    開機步驟

      大致上,硬體(韌體)部份的啟動步驟約略如下(如果發現其中
    有錯誤,可參考使用手冊,針對該部份進行檢查):

      當電源供應器啟動且「Microprocessor timer chip」接收到良好
    訊號後,CPU開始執行「ROM BIOS」(Basic Input-Output System),
    而後執行POST(Power On Self Test,含CMOS、CPU、RAM、KeyBoard、
    Video、Disk...),完成後,ROM BIOS將按照CMOS設置中的啟動順
    序搜尋軟、硬碟驅動器及CDROM、網路服務器等有效的啟動驅動器,
    讀入MBR(Master Boot Record,主系統引導記錄),然後將系統控
    制權交給引導記錄,由引導記錄完成系統的啟動。 由於MBR與引導
    扇區(boot sector)比較小,通常它主要任務是讀入第二個啟動碼
    (loader Code),第二個啟動碼再再讀入第三個啟動碼,直到啟動
    操作系統核心程式。

      對硬碟而言,如果MBR有正確的引導記錄,即依選項指向至各相對
    分割(Partition);否則尋找PBR(Partition Bot Record)table,
    指向設定為active之分割。如果被指定分割之引導扇區有正確之啟
    動碼,即載入相對之啟動程式,例如引導扇區為NT之啟動碼,則會
    載入根目錄之ntldr引導程式;如引導扇區為9x之啟動碼,則會載入
    根目錄之io.sys核心程式。

    分割規劃

      目前的硬碟容量都很大,妥善規劃是有必要的。筆者常應用SPFDisk
    (SPFDisk是一支綜合了『硬碟分割工具』以及『啟動管理程式』的
    軟體,請詳見網址[url]http://spfdisk.sourceforge.net/note.htm[/url])來
    管理分割。例如:建立、備份、隱藏、設定System ID等。主分割
    (Primary)數量可達4個,而其中主分割之ㄧ可設為擴充分割
    (Extended),建立一個新的邏輯分割(Logic)表;而邏輯分割又
    可建立擴充分割,繼續循環延伸,使用者可視實際之需要作合適安
    排。

      當筆者安裝操作系統前,習慣先備份MBR,且每次只顯示一個主分
    割,其餘同類分割都予以隱藏,避免系統互相干擾。等多系統全部
    安裝完畢後再回存MBR,並使用多系統開機管理程序啟動作業系統。

    (單)多系統開機程序

      目前與開機管理(Boot Manager)有關的市售軟體甚多,大部份
    必須安裝後才能執行,啟動碼安裝的地方有MBR、分割啟動磁區或分
    割,也有些與作業系統混用。有些可能會因重寫MBR而造成某些備份
    軟體無法辨識分割表。因需經安裝才能使用,那麼當系統當機後只
    能藉該軟體所建立之急救片來應變了。

      為避免有侵權嫌疑,故本文避開市售軟體部份,僅將介紹幾個使
    用方便的軟體,如:SPFDisk、ntldr、」 GRUB for DOS」 等。因
    關係系統底層操作,具有相當危險性,若非熟悉,建議不要輕易嘗
    試安裝於硬碟。讀者若有興趣,可參考後文之實際演練說明。

    (一) SPFDisk

        使用SPFDisk所建立的多系統開機程序,可安裝在MBR或分割。
         安裝在MBR最方便,但相容性較差,可能導致很多軟體無法辨
         識分割表(Partition table),而無法做備份。而安裝在啟
         動磁區,相容性較高,會佔用一個分割,則該分割之System
         ID必須設定成SPF專用,且設為Active。DOS或Windows無法共
         用該分割,故無法編輯該開機選單,要修改時仍必須透過
         SPFDISK。

        開機程序為光棒式操作,選單選項可設置隱藏同類主分割。無
         法載入『引導碼映像檔』或『可開機磁碟硬像檔』,但SPFDisk
         為單一檔案,圖形介面操作,使用容易,可隨時執行備份或重
         建,很是方便。

    (二) ntldr

        ntldr是NT系統的開機管理程式,當開機程序被引導至某分割,
         而該分割引導扇區為NT引導碼時,會載入根目錄下一個叫ntldr
         的隱藏檔。ntldr會尋找並載入Boot.ini、Bootsect.dos、
         Bootsect.w40、NTdetect.com、NTbootdd.sys等檔案。

        其中Bootsect.dos、Bootsect.w40為啟動IO.sys的引導碼映像
         檔,需要啟動DOS或9X系統時才需要,檔名可配合Boot.ini更
         改;如果有SCSI設備才需要NTbootdd.sys檔。Boot.ini為可編
         輯的開機選單,Boot.ini語法請詳
         [url]http://support.microsoft.com/?kbid=289022[/url]。

        ntldr可重新導引至指定分割之引導扇區,或啟動『引導碼映
         像檔』與『可開機磁碟硬像檔』,但不能隱藏分割。如果ntldr
         是被其他多系統開機程序所引導時,會出現多重多系統開機畫
         面,而ntldr也可再繼續引導其他多系統開機程序。

        由於ntldr、boot.ini、NTdetect.com等檔案容易備份,故重
         建很容易。不過引導扇區則必須經由作業系統安裝,或利用修
         復控制台【註A】相關指令或bootpart(請詳見網址
         [url]http://www.winimage.com/bootpart.htm[/url])等類似軟體安裝引
         導碼。

        至於Bootsect.dos、Bootsect.w40等『引導碼映像檔檔案』,
         可使用sys.com、bootpart等類似軟體安裝引導碼於引導扇區
         後,再用savepart、winmbr或debug.exe相關工具軟體製造該
         檔案。由於它們跟分割配置有關,所以很難與其他電腦共享,
         但在同台電腦裡是允許\被其他多系統開機程序所啟動的。

        Ntldr若要啟動『可開機磁碟硬像檔』時,必須使用VFloppy
        (請詳[url]http://download.pchome.net/php/dl.php?sid=15880/[/url])
        等類似軟體製作『引導碼映像檔』,而且僅支援標準格式之映
        像檔(Image)。

    (三)「GRUB for DOS」

       由於DOS界面單純,容易利用軟碟開機或製成磁碟映像檔由光碟
        開機後啟動,而且DOS環境下有甚多程式或指令可供運用,例如
        驅動光碟、網路連線、驅動SCSI或USB等外部設備。解壓縮、編
        輯、複製或移動檔案等。因此在DOS環境下再起動多系統開機程
        序,甚具靈活性。而「GRUB for DOS」(GRand Unified Bootloader
        is a GNU project for multi-OS boot loader。請詳見網址
        [url]http://newdos.yginfo.net/grubdos.htm[/url])或LoadLin(請詳見
        網址[url]http://elserv.ffm.fgan.de/~lermen/[/url],啟動Linux系統,
        選單可用DOS批次檔)等多系統開機程序皆為此類上選,「GRUB
        for DOS之可編輯式選單為menu.lst;但亦可進入命令列模式,
        直接輸入指令。它允許\分組配置分割之隱藏,可指向分割之引導
        扇區,載入引導碼,或載入『引導碼映像檔』檔案(請見上面
        ntldr相關描述),啟動系統。更可不需『引導碼映像檔』
        (ntldr則需要),直接啟動『標準磁碟映像檔』。

       使用時可將一分割設為DOS開機(使用 Sys.com [drive],
        format /s [drive]或bootpart等類似軟體),其餘各種需要的
        DOS製成可開機磁碟映像檔(核心檔案即可),將它們與
        「Windows 9X」同放在此分割,但要注意各『引導碼映像檔』
        用途不同,請適當區分命名。(待續)

--

《資訊技術》

  磁碟引導開機(下)

    科工所 黃耀輝

    (文續第2004期第28頁)

    實際演練

      讀者或許\看了前(2004期)文說明仍不知所以然,因此筆者想使
    用軟碟做綜合說明,讓讀者對操作有較清楚的概念,讀者若有興趣
    可做做看。

    1.首先準備一張1.44M之軟碟片,請不要設為防寫,放進軟碟機
      (假設為A:)。

    2.到[url]http://www.winimage.com/[/url]下載winimage(shareware),執行
      安裝。

    3.到[url]http://freedos-32.sourceforge.net/release.html[/url]下載
      fd32-image(檔名為fd32002b.zip),解壓縮後會有一個fd32.img
      『標準磁碟映像檔』,先放在硬碟。接者執行winimage,打開
      fd32.img,僅保留grub資料夾與裡面全部檔案,其餘皆刪除,再
      用滑鼠點選Disk->Write Disk,寫入軟碟片。本磁碟片為Linux版
      的GRUB,但格式為fat,檔案可在DOS或Windows環境下處理。

    4.到微軟網站或[url]http://www.bootdisk.com/[/url]下載DOS及2000(或XP)
      之『開機磁碟映像檔』,先放在硬碟。然後執行winimage,打開
      DOS映像檔,再用滑鼠點選Image→「Boot Sector Properties」
      → Save →「boot Floppy file」存為dosa.bin(檔名可自設)。
      再打開2000(或XP)映像檔,用滑鼠點選Image→「Boot Sector
      Properties」→ Save →「Boot Floppy file」存為nta.bin(檔
      名可自設)﹞W述dosa.bin為啟動軟碟Io.sys之『引導碼映像檔』;
      nta.bin為軟碟啟動setupldr.bin(與ntldr同)之『引導碼映像檔』。

    5.請將上述之dosa.bin與nta.bin複製到軟碟,再到Windows 2000或
      XP之啟動分割,將ntldr、boot.ini、NTdetect.com複製到軟碟
      (請先打開資料夾選項,暫時取消『隱藏保護的作業系統檔案』、
      隱藏檔案和資料夾→顯示所有檔案和資料夾)。再到軟碟,將ntldr
      更名為setupldr.bin。

    6.請合法複製DOS核心檔案Io.sys、msdos.sys、command.com等檔案
      到軟碟根目錄。

    7.到[url]http://nu2.nu/jo/[/url]下載jo.sys,存到軟體根目錄。當MSDOS啟
      動時會提示使用者按鍵,是否要重新指向CDROM引導扇區,繼續導
      引光碟開機。

    8.到[url]http://newdos.yginfo.net/grubdos.htm[/url]下載「GRUB for DOS
      0.1.4」(檔名為grub014.zip),先解壓縮到硬碟,僅保留boot
      資料夾(含裡面全部檔案)及根目錄之grub.exe等檔案,其餘皆
      刪除,再將留下的檔案複製到軟碟。

    9.接著,到軟碟grub資料夾內,使用一般文書編輯軟體打開menu.lst
      檔,參考該軟體使用說明或下列範例修改內容。

    範例:(#為說明行,可捨去)

    #等待30秒,若未按鍵則自動啟動第二個選項。
    timeout 30
    default 2

    # Entry 1:第一個選項。啟動A碟根目錄dosa.bin,而dosa.bin會
    # 載入A碟根目錄之io.sys,再由io.sys繼續載入其他程式。
    title Boot from Floppy A:
    root (fd0)
    chainloader (fd0)/dosa.bin

    # Entry 2:第二個選項。啟動A碟根目錄nta.bin,而nta.bin會載
    # 入setupldr.bin,根據boot.ini再次引導。因本例boot.ini係複
    # 製自硬碟,故啟動程序也會與之相同,可當急救用。
    title Loadin A: ntldr
    root (fd0)
    chainloader (fd0)/nta.bin

    # Entry 3:第三個選項。指向第一個硬碟之第一分割,載入引導碼
    # (需正確才能往下導引),將其設為active。隱藏第一個硬碟之
    # 第二、三分割(假如有此分割的話)。
    title HD0-0
    unhide (hd0,0)
    hide (hd0,1)
    hide (hd0,2)
    rootnoverify (hd0,0)
    chainloader +1
    makeactive

    # Entry 4:第四個選項。指向第一個硬碟之第二分割,載入引導碼
    # (需正確才能往下導引),將其設為active。隱藏第一個硬碟之
    # 第一、三分割(假如有此分割的話)。
    title HD0-1
    unhide (hd0,1)
    hide (hd0,0)
    hide (hd0,2)
    rootnoverify (hd0,1)
    chainloader +1
    makeactive

    10.如選DOS開機,可事先於CONFIG.SYS內加入install=grub.exe,
       或於autoexec.bat內加入
       「grub.exe --config-file=(fd0)/boot/grub/menu.lst」,自
       動開啟選單;也可進入DOS後再執行。Grub.exe後如未加參數,
       則預設值為「(hd0,0)/boot/grub/menu.lst」。若找不到menu.lst
       則進入命令列模式,由使用者自行下達命令。其中有一項功\能為
       載入『標準開機片映像檔』模擬軟碟開機,轉錄該軟體說明如下
       (dos98se.img為位在第二個硬碟第一個分割之『可開機磁碟映
       像檔』):

    map (hd1,0)/dos98se.img  (fd0)
    chainloader  (hd1,0)/dos98se.img
    rootnoverify  (fd0)
    boot

    結語

      由於目前新台幣三、四千元左右即可買到80G以上的硬碟,使用者
    對如何妥善規劃分割,安裝多系統等課題,益感興趣。尤其在家裡,
    因空間、經濟或管理因素,多人共用一台電腦的情形相當普遍。如
    果熟悉分割管理與多系統開機程序,讓各操作系統有適當的獨立與
    共享,將提高電腦使用效益,減少管理界面。而且有助於系統的模
    組化安裝、備份或重建【註B】。(本文作者任職於本院科工所)
                                                     (全文完)

    〔附註〕

    註 A:

    Description of the Windows XP Recovery Console 請詳

     [url]http://support.microsoft.com/default.aspx?scid=kb;EN-US;314058[/url]

    Description of the Windows 2000 Recovery Console 請詳

     [url]http://support.microsoft.com/default.aspx?scid=kb;EN-US;229716[/url]

    註 B:

  以Windows作業系統而言,可備份與回存驅動程式,可清除安全性識
    別碼(SID)。可將「我的文件夾」、email、「我的最愛」、fonts、
    userprofiles等重新設定,轉向其他分割。各種小型工具軟體可參
    考『光碟開機系統』之操作模式(請詳[url]http://www.911cd.net/forums[/url]),
    整理成準綠色軟體放於其他分割。這些都有利於個人資料備份與回
    存,不致因丟失作業系統而盡毀。而作業系統與大型應用軟體若不
    想重新安裝,則可由備份服務器回存(網路下載或儲存媒體拷貝),
    再使用本文介紹的方式,重建MBR與引導扇區,啟動作業系統。

頁: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.