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

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

  • <strong id="5koa6"></strong>
  • GNU GRUB啟動管理器

    發表于:2007-07-02來源:作者:點擊數: 標簽:
    什么是啟動管理器? 啟動管理器是存儲在磁盤開始扇區中的一段程序,例如,硬盤的MBR(Master Boot Record),在系統完成啟動 測試 后,如果系統是從MBR啟動,則BIOS(Basic Input/Output System)將控制傳送給MBR。然后存儲在MBR中的這段程序將運行。這段程序被

    什么是啟動管理器?
        啟動管理器是存儲在磁盤開始扇區中的一段程序,例如,硬盤的MBR(Master Boot Record),在系統完成啟動測試后,如果系統是從MBR啟動,則BIOS(Basic Input/Output System)將控制傳送給MBR。然后存儲在MBR中的這段程序將運行。這段程序被稱為啟動管理器。它的任務就是將控制傳送給操作系統,完成啟動過程。
    有許多可用的啟動管理器,包括GNU GRUB (Grand Unified Boot Loader), Bootmanager, LILO (LInux LOader), NTLDR (boot loader for Windows NT systems),等等。下面我將討論GNU GRUB以及它的使用方法。

    什么是GRUB?
        GRUB是一款功能強大的啟動管理器,它能加載多種操作系統,例如Windows, DOS, Linux, GNU Hurd, *BSD,等等。
        目前,LILO是最流行的啟動管理器,被用來管理多個系統的引導。但是,如果使用了LILO,你必須記住,當你每次改變了它的配置或安裝了新的內核,都要重新運行一下LILO。而且,LILO的靈活性也遜色于GRUB。
        GRUB使用靈活。它的最新版本,0.5.96.1,支持的文件系統包括ext2(Linux使用的一種文件系統),FFS(Fast File System used by *BSD UNIX),ReiserFS(一種為Linux開發的新型日志文件系統,以被融入2.4.1內核中,minix(一種為MINIX系統開發的老式文件系統,在早期的Linux中也使用)。使用GRUB,你甚至不用引導操作系統,就能“看”到這些文件系統。例如,假如你想查看一下存放在文本文件中的日期和時間,而又不想引導整個操作系統,你可以使用GRUB shell(提示“grub>”),鍵入如下命令:

    grub> cat (partition number)/home/god/2003106110531.htm.txt.

        你可以看到與文件有關的所有信息,包括日期和時間。
        GRUB最好的應用是,你可以方便的引導不在列表中的任何分區上的任何內核。例如,如果你沒有將新編譯的內核加在啟動列表中,而你又需要引導它,你可以將它先加在列表中,重新啟動后使用。但是使用GRUB后,可以簡單到只使用GRUB shell就可以加載所需要的內核映象。
        現在我將解釋使用GRUB的三個基本步驟:編譯、安裝和配置。

    第一步:編譯和安裝GRUB
        可以從ftp://alpha.gnu.org/pub/gnu/grub 下載GRUB的源代碼。
        可以用命令“tar -xvzf 2003106110531.htm.tar.gz”解開壓縮文檔。我得到的文件是grub-0.5.96.1.tar.gz,所以我這樣做:

    # tar -xvzf grub-0.5.96.1.tar.gz

        這個命令將解開的文件和目錄放在一個名為grub-0.5.96.1的目錄中?,F在運行如下命令:

    [root@heaven ~/grub-0.5.96.1 ]# ./configure

        如果你想定制GRUB,使之包含流行的文件系統和對網卡的支持,或者刪除你不需要的網卡,可以運行如下命令:

    [root@heaven ~/grub-0.5.96.1 ]# ./configure --help

        這個命令將輸出所有的命令選項?,F在可以使用—enable和—disable選項增加或刪除對特定網卡的支持。(注意:GRUB支持網絡啟動)
        為了開始編譯過程,鍵入如下命令:

    [root@heaven ~/grub-0.5.96.1 ]# make

        為了將所有文件進行正確的安裝,鍵入命令:

    [root@heaven ~/grub-0.5.96.1 ]# make install

        至此你已經為安裝GRUB真正做好了準備。
        將GRUB的相關文件保存在諸如/boot/grub的目錄中不失為一個好主意。為此,按如下步驟:
        1.默認狀態下,GRUB所有文件將安裝在/usr/share/grub/i386-pc或者/usr/local/share/grub/i386-pc目錄下,這只取決于你的shell變量的設置。
        2.建立一個叫做/boot/grub的目錄,然后拷貝下列文件到這個目錄:
    stage1
    stage2
    *_stage1_5

        稍候我將解釋這些文件。同時也要把GRUB(可能在/usr/sbin或者/usr/local/sbin目錄下)拷貝到/boot/grub目錄下。
        安裝GRUB之前,你需要了解GRUB是怎樣識別你的硬盤和分區信息的。首先,計數是從0開始的,而不是從1。在Linux中,你的連接到主控制器上的第一塊硬盤被稱為“had”。在GRUB中即為“hd0”。同樣的,在GRUB中,你的第一個軟驅是“fd0”。這樣,第一塊硬盤上的第一、二、三個分區分別為“hd0,0”、“hd0,1”、“hd0,2”。注意:逗號是GRUB分區命名法的必要組成部分。
        為了將逗號隔開的部分整合在一起,需要使用括號。例如:(hd0,0) (hd0,1) (hd0,2)等等。(hd0,0)是第一塊硬盤上的第一個分區。類似的,(hd1,5)是第二快硬盤上的第六個分區,(hd2,0)是第三塊硬盤上的第一個分區。
    message. This may take a long time.

    第二步:安裝GRUB
        安裝GRUB可以分為三個單獨的步驟:
        1.將“stage1”安裝到MBR中。
        2.設置“stage2”的地址或者位置。
        3.設置一個菜單或選項,用來決定啟動哪一個操作系統。
        使用下面的命令開始安裝GRUB。

    [root@heaven /boot/grub ]# ./grub

        這個命令根據BIOS的設置檢測硬件設備,同時產生一些輸出信息。這會花較長的時間。
        end_request: I/O error, dev 02:00 (floppy), sector 0
        GRUB version 0.5.96.1 (640K lower / 3072K upper memory)
        注意:雖然它讓人感到非常驚奇,GRUB確實有簡潔的界面—就象支持行編輯一樣。TAB列出可能的命令列表。其它情況下TAB會列出設備或文件名??吹竭@些你會很驚奇吧。類似下面的提示會出現:

    grub>

        現在,我假設你將Linux安裝在了第一塊硬盤的第一個擴展分區中或者/dev/hda5中。記住GRUB的命名規則,將上面的名字改為(hd0,4)。鍵入下面的命令:
    grub> install (hd0,4)/boot/grub/stage1 (hd0) (hd0,4)/boot/grub/stage2 p (hd0,4)/boot/grub/menu.conf
        現在讓我們分析一下這個命令的細節。

        install
        一個內置的命令,它告訴GRUB將(hd0,4)/boot/grub/grub/stage1安裝到hd0的主引導紀錄中。
        (hd0,4)/boot/grub/stage2
        告訴GRUB stage2映象的位置。
        p with the the following options: (hd0,4)/boot/grub/menu.conf
        為菜單的顯示設置配置文件。稍候我將討論這個配置文件的結構。
        下面是對這個命令用法的總結:
        1.nstall
        2.ource_of_stage1
        3.where_to_install
        4.source_of_stage2
        5.p source_of_configuration_file
        現在,你完成了硬盤上的基本安裝工作。

    在軟盤上的安裝:
        為了在軟盤上安裝GRUB,你要會用“dd”命令,并且了解它是如何工作的。為了做一張GRUB啟動盤,你要將stage1和stage2文件放到軟盤的開始扇區中。
        
        安裝stage1到軟盤上:
        插入一張已格式化的軟盤,鍵入命令:
    [root@heaven /boot/grub ]# dd if=stage1 of=/dev/fd0 bs=512 count=1
        命令的詳細說明如下:
    if=input file
    i.e., stage1
    of=output file
    i.e., floppy drive (this may be different on your computer)
    bs=bytes to read and write
    Here it is 512 bytes.
    count=how many times to perform this operation
        每次拷貝“bs”數目的塊到目標地址。
        安裝stage2到軟盤

    [root@heaven /boot/grub ]# dd if=stage2 of=/dev/fd0 bs=512 seek=1

        這里的步驟同stage1的相同,除了一個seek選項外。Seek選項將調過一個“bs”。例如,在上面的命令中bs的值是512,這樣seek=1意味著將跳過軟盤上前512個字節,從513字節開始。這將使得第一步操作不會覆蓋stage1的前512字節。
    現在你完成了基本的軟盤驅動器安裝。

    第三步:配置GRUB
        在這一節,我們來看一下如何在啟動后進入各種操作系統,如何建立menu.conf文件。
        我們就從GRUB支持的啟動過程開始??梢杂袃煞N方法來完成啟動過程:
        ·A.通過調用內核本地啟動
        ·B.連續啟動或者將控制轉給另一個引導器
        
        A模式啟動過程
        1.置跟設備或者告訴GRUB你的根文件系統。
        2.訴GRUB你的內核影像的位置,然后將參數傳送給內核。
        3.重新啟動,試一下。
        為了啟動Linux,我將內核以bzImage的文件名放在/boot/目錄中,跟文件系統是/dev/hda5,或者GRUB中的(hd0,4)。我的啟動過程如下:
        1.root (hd0,4) [This sets the root partition]
        2.kernel /boot/bzImage root=/dev/hda5 [This sets the kernel]

        B模式啟動過程(這種模式假設當前的分區中安裝了另一個啟動管理器,例如LILO或者NTLDR):
        1.設置根分區但不要安裝它
        2.激活這個分區
        3.配置需要啟動的分區的第一個扇區
        4.重新啟動,看一下效果。
        我們在試試啟動安裝在/dev/hda1或者(hd0,0)的widows。啟動windows的過程如下:
        1.rootnoverify (hd0,0)
        2.makeactive
        3.chainloader +1 [+1 sets the first sector of the current root partition]
        4.boot [transfers the control and quits GRUB]
        menu.conf文件:它用于建立啟動多操作系統時的菜單。建立menu.conf并不難。它使用簡單的英語,就象你在這一節看到的那樣。
        所有的菜單項目都以沒有逗號分隔的“title TITLENAME”開頭。你可以隨意設置TITLENAME。
        設置Linux啟動菜單步驟如下:
        1.設置標題
        2.設置根分區
        3.設置內核的相應參數
        4.啟動

        一個菜單例子:
    title Debian GNU/Linux 2.2 kernel 2.4.1
    root (hd0,4)
    kernel /boot/bzImage.2.4.1
    boot
    #----

        前面有#的行是一個注釋。

        建立啟動Windows 或者 DOS的菜單:
    title Windoze
    rootnoverify (hd0,0)
    makeactive
    chainloader +1
    boot
    #----

        如果你安裝了兩個版本的Windows—一個是你自己用的,另一個給你的家人用的—這樣第二個就無法安裝,因為有提示說Windows已經安裝了。
        有一種簡單的方法可以安裝兩個版本的Windows,即在啟動時隱藏一個分區而使用另一個。你甚至可以為你的分區設置密碼保護,這樣可以避免別人錯誤的加載你的分區。下面介紹如何完成兩個Windows的安裝,hda1和hda2 或者 (hd0,0) 和 (hd0,1),用到的命令有lock, password, hide 和 unhide。
        
        建立windows 項目"My Entry":
    title My Entry
    lock
    unhide (hd0,0)
    hide (hd0,1)
    rootnoverify (hd0,0)
    makeactive
    chainloader +1
    boot
    #----

        為了更好的使用lock命令,你需要在配置文件開頭使用password命令。Password命令的語法如下:password secret(“secret”就是密碼)。任何時候你都可以通過按p鍵兒輸入密碼。

        建立Windows 項目"Family Entry"
    title Family Entry
    unhide (hd0,1)
    hide (hd0,0)
    rootnoverify (hd0,1)
    makeactive
    chainloader +1
    boot
    ----
     
        任何人都可以啟動這個項目,而無須輸入密碼。
        這有一個使用password命令的有趣的竅門。為了在缺省菜單列表或配置文件中隱藏某些項目,你可以使用下面的命令加載一個定制的列表:

    password secret

        在這個命令中,“secret”是密碼,而/boot/grub/secret-list.conf是密碼文件。這樣做之前,你要先進入到根目錄或者給出全路徑名。例如:

    password secret (hd0,4)/boot/grub/secret-list.conf

        還有一個更重要的命令是“map”。當你有兩塊硬盤,一個無法從第二塊硬盤啟動的操作系統,例如Windows,就可以使用map命令。例如,你能夠將hd0映射為hd1,將hd1映射為hd0。換句話說,你可以虛擬的交換兩個硬盤而啟動所需要的操作系統。命令形式如下:
    grub> map (hd0) (hd1)
    grub> map (hd1) (hd0)
       
        啟動FreeBSD:
    title FreeBSD 4.0
    root (hd0,4,a)
    kernel /boot/loader
    boot
    #----

        這里我們調用了FreeBSD的啟動管理器。Root (hd0,4,a)由四個參數,是因為FreeBSD對一個單獨分區進行了虛擬分割。我們稱根分區為“a”。如果FreeBSD占據了整個第二塊硬盤,這里就應該是root (hd0,a)。這樣,就不是調用內核而是調用FreeBSD的啟動管理器,它要比調用內核更易使用。
        (注意:我推薦在使用OpenBSD和GNU/Hurd之前,要先試一下鏈式加載。)
        現在你已經完成了基本的GRUB編譯、安裝和配置。你對GRUB了解的越多,就越會發現GRUB是一種控制啟動的易用和高效的方法。

    各種GRUB命令:
        default xx
        表明xx是缺省的啟動項目
        timeout yy
        表明在yy秒后缺省啟動項目將啟動
        fallback zz
        在第一個啟動項目失敗后,過了timeout時間后,就將啟動zz項目。
        color
        這個命令將生成彩色菜單。它的語法是:color normal current_selection。這兩個域都可以有兩個值,形如foreground/background。例如:

    color green/black or light-gray/blue

        你也可以使用相關的數字。
        記?。核械闹刀际菑?開始,所以0是第一個。
        在我的下一篇文章中,我將會講到對GNU/Hurd and OpenBSD的測試,也許還有一些網絡啟動的內容。但是你必須要等至少三個月或更多的時間,到是我會談一下我的測試結果。等著看吧。

    原文轉自: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>