GRUB使用說(shuō)明
從Red Hat Linux 7.2起,GRUB(GRand Unified Bootloader)取代LILO成為了默認(rèn)的啟動(dòng)裝載程序。相信LILO對(duì)于大家來(lái)說(shuō)都是很熟悉的。這次Red Hat Linux用GRUB代替LILO,可見(jiàn)GRUB大有過(guò)人之處。不過(guò),相對(duì)于LILO來(lái)說(shuō),大家對(duì)GRUB還是要陌生一些。本文將對(duì)GRUB的基本情況、術(shù)語(yǔ)、接口、命令以及配置文件做個(gè)介紹,希望對(duì)大家有所幫助。
一、GRUB的概述
在Red Hat linux裝載一個(gè)系統(tǒng)前,它必須由一個(gè)引導(dǎo)裝載程序(boot loader,啟動(dòng)管理程序)中的特定指令告訴它去引導(dǎo)系統(tǒng)。這個(gè)程序一般是位于系統(tǒng)的主硬盤(pán)驅(qū)動(dòng)器或是其他知道如何去開(kāi)始linux內(nèi)核的媒介驅(qū)動(dòng)器上。
如果說(shuō)一個(gè)x86系統(tǒng)只安裝了Red Hat Linux而且只有一個(gè)版本的linux內(nèi)核,那么通過(guò)引導(dǎo)裝載程序開(kāi)始Red Hat Linux的特定過(guò)程就不重要了。Red Hat Linux安裝程序允許用戶快速方便地配置引導(dǎo)裝載程序存放在主硬盤(pán)驅(qū)動(dòng)的主引導(dǎo)記錄中來(lái)引導(dǎo)操作系統(tǒng)。
然而,為了能從多個(gè)linux內(nèi)核或其他操作系統(tǒng)引導(dǎo),那么就很有必要了解Red hat linux用于提供必要的引導(dǎo)選項(xiàng)的方法,以及理解引導(dǎo)的過(guò)程與如何去改變。
本文是討論GRUB,它是Red Hat Linux用來(lái)在x86系統(tǒng)上裝載操作系統(tǒng)的默認(rèn)方法。同時(shí),本文也將詳細(xì)介紹用于控制引導(dǎo)過(guò)程的各種命令和配置選項(xiàng)。
GRUB的定義
GNU GRUB(GRand Unified Bootloader)是一個(gè)將引導(dǎo)裝載程序安裝到主引導(dǎo)記錄的程序,主引導(dǎo)記錄是位于一個(gè)硬盤(pán)開(kāi)始的扇區(qū)。它允許位于主引導(dǎo)記錄區(qū)中特定的指令來(lái)裝載一個(gè)GRUB菜單或是GRUB的命令環(huán)境。這使得用戶能夠開(kāi)始操作系統(tǒng)的選擇,在內(nèi)核引導(dǎo)時(shí)傳遞特定指令給內(nèi)核,或是在內(nèi)核引導(dǎo)前確定一些系統(tǒng)參數(shù)(如可用的RAM大?。?。
x86的引導(dǎo)過(guò)程
當(dāng)一個(gè)x86機(jī)器啟動(dòng)后,系統(tǒng)BIOS開(kāi)始檢測(cè)系統(tǒng)參數(shù),如內(nèi)存的大小、日期和時(shí)間、磁盤(pán)設(shè)備、以及這些磁盤(pán)設(shè)備用于引導(dǎo)的順序等。通常情況下,BIOS都是被配置成首先檢查軟驅(qū)或光驅(qū)(或兩者都檢查),然后再嘗試從硬盤(pán)引導(dǎo)。如果在這些可移動(dòng)的設(shè)備中,沒(méi)有找到可引導(dǎo)的介質(zhì),那么BIOS通常是轉(zhuǎn)向第一塊硬盤(pán)最初的幾個(gè)扇區(qū),尋找用于裝載操作系統(tǒng)的指令。這些最初的扇區(qū)-主引導(dǎo)記錄-開(kāi)始裝載一個(gè)預(yù)選擇操作系統(tǒng)的過(guò)程,一個(gè)操作系統(tǒng)選項(xiàng)販GRUB菜單,或是一個(gè)執(zhí)行特定選項(xiàng)的GRUB命令行接口?!?/p>
裝載GRUB和操作系統(tǒng)的過(guò)程,包括以下幾個(gè)操作步驟:
1、裝載基本的引導(dǎo)裝載程序,這通常是第一步?;疽龑?dǎo)裝載程序必須是位于主引導(dǎo)扇區(qū)中一個(gè)非常小的空間,少于512字節(jié)。因此,基本引導(dǎo)裝載程序所做的唯一的事情就是裝載第二引導(dǎo)裝載程序。這主要是歸結(jié)于在主引導(dǎo)扇區(qū)中沒(méi)有足夠的空間用于其他東西了。
2、裝載第二引導(dǎo)裝載程序,這通常稱為第二步。這第二引導(dǎo)裝載程序?qū)嶋H上是引出更高級(jí)的功能 ,以允許用戶裝載入一個(gè)特定的操作系統(tǒng)。在GRUB中,這步是讓用戶顯示一個(gè)菜單或是輸入命令。
3、裝載在一個(gè)特定分區(qū)上的操作系統(tǒng),如linux內(nèi)核。一旦GRUB從它的命令行或是配置文件中,接到開(kāi)始操作系統(tǒng)的正確指令,它就尋找必要的引導(dǎo)文件,然后把機(jī)器的控制權(quán)移交給操作系統(tǒng)。
注意
在一些文件系統(tǒng)以及文件系統(tǒng)的配置中,可能需要一個(gè)1.5步的文件,用來(lái)連接基本引導(dǎo)程序與第二引導(dǎo)程序之間的差異。
舉個(gè)例子來(lái)說(shuō),如果第二步中的引導(dǎo)裝載程序文件位于一個(gè)使用了第一步引導(dǎo)裝載程序所不能訪問(wèn)的文件系統(tǒng)的分區(qū)中,那么就可能需要指示第一步引導(dǎo)裝載程序,從1.5步文件中載入附加的指令來(lái)讀取第二步引導(dǎo)裝載程序的文件。更多相關(guān)的信息,請(qǐng)參考GRUB的信息頁(yè)。
前面所提到的引導(dǎo)方法被稱為直接裝載。因?yàn)檫@種方法中使用的是直接裝載操作系統(tǒng)的指令,沒(méi)有用到任何在引導(dǎo)裝載程序和操作系統(tǒng)主文件(如內(nèi)核)之間的中間代碼。然而,不同操作系統(tǒng)所采用的引導(dǎo)過(guò)程可能會(huì)與上面提到的有一些細(xì)微的不同。例如,微軟的DOS和Windows操作系統(tǒng)在安裝時(shí),傾趨于完全重寫(xiě)主引導(dǎo)記錄,而不是合并當(dāng)前的主引導(dǎo)記錄的配置。這將破壞掉其他操作系統(tǒng)保存在主引導(dǎo)記錄中的所有信息,如Red Hat Linux。微軟操作系統(tǒng),還有一些其他的專有操作系統(tǒng),都是使用一種稱為鏈?zhǔn)窖b載的引導(dǎo)方法來(lái)啟動(dòng)的。在這種方法中,主引導(dǎo)記錄僅僅是簡(jiǎn)單地指向操作系統(tǒng)所在分區(qū)的第一個(gè)扇區(qū)。
GRUB支持直接和鏈?zhǔn)窖b載的引導(dǎo)方法。GRUB能用于幾乎所有操作系統(tǒng),絕大多數(shù)流行的文件系統(tǒng),以及幾乎所有的系統(tǒng)BIOS所能識(shí)別的硬盤(pán)。
GRUB的特性
GRUB包含許多特性,這使得GRUB比其他可用的引導(dǎo)裝載程序更加優(yōu)越。下面列出一些比較重要的特性:
·GRUB在x86機(jī)器上,提供一個(gè)真正基于命令行的,先于操作系統(tǒng)(pre-OS)的環(huán)境。它對(duì)于用確定的選項(xiàng)裝載操作系統(tǒng)或收集系統(tǒng)信息方面,提供了最大程度的適應(yīng)性。許多非x86的體系結(jié)構(gòu)已經(jīng)使用先于操作系統(tǒng)環(huán)璄許多年了,它提供控制系統(tǒng)如何從一個(gè)命令行引導(dǎo)。當(dāng)LILO或其他x86引導(dǎo)裝載程序使用了一些命令特性的時(shí)候,GRUB已經(jīng)包含了許多這方面的特性。
·GRUB支持邏輯塊尋址(LBA)方式。LBA將用于尋找驅(qū)動(dòng)器上文件的地址轉(zhuǎn)換工作置于驅(qū)動(dòng)器的硬件中,它被用在許多IDE和所有的SCSI硬盤(pán)中。在使用LBA之前,硬盤(pán)驅(qū)動(dòng)器遇到一個(gè)1024柱面的限制,即BIOS不能找到在1024柱面后的文件(比如一個(gè)引導(dǎo)裝載程序或是內(nèi)核文件)。只要系統(tǒng)BIOS能支持LBA模式(大多數(shù)都支持),那么LBA就允許GRUB超越1024柱面的限制,引導(dǎo)操作系統(tǒng)。
·GRUB的配置能在每次系統(tǒng)引導(dǎo)時(shí)被讀取。這就避免了用戶每次改變引導(dǎo)選項(xiàng)時(shí)都要重寫(xiě)一次主引導(dǎo)記錄。大多數(shù)的引導(dǎo)裝載程序都不能很老道地讀取配置文件,并使用它們來(lái)設(shè)置引導(dǎo)選項(xiàng)。比如說(shuō),用戶必需改變一個(gè)LILO的配置文件,然后運(yùn)行一個(gè)命令將新的配置數(shù)據(jù)重寫(xiě)回系統(tǒng)的主引導(dǎo)記錄。這種方法比GRUB所采用 的方法更加危險(xiǎn),因?yàn)橐粋€(gè)錯(cuò)誤配置的主引導(dǎo)記錄將讓系統(tǒng)無(wú)法引導(dǎo)。在使用GRUB中,如果說(shuō)配置文件被錯(cuò)誤配置并且引導(dǎo),那它也僅僅簡(jiǎn)單地轉(zhuǎn)到一個(gè)默認(rèn)的命令行,允許用戶手工輸入命令來(lái)運(yùn)行操作系統(tǒng)。除開(kāi)更新系統(tǒng)引導(dǎo)的第一步、第二步、或是菜單配置文件的位置,主引導(dǎo)記錄是不會(huì)被觸及到的,而這種情況是很少發(fā)生的。
注意:
當(dāng)GRUB的配置文件發(fā)生改變時(shí),沒(méi)有必要重新啟動(dòng)GRUB。所有的改變都能被自動(dòng)地檢測(cè)到。如果GRUB被重新啟動(dòng),那么用戶將退回到命令行方式的GRUB外殼下。
安裝GRUB
如果在Red Hat Linux的安裝過(guò)程中,GRUB沒(méi)有被安裝,下面將說(shuō)明如何安裝它,并將它設(shè)為默認(rèn)的引導(dǎo)裝載程序。
注意:如果LILO已經(jīng)被安裝,并且是當(dāng)前的系統(tǒng)引導(dǎo)裝載程序,那并沒(méi)有必要為了使用GRUB而刪除它。GRUB一旦安裝后,將做為系統(tǒng)默認(rèn)的引導(dǎo)裝載程序。
首先,獲取最新可用的GRUB包。在Red Hat Linux安裝光盤(pán)上的GRUB包也可以使用。
其次,在一個(gè)外殼提示下,運(yùn)行命令/sbin/grub-install ,這里的 是GRUB將要被安裝的位置。比如說(shuō):/sbin/grub-install /dev/hda
最后,重新引導(dǎo)系統(tǒng)。GRUB圖形引導(dǎo)裝載菜單將出現(xiàn)。 二、GRUB的術(shù)語(yǔ)
在使用GRUB前,最重要的事情之一就是理解這個(gè)程序是如何引用設(shè)備的,如系統(tǒng)硬盤(pán)驅(qū)動(dòng)器、分區(qū)等。對(duì)于配置GRUB實(shí)現(xiàn)多操作系統(tǒng)的引導(dǎo),這方面的信息是很重要的。
設(shè)備名稱
系統(tǒng)的第一個(gè)硬盤(pán)驅(qū)動(dòng)器被GRUB稱為(hd0)。在它上面的第一個(gè)分區(qū)被稱為(hd0,0),第二個(gè)硬盤(pán)驅(qū)動(dòng)器上的第5個(gè)分區(qū)被稱為(hd1,4)。通常使用GRUB時(shí),文件系統(tǒng)習(xí)慣上采用下面的方式命名:
( , )
在設(shè)備命名中,圓括號(hào)和逗號(hào)是很重要的。 指出是一個(gè)硬盤(pán)(hd)還是一個(gè)軟盤(pán)(fd)被指定。
是依照系統(tǒng)BIOS而確定的設(shè)備號(hào),從0開(kāi)始。基本IDE硬盤(pán)被標(biāo)為0,第二IDE硬盤(pán)被標(biāo)為1。這個(gè)排序大體上等同于linux內(nèi)核用字母安排設(shè)備的順序,只是在hda中的a變成了0,hdb中的b變?yōu)榱?,依次類推。
注意:GRUB用于設(shè)備的命名系統(tǒng)是從0開(kāi)始,而不是1。這常常是GRUB新手們常犯的最普遍的錯(cuò)誤。
指在一塊硬盤(pán)上一個(gè)分區(qū)的編號(hào)。類似于 ,分區(qū)的編號(hào)也是從0開(kāi)始。雖然大多數(shù)的分區(qū)可以用數(shù)字指定,但是如果系統(tǒng)使用的是BSD分區(qū),那么它們還是用字母來(lái)指定,如a或c。
GRUB在命名設(shè)備和分區(qū)時(shí),使用下面的規(guī)則:
·系統(tǒng)使用IDE硬盤(pán)或SCSI硬盤(pán),都沒(méi)有關(guān)系。所有的硬盤(pán)都是用hd開(kāi)始。軟盤(pán)用fd開(kāi)頭。
·當(dāng)指定整個(gè)硬盤(pán),不考慮它的分區(qū)時(shí),簡(jiǎn)單地將逗號(hào)和分區(qū)編號(hào)取消即可。當(dāng)告訴GRUB配置一個(gè)特定硬盤(pán)的主引導(dǎo)扇區(qū)時(shí),這一點(diǎn)很重要。比如,(hd0)指定第一個(gè)設(shè)備,(hd3)指定第四個(gè)設(shè)備。
·如果一個(gè)系統(tǒng)有多個(gè)驅(qū)動(dòng)設(shè)備,知道由BIOS確定的驅(qū)動(dòng)器順序就很重要了。如果系統(tǒng)只有IDE或SCSI驅(qū)動(dòng)器,那是相當(dāng)簡(jiǎn)單的。但是如果有多個(gè)驅(qū)動(dòng)器混合時(shí),這就變得令人混亂了?! ?/p>
文件名稱
當(dāng)在GRUB中輸入包括文件的命令時(shí),比如在多操作系統(tǒng)中使用一個(gè)菜單列表,文件名必須直接在設(shè)備和分區(qū)后指定。一個(gè)絕對(duì)文件名的格式如下:
( , )/path/to/file
大多數(shù)的時(shí)候,用戶可以通過(guò)在分區(qū)上的目錄路徑后加上文件名來(lái)指定文件。這種方法是直接了當(dāng)?shù)摹?/p>
另外,我們也可以將不在文件系統(tǒng)中出現(xiàn)的文件指定給GRUB,比如在一個(gè)分區(qū)最初幾塊扇區(qū)中的鏈?zhǔn)揭龑?dǎo)裝載程序。為了指定這些文件,需要提供一個(gè)塊列表(blocklist),由它來(lái)一塊一塊地告訴GRUB文件在分區(qū)中的位置。當(dāng)一個(gè)文件是由幾個(gè)不同的塊組合在一起時(shí),需要有一個(gè)特殊的方式來(lái)寫(xiě)塊列表。每個(gè)文件片斷的位置由一個(gè)塊的偏移量以及從偏移點(diǎn)起始的塊數(shù)來(lái)描述,這些片斷以一個(gè)逗號(hào)分界(comma-delimited)的順序組織在一起。
考慮下面的塊列表:
0+50,100+25,200+1
上面這個(gè)塊列表告訴GRUB使用一個(gè)文件,這個(gè)文件起始于分區(qū)的第一塊,使用了第0塊到第49塊,第99塊到124塊,以及第199塊。
當(dāng)使用GRUB裝載諸如微軟Windows這樣采用鏈?zhǔn)窖b載方式的操作系統(tǒng)時(shí),知道如何寫(xiě)塊列表是相當(dāng)有用的。如果從第0塊開(kāi)始,那么可以省略塊的偏移量。作為一個(gè)例子,當(dāng)鏈?zhǔn)窖b載文件在第一硬盤(pán)的第一個(gè)分區(qū)時(shí),可以使用下面的命名:
(hd0,0)+1
下面給出一個(gè)帶類似塊列表名稱的chainloader命令。它是在設(shè)置正確的設(shè)備和分區(qū)作為根后,在GRUB命令行中給出的。
chainloader +1
GRUB的根文件系統(tǒng)
一些用戶常困惑于GRUB中根文件系統(tǒng)(root filesystem)這一術(shù)語(yǔ)的用法。GRUB的根文件系統(tǒng)與Linux的根文件系統(tǒng)是沒(méi)有關(guān)系的,這一點(diǎn)需要記住。
GRUB的根文件系統(tǒng)是用于一個(gè)特定設(shè)備的根分區(qū)。GRUB使用這個(gè)信息來(lái)掛入(mount)這個(gè)設(shè)備并從它上面載入文件。
在Red Hat Linux中,一旦GRUB載入它自己的包含Linux內(nèi)核的根分區(qū),那么kernel命令就可以將內(nèi)核文件的位置作為一個(gè)選項(xiàng)來(lái)執(zhí)行。一旦Linux內(nèi)核引導(dǎo),它就設(shè)定自己的根文件系統(tǒng),此時(shí)的根文件系統(tǒng)就是大多數(shù)人用來(lái)與Linux聯(lián)系的了。最初的GRUB根文件系統(tǒng)以及它的掛入都被去掉,它們僅存在于用來(lái)引導(dǎo)內(nèi)核文件。
關(guān)于根和內(nèi)核命令的更多信息,可以參考后面的命令部分。
三、GRUB的接口
GRUB主要有三個(gè)強(qiáng)大的接口,它們提供了不同級(jí)別的功能。每個(gè)接口都允許用戶引導(dǎo)操作系統(tǒng),甚至可以在處于GRUB環(huán)境下的接口之間移動(dòng)。
菜單接口
如果GRUB是由Red Hat Linux的安裝程序自動(dòng)配置的,那么它默認(rèn)的顯示接口是菜單接口。在系統(tǒng)第一次啟動(dòng)后,一個(gè)操作系統(tǒng)或內(nèi)核的菜單(事先已經(jīng)用它們各自的引導(dǎo)命令配置好)將一個(gè)按名稱排列的列表保存在這個(gè)接口中。使用箭頭鍵選擇一個(gè)非默認(rèn)選項(xiàng),然后按回車鍵來(lái)引導(dǎo)它。如果不是這樣,一個(gè)記時(shí)器可能已經(jīng)被設(shè)置,那么GRUB將啟動(dòng)裝載那個(gè)默認(rèn)的選項(xiàng)。
在菜單接口上,按[e]鍵,對(duì)高亮菜單項(xiàng)中的命令進(jìn)行編輯。按[c]鍵載入一個(gè)命令行接口。
菜單項(xiàng)目編輯器接口
在引導(dǎo)裝載菜單中按[e]鍵,就進(jìn)入了菜單項(xiàng)目編輯器。用于項(xiàng)目的GRUB命令就顯示在這里。在引導(dǎo)操作系統(tǒng)前,用戶可以更改這些命令,添加(加在當(dāng)前行后面,用[o]鍵;加在當(dāng)前行前,用[0]),編輯(用[e]鍵),刪除(用[d]鍵)。
在所有的改變都完成后,用[b]鍵來(lái)執(zhí)行這些命令,并引導(dǎo)操作系統(tǒng)。[Esc]鍵來(lái)放棄這些修改,將重新入標(biāo)準(zhǔn)的菜單接口。[c]鍵用來(lái)載入命令行接口。
命令行接口
命令行是GRUB最基本的接口,但它也是被授予了最大控制能力的接口。在命令行接口中,輸入任何相關(guān)的GRUB命令,再回車就可以執(zhí)行了。這個(gè)接口的功能有點(diǎn)類似于shell的功能,比如[Tab]鍵完成,前后文提示,輸入命令時(shí)的[Ctrl]鍵組合,如[Ctrl]-[a]移到行的開(kāi)頭,[Ctrl]-[e]移到行的結(jié)尾。另外,箭頭鍵,[Home],[End],[Delete]鍵與bash shell中一樣用法。
接口使用的順序
當(dāng)GRUB環(huán)境開(kāi)始載入第二步引導(dǎo)裝載程序時(shí),它尋找自己的配置文件。當(dāng)找到配置文件后,它使用這個(gè)配置文件建立一個(gè)要載入的操作系統(tǒng)的菜單列表, 然后顯示引導(dǎo)菜單接口。
如果配置文件沒(méi)有被找到,或者如果配置文件不能讀取,那么GRUB將載入命令行接口,以允許用戶手工輸入必要的命令來(lái)啟動(dòng)操作系統(tǒng)。
如果配置文件不是正確的,那么GRUB將顯示出錯(cuò)誤,并請(qǐng)求輸入。這點(diǎn)是很有幫助的,因?yàn)橛脩魧⒛軌蚩吹絾?wèn)題發(fā)生在文件中的什么地方,并修復(fù)它。按下任意鍵,重新載入菜單接口,根據(jù)GRUB報(bào)告的錯(cuò)誤,編輯菜單選項(xiàng)并糾正問(wèn)題。如果這個(gè)修正失敗了,那么錯(cuò)誤將被報(bào)告,且GRUB將再次開(kāi)始。
四、GRUB的命令
GRUB包含了許多不同的命令,它們可以在命令行接口中以交互的方式執(zhí)行。其中的一些命令能接在命令名后面的選項(xiàng),這些選項(xiàng)用空格隔開(kāi)。
下面的列表給出了最有用的一些命令:
·boot - 引導(dǎo)先前已經(jīng)被指定并載入的操作系統(tǒng)或鏈?zhǔn)窖b載程序。
·chainloader - 將指定的文件作為一個(gè)鏈?zhǔn)窖b載程序載入。為了獲取在一個(gè)指定分區(qū)第一扇區(qū)內(nèi)的文件,使用+1作為文件名。
·displaymem - 顯示當(dāng)前內(nèi)存的使用情況,這個(gè)信息是基于BIOS的。這個(gè)命令有助于確定系統(tǒng)在引導(dǎo)前有多少內(nèi)存。
·initrd - 使用戶能夠指定一個(gè)在引導(dǎo)時(shí)可用的初始RAM盤(pán)。當(dāng)內(nèi)核為了完全引導(dǎo)而需要某些模塊時(shí),這是必需的。
·install p - 安裝GRUB到系統(tǒng)的主引導(dǎo)記錄。這個(gè)命令允許系統(tǒng)重啟時(shí)出現(xiàn)GRUB接口。
警告:install命令將覆蓋主引導(dǎo)扇區(qū)中的其他信息。如果命令被執(zhí)行,那么除了GRUB信息之外的其他用于引導(dǎo)其他操作系統(tǒng)的信息都將丟失。在執(zhí)行這條命令前,確定你對(duì)它有正確的了解。
這條命令可以用幾種不同的方式進(jìn)行配置。然而,它都要求指定 。 表示一個(gè)設(shè)備,分區(qū)和文件,在那里可以找到第一個(gè)引導(dǎo)裝載程序的映象,比如(hd0,0)/grub/stage1。另外, 也指定了第一步引導(dǎo)裝載程序應(yīng)該被安裝的硬盤(pán),如(hd0)。
選項(xiàng)告訴第一步引導(dǎo)裝載程序第二步引導(dǎo)裝載程序位于什么地方,例如(hd0,0)/grub/stage2。p選項(xiàng)告訴install命令菜單配置文件被指定在 部分,比如說(shuō)(hd0,0)/grub/grub.conf。
·kernel - 當(dāng)使用直接載入方式引導(dǎo)操作系統(tǒng)時(shí),kernel命令指定內(nèi)核從GRUB的根文件系統(tǒng)中載入。options選項(xiàng)是跟在kernel命令后面,在內(nèi)核載入時(shí)傳給內(nèi)核。
在Red Hat Linux中,一個(gè)kernel命令的例子看起來(lái)象下面的形式:
kernel /vmlinuz root=/dev/hda5
上面這行表明了vmlinuz文件是從GRUB的根文件系統(tǒng)載入的,如(hd0,0)。同時(shí),一個(gè)選項(xiàng)也被傳給了內(nèi)核。它指出當(dāng)Linux內(nèi)核載入時(shí),內(nèi)核的根文件系統(tǒng)應(yīng)該是位于hda5,第一個(gè)IDE硬盤(pán)的第五個(gè)分區(qū)。如果有必要的話,多個(gè)選項(xiàng)可以被放在這個(gè)選項(xiàng)后面。
·root - 將GRUB的根分區(qū)設(shè)置成特定的設(shè)備和分區(qū),比如說(shuō)(hd0,0)。并掛入這個(gè)分區(qū),這樣文件可以被讀取。
·rootnoverify - 做root命令同樣的事情,只是不掛入分區(qū)。
除上面所述外,還有更多的命令可用。輸入info grub,得到一個(gè)所有命令的完全列表。
五、GRUB的菜單配置文件
配置文件在GRUB菜單接口中,創(chuàng)建用于引導(dǎo)操作系統(tǒng)的列表。配置文件可以允許用戶選擇執(zhí)行事先設(shè)置好的一組命令。這些命令既包括前面給出的命令,也包括一些只用于配置文件的命令。
配置文件的專用命令
下面這些命令只用于GRUB的菜單配置文件:
·color - 設(shè)定在菜單中使用的顏色,一種是作為前景色,一種作為背景色??梢院?jiǎn)單地使用顏色名稱,如red/black。比如:
color red/black green/blue
·default - 默認(rèn)項(xiàng)目的標(biāo)題名稱。如果菜單接口超時(shí),那它將被載入。
·fallback - 當(dāng)這個(gè)命令被使用時(shí),如果第一次嘗試失敗,那么這個(gè)項(xiàng)目的標(biāo)題名稱將被試用。
·hiddenmenu - 這個(gè)命令被使用時(shí),它不顯示GRUB菜單接口,在超時(shí)時(shí)間過(guò)期后載入默認(rèn)項(xiàng)。用戶通過(guò)按[Esc]鍵,可以看到標(biāo)準(zhǔn)的GRUB菜單。
·password - 這個(gè)命令被使用時(shí),它可以防止不知道口令的用戶編輯菜單的項(xiàng)目。
作為附加選項(xiàng),可以在 后面指定一個(gè)后備的菜單配置文件。因此,如果口令被知道,GRUB將重新啟動(dòng)第二步的引導(dǎo)裝載程序,并使用這個(gè)后備的配置文件來(lái)建立菜單。如果這個(gè)后備文件不在命令中指出,那么知道口令的用戶能夠編輯當(dāng)前的配置文件。
·timeout - 這個(gè)命令設(shè)定了在GRUB載入由default命令指定的項(xiàng)目前的時(shí)間間隔,以秒為單位。
·splashimage - 它指定在GRUB引導(dǎo)時(shí)所使用的屏幕圖像的位置。
·title - 設(shè)定用來(lái)裝載一個(gè)操作系統(tǒng)的一組特定命令的標(biāo)題。
字符#用來(lái)在菜單配置文件放置注釋。
配置文件的結(jié)構(gòu)
設(shè)置GRUB菜單接口全局參數(shù)的命令被放在文件的頂部,接下來(lái)的是用于各個(gè)操作系統(tǒng)引導(dǎo)的不同項(xiàng)目。
一個(gè)非?;镜挠糜谝龑?dǎo)Red Hat Linux或Microsoft Windows 2000的GRUB菜單配置文件可能如下所示:
default=linux
timeout=10
color=green/black light-gray/blue
# section to load linux
title linux
root (hd0,1)
kernel /vmlinuz root=/dev/hda5
boot
# section to load Windows 2000
title windows
rootnoverify (hd0,0)
chainloader +1
這個(gè)文件告訴GRUB建立一個(gè)以Red Hat Linux為默認(rèn)操作系統(tǒng)的菜單,設(shè)定10秒后自動(dòng)引導(dǎo)。這里給出了2個(gè)部分,每個(gè)部分對(duì)應(yīng)于一個(gè)操作系統(tǒng)項(xiàng)目,每個(gè)部分都包含了指向操作系統(tǒng)硬盤(pán)分區(qū)表的命令。
在下面的附加資料中,將列出如何使用GRUB引導(dǎo)多種操作系統(tǒng)的參考資料。
六、GRUB的附加資料
這個(gè)部分只是對(duì)GRUB以及它的許多選項(xiàng)作一個(gè)介紹。如果想要更多的了解GRUB是如何工作的、如何在其他任務(wù)中配置它來(lái)引導(dǎo)非Linux操作系統(tǒng),可以參考下面列出的一些資料。
安裝文檔
·/usr/share/doc/grub-0.90 - /usr/share/doc/grub-0.90是GRUB文檔在系統(tǒng)上的目錄。
·在一個(gè)shell提示下,輸入man grub命令可以查看GRUB的手冊(cè),它包括一個(gè)裝載GRUB shell時(shí)所使用的選項(xiàng)的列表。
·在一個(gè)shell提示下,使用info grub命令可以得到GRUB的info頁(yè),它包括一個(gè)指南,一個(gè)用戶參考手冊(cè),一個(gè)程序員參考手冊(cè),以及一個(gè)關(guān)于GRUB和它自己用法的FAQ文檔。
有用的一些站點(diǎn)
·http://www.gnu.org/software/grub - GNU GRUB 項(xiàng)目的主頁(yè)。這個(gè)站點(diǎn)包含了GRUB發(fā)展?fàn)顟B(tài)的信息以及一個(gè)FAQ。
·http://www.uruk.org/orig-grub - 在這個(gè)項(xiàng)目被脫管到自由軟件基金會(huì)進(jìn)一步發(fā)展前的最初的GRUB文檔。
·http://www.redhat.com/mirrors/LDP/HOWTO/mini/Multiboot-with-GRUB.html - 研究GRUB各種不同的用法,包括引導(dǎo)非Linux操作系統(tǒng)。
·http://www.linuxgazette.com/issue64/kohli.html - 一篇介紹性的文章,討論在一個(gè)系統(tǒng)上GRUB配置,包括GRUB命令行選項(xiàng)的概述。
聯(lián)系客服