(一)安裝linux時(shí)安裝grub.

??? 安裝redhat linux時(shí)會(huì)提示安裝引導(dǎo)程序,如果選擇grub為引導(dǎo)程序,建議把grub安裝到硬盤的引導(dǎo)扇區(qū)MBR.grub 還可以引導(dǎo)其它操作系統(tǒng),如 FreeBSD、NetBSD、OpenBSD、GNU HURD 和 DOS,以及 Windows 95、98、NT、2000、XP。

??? (二)grub的配置

??? 一旦選擇了grub為引導(dǎo)程序,下面我們來(lái)了解一下它的配置.

??? /boot/grub/grub.conf是grub產(chǎn)生一個(gè)引導(dǎo)選擇菜單以及設(shè)置一些選項(xiàng).下面是我的grub.conf:

#==========例子開始==========

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,6)
# kernel /vmlinuz-version ro root=/dev/hda10
# initrd /initrd-version.img
#boot=/dev/hda
default=0
timeout=10
splashimage=(hd0,6)/grub/splash.xpm.gz
# --> Redhat Linux 8.0 <--
title Red Hat Linux (2.4.18-14)
root (hd0,6)
kernel /vmlinuz-2.4.18-14 ro root=LABEL=/
initrd /initrd-2.4.18-14.img
# --> Microsoft Windows XP <--
title Microsoft Windows XP
rootnoverify (hd0,0)
chainloader +1

#===========例子結(jié)束==========

??? 配置選項(xiàng)解釋:

??? 以"#"開頭的是注釋行.

??? 我這里有兩個(gè)操作系統(tǒng),分別是Red Hat Linux和Microsoft Windows XP.其中 timeout標(biāo)識(shí)默認(rèn)等待時(shí)間,我這設(shè)置為10秒,超過(guò)10秒用戶還沒(méi)作出選擇的話,將自動(dòng)選擇默認(rèn)的操作系統(tǒng)(我這里默認(rèn)的是Redhat linux 8.0)

??? 默認(rèn)的操作系統(tǒng)是由default一項(xiàng)來(lái)控制的,default后的數(shù)字表明第幾個(gè)是默認(rèn)的,這里0表示第一個(gè),1表示第二個(gè).所以如果你想修改默認(rèn)的操作系統(tǒng),就修改default后的數(shù)字.

??? title一項(xiàng)是設(shè)置操作系統(tǒng)的名稱,grub不支持中文(有點(diǎn)遺憾).

??? splashimage一項(xiàng)指定grub界面的背景圖片,有興趣的朋友可以修改grub的背景哦!

??? root (hd0,6)標(biāo)識(shí)從第一個(gè)硬盤,第7個(gè)分區(qū)來(lái)啟動(dòng)搜索引導(dǎo)內(nèi)核.注意這兒的root與linux的root分區(qū)不同,此root非彼root也! grub的硬盤標(biāo)識(shí)方法與linux的有點(diǎn)不同.在linux中第一個(gè)主分區(qū)為hda1,第二個(gè)主分區(qū)為hda1,第一個(gè)邏輯分區(qū)為hda5,而在 grub中是以(hdx,y)來(lái)標(biāo)識(shí)的,如第一個(gè)主分區(qū)為(hd0,0)第一個(gè)邏輯分區(qū)為(hd0,1)依此類推.所以這兒root后面的是你的 /boot所在分區(qū)標(biāo)識(shí).

??? 知道了內(nèi)核在哪兒,還要具體指出哪個(gè)文件是內(nèi)核文件,這就是kernel的工作。?

??? kernel /vmlinuz-2.2.18-14 ro root=LABEL=/.說(shuō)明/boot/vmlinuz-2.2.18-14 就是要載入的內(nèi)核。后面的都是傳遞給內(nèi)核的參數(shù)。ro是以readonly的意思。注意我這里內(nèi)核前面的路徑是"/",因?yàn)槲业腷oot單獨(dú)分了一個(gè)區(qū), 如果你沒(méi)有為boot單獨(dú)分區(qū),那么內(nèi)核前面的路徑就是"/boot".?

??? initrd用來(lái)初始的linux image,并設(shè)置相應(yīng)的參數(shù)

??? 再來(lái)看一看windows的定義段吧。?

??? 這里,我添加了一項(xiàng)來(lái)引導(dǎo) WindowsXP。要完成此操作,GRUB 使用了"鏈?zhǔn)窖b入器"(chainloader)。鏈?zhǔn)窖b入器從分區(qū) (hd0,0) 的引導(dǎo)記錄中裝入 winXP 自己的引導(dǎo)裝入器,然后引導(dǎo)它。這就是這種技術(shù)叫做鏈?zhǔn)窖b入的原因 -- 它創(chuàng)建了一個(gè)從引導(dǎo)裝入器到另一個(gè)的鏈。這種鏈?zhǔn)窖b入技術(shù)可以用于引導(dǎo)任何版本的 DOS 或 Windows。如果你在計(jì)算機(jī)中裝有win98,winme,win2k,winxp的話,chainloader會(huì)把引導(dǎo)權(quán)交與win的 NTLoader來(lái)引導(dǎo).

? (三)Grub啟動(dòng)盤的制作

??? 要制作引導(dǎo)盤,需執(zhí)行一些簡(jiǎn)單的步驟。首先,在新的軟盤上創(chuàng)建 ext2 文件系統(tǒng)。然后,將其安裝,并將一些 GRUB 文件復(fù)制到該文件系統(tǒng),最后運(yùn)行 "grub" 程序,它將負(fù)責(zé)設(shè)置軟盤的引導(dǎo)扇區(qū)。

??? 將一張空盤插入 1.44MB 軟驅(qū),輸入:?

??? # mke2fs /dev/fd0?

??? 創(chuàng)建了 ext2 文件系統(tǒng)后,需要安裝該文件系統(tǒng):?

??? # mount /dev/fd0 /mnt/floppy?

??? 現(xiàn)在,需要?jiǎng)?chuàng)建一些目錄,并將一些關(guān)鍵文件(原先安裝 GRUB 時(shí)已安裝了這些文件)復(fù)制到軟盤:?

??? # mkdir /mnt/floppy/boot?
??? # mkdir /mnt/floppy/boot/grub?
??? # cp /boot/grub/stage1 /mnt/floppy/boot/grub?
??? # cp /boot/grub/stage2 /mnt/floppy/boot/grub?

??? 再有一個(gè)步驟,就能得到可用的引導(dǎo)盤。?

??? 在linux bash中,從 root 用戶運(yùn)行"grub",該程序非常有趣并值得注意,因?yàn)樗鼘?shí)際上是 GRUB 引導(dǎo)裝入器的半功能性版本。盡管 Linux 已經(jīng)啟動(dòng)并正在運(yùn)行,您仍可以運(yùn)行 GRUB 并執(zhí)行某些任務(wù),而且其界面與使用 GRUB 引導(dǎo)盤或?qū)? GRUB 安裝到硬盤 MBR 時(shí)看到的界面(即GRUB控制臺(tái))完全相同。
在 grub> 提示符處,輸入:

grub> root (fd0)
grub> setup (fd0)
grub> quit?

??? 現(xiàn)在,引導(dǎo)盤完成了。?

??? (四).恢復(fù)被windows破壞的grub.

??? 如果你用grub來(lái)引導(dǎo)linux和windows,當(dāng)windows出毛病重新安裝后,會(huì)破壞MBR中的grub,這時(shí)需要恢復(fù)

grub.

??? 1.把linux安裝光盤的第一張放到光驅(qū),然后重新啟動(dòng)機(jī)器,在BOIS中把系統(tǒng)用光驅(qū)來(lái)引導(dǎo)。?

??? 2.等安裝界面出來(lái)后,按[F4]鍵,也就是linux rescue模式。?

??? 3.一系列鍵盤以及幾項(xiàng)簡(jiǎn)單的配制,過(guò)后就[繼續(xù)]了。。。這個(gè)過(guò)程,我不說(shuō)了,比較簡(jiǎn)單。?

??? 4.然后會(huì)出現(xiàn)這樣的提示符:

sh#?

??? 5.我們就可以操作GRUB了.輸入grub:

sh#grub?

??? 會(huì)出現(xiàn)這樣的提示符:

grub>?

??? 我們就可以在這樣的字符后面,輸入:

grub>root (hdX,Y)
grub>setup (hd0)?

??? 如果成功會(huì)有一個(gè)successful......?

??? 這里的X,如果是一個(gè)盤,就是0,如果你所安裝的linux的根分區(qū)在第二個(gè)硬盤上,那X就是1了;Y,就是裝有l(wèi)inux系統(tǒng)所在的根分區(qū)。 setup (hd0)就是把GRUB寫到硬盤的MBR上。?

?(五).用NTLoader來(lái)引導(dǎo)linux.

??? 如果你在安裝linux時(shí)沒(méi)有選擇安裝grub,不必著急,現(xiàn)在我們來(lái)看看如何在安裝linux后安裝grub.并用windows的NTLoader來(lái)引導(dǎo)linux.

??? 1. 安裝grub?

??? 我用的grub是Redhat8.0帶的grub安裝包: grub-0.92-7.rpm?

??? 安裝: rpm -ivh grub-0.92-7.rpm?

??? 其他安裝方式也一樣,只要你安裝上grub就行了.RH8缺省用的grub, 1,2步驟可以省了.?

??? 2. 建立grub的環(huán)境

cp /usr/share/grub/i386-pc/* /boot/grub

3. 生成grub的配置文件/boot/grub/menu.conf?

??? 按照上面所講的grub.conf來(lái)生成一個(gè)配置文件.

??? 注意了, 這里我的linux在/dev/hda4,所以menu.conf那些分區(qū)位置為(hd0,3),你的可能不一樣了,不能完全照著"畫瓢"噢! 下面第3步install的中的分區(qū)位置也應(yīng)該和你的系統(tǒng)一致.?

??? 3. 安裝grub至Linux分區(qū)boot,將grub的stage1安裝到/dev/hda4的boot扇區(qū)(hd0,3). 過(guò)程如下:

/sbin/grub (運(yùn)行g(shù)rub)
grub> install (hd0,3)/boot/grub/stage1 d (hd0,3) (hd0,3)/boot/grub/stage2 p (hd0,3)/boot/grub/menu.conf

(注意,上面"grub>"為grub的提示符,其后內(nèi)容寫在一行上.)?

??? 4. 取得grub的boot信息?

??? 過(guò)程如下:
dd if=/dev/hda4 of=/grub.lnx bs=512 count=1?

??? 這樣得到grub的引導(dǎo)信息,只要用NT Loader來(lái)加載它就行了.?

??? 5. 將上面得到的grub.lnx弄到Windows的C盤根目錄下.可以先把grub.lnx弄得軟盤上,然后啟動(dòng)windows,拷貝到C:; 情況允許也可以直接在Linux下拷貝到C:了. 我的C盤(即設(shè)備/dev/hda1)為FAT32, 可以直接從Linux下弄過(guò)去了. 如下:

mount -t vfat /dev/hda1 /mnt/c
cp /grub.lnx /mnt/c
umount /mnt/c?

??? 6. 修改NT Loader的boot.ini?

??? 在其中加入一行: C:grub.lnx="Redhat Linux - GRUB"?

??? 加入后boot.ini的內(nèi)容如下:

[boot loader]
timeout=15
default=C:oot.lnx
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Microsoft Windows XP Professional" /fastdetect

[VGA mode]" /basevideo /sos
C:grub.lnx="Redhat Linux - GRUB"?

??? OK. 可以用NT Loader加載Linux了, 其實(shí)上面過(guò)程基本上和用NT Loader加載LILO一樣.其基本 思想 就是用NT Loader來(lái)加載LILO或grub的引導(dǎo)區(qū)(grub.lnx), 其中的關(guān)鍵就是LILO或grub的引導(dǎo)區(qū)的獲取.

??? (六)活用grub的交互功能

??? grub具有強(qiáng)大的交互功能.學(xué)會(huì)了將會(huì)使你受益非淺!

??? 1.grub沒(méi)有顯示菜單怎么辦?

??? 當(dāng)開機(jī)后進(jìn)入grub界面但沒(méi)了菜單,只剩下一個(gè)grub>提示符,怎么啟動(dòng)呢?別急,看下面:

grub>cat (hd0,6)/boot/grub/grub.conf (為了看參數(shù))
grub>root (hd0,6)
grub>kernel (hd0,6)/vmlinuz-2.4.18-14 ro root=LABEL=/
grub>initrd (hd0,6)/initrd-2.4.18-14.img
grub>boot

??? OK!啟動(dòng)了吧!以上有些數(shù)字要根據(jù)你的實(shí)際情況更改.

??? 以上這個(gè)方法也可以用于測(cè)試新編譯的內(nèi)核.

??? 2.進(jìn)入單用戶模式.

??? 有時(shí)不小心把root用戶密碼忘了,只能進(jìn)入單用戶模式來(lái)重新設(shè)置root密碼.方法如下:

??? 開機(jī)進(jìn)入grub界面,按C進(jìn)入命令行模式,然后按照上面的方法進(jìn)行,只是在第三步要在后面加入single參數(shù).