- 論壇徽章:
- 0
|
(一)安裝
Linux
時安裝grub
安裝redhat linux時會提示安裝引導程序,如果選擇grub為引導程序,建議把grub安裝到硬盤
的
引導扇區(qū)MBR.grub 還可以引導其它
操作
系統(tǒng)
,如 FreeBSD、NetBSD、OpenBSD、GNU HURD 和
Dos
,以及
Windows
95、98、NT、2000、XP。
(二)grub
的
配置
一旦選擇了grub為引導程序,下面我們來了解一下它
的
配置。/boot/grub/grub.conf是grub產(chǎn)生一個引導選擇菜單以及設置一些選項。下面是我
的
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 Microsoft
Windows XP
配置選項解釋:
以"#"開頭
的
是注釋行。我這里有兩個
操作
系統(tǒng)
,分別是Red Hat Linux和Microsoft Windows XP。其中,timeout標識默認等待時間,我這設置為10秒,超過10秒用戶還沒作出選擇
的
話,將自動選擇默認
的
操作
系統(tǒng)
(我這里默認
的
是Redhat linux 8.0)
默認
的
操作
系統(tǒng)
是由default一項來控制
的
,default后
的
數(shù)字表明第幾個是默認
的
,這里0表示第一個,1表示第二個。
所以如果你想修改默認
的
操作
系統(tǒng)
,就修改default后
的
數(shù)字。title一項是設置
操作
系統(tǒng)
的
名稱,grub不支持中文(有點遺憾)。splashimage一項指定grub界面
的
背景圖片,有興趣
的
朋友可以修改grub
的
背景。
root (hd0,6)標識從第一個硬盤,第7個分區(qū)來啟動搜索引導內(nèi)核。注意這兒
的
root與linux
的
root分區(qū)不同,此root非彼root也!grub
的
硬盤標識方法與linux
的
有點不同。在linux中第一個主分區(qū)為hda1,第二個主分區(qū)為hda1,第一個邏輯分區(qū)為hda5,而在grub中是以(hdx,y)來標識
的
,如第一個主分區(qū)為(hd0,0)第一個邏輯分區(qū)為(hd0,1)依此類推。
所以這兒root后面
的
是你
的
/boot所在分區(qū)標識。知道了內(nèi)核在哪兒,還要具體指出哪個
文件
是內(nèi)核
文件
,這就是ke
rnel
的
工作。kernel /vmlinuz-2.2.18-14 ro
root=LABEL=/。說明/boot/vmlinuz-2.2.18-14就是要載入
的
內(nèi)核。后面
的
都是傳遞給內(nèi)核
的
參數(shù)。
ro是以readonly
的
意思。注意我這里內(nèi)核前面
的
路徑是"/",因為我
的
boot單獨分了一個區(qū),如果你沒有為boot單獨分區(qū),那么內(nèi)核前面
的
路徑就是"/boot"。initrd用來初始
的
linux image,并設置相應
的
參數(shù)。
再來看一看windows
的
定義段吧。這里,我添加了一項來引導
WindowsXP
。要完成此
操作
,GRUB使用了"鏈式裝入器"(chainloader)。鏈式裝入器從分區(qū) (hd0,0)
的
引導記錄中裝入 winXP 自己
的
引導裝入器,然后引導它。這就是這種技術叫做鏈式裝入
的
原因 -- 它創(chuàng)建了一個從引導裝入器到另一個
的
鏈。
這種鏈式裝入技術可以用于引導任何版本
的
DOS 或 Windows。如果你在計算機中裝有win98,winme,win2k,winxp
的
話,chainloader會把引導權交與win
的
NTLoader來引導。
(三)Grub啟動盤
的
制作
要制作引導盤,需執(zhí)行一些簡單
的
步驟。首先,在新
的
軟盤上創(chuàng)建 ext2
文件
系統(tǒng)
。然后,將其安裝,并將一些 GRUB
文件
復制到該
文件
系統(tǒng)
,最后運行 "grub" 程序,它將負責設置軟盤
的
引導扇區(qū)。
將一張空盤插入 1.44MB 軟驅(qū),輸入:
# mke2fs /dev/fd0 創(chuàng)建了 ext2
文件
系統(tǒng)
后,需要安裝該
文件
系統(tǒng)
: # mount /dev/fd0 /mnt/floppy 現(xiàn)在,需要創(chuàng)建一些目錄,并將一些關鍵
文件
(原先安裝 GRUB 時已安裝了這些
文件
)復制到軟盤: # 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
再有一個步驟,就能得到可用
的
引導盤。
在linux bash中,從root用戶運行"grub",該程序非常有趣并值得注意,因為它實際上是GRUB引導裝入器
的
半功能性版本。盡管 Linux 已經(jīng)啟動并正在運行,您仍可以運行 GRUB 并執(zhí)行某些任務,而且其界面與使用 GRUB 引導盤或?qū)?GRUB 安裝到硬盤 MBR 時看到
的
界面(即GRUB控制臺)完全相同。在 grub> 提示符處,輸入:
grub> root (fd0) grub> setup (fd0) grub> quit
現(xiàn)在,引導盤完成了。
(四)恢復被
Windows
破壞
的
grub
如果你用grub來引導
Linux
和windows,當windows出毛病重新安裝后,會破壞MBR中
的
grub,這時需要恢復grub。
1.把linux安裝
光盤
的
第一張放到光驅(qū),然后重新啟動機器,在BOIS中把
系統(tǒng)
用光驅(qū)來引導。
2.等安裝界面出來后,按F4鍵,也就是linux rescue模式。
3.一系列鍵盤以及幾項簡單
的
配制,過后就“繼續(xù)”了這個過程,這里不說了,比較簡單。
4.然后會出現(xiàn)這樣
的
提示符:
sh#
5.我們就可以
操作
GRUB了。輸入grub:
sh#grub
會出現(xiàn)這樣
的
提示符:
grub>
我們就可以在這樣
的
字符后面,輸入:
grub>root (hdX,Y) grub>setup (hd0)
如果成功會有一個successful......
這里
的
X,如果是一個盤,就是0,如果你所安裝
的
linux
的
根分區(qū)在第二個硬盤上,那X就是1了;Y,就是裝有l(wèi)inux
系統(tǒng)
所在
的
根分區(qū)。 setup (hd0)就是把GRUB寫到硬盤
的
MBR上。
(五)用NTLoader來引導linux
如果你在安裝linux時沒有選擇安裝grub,不必著急,現(xiàn)在我們來看看如何在安裝linux后安裝grub。并用windows
的
NTLoader來引導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來生成一個配置
文件
。
注意了, 這里我
的
linux在/dev/hda4,所以menu.conf那些分區(qū)位置為(hd0,3),
你
的
可能不一樣了,不能完全照著"畫瓢"噢! 下面第3步install
的
中
的
分區(qū)位置也應該和你
的
系統(tǒng)
一致。
安裝grub至Linux分區(qū)boot
將grub
的
stage1安裝到/dev/hda4
的
boot扇區(qū)(hd0,3)。 過程如下:
/sbin/grub (運行grub) 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信息
過程如下:
dd if=/dev/hda4 of=/grub.lnx bs=512 count=1
這樣得到grub
的
引導信息,只要用NT Loader來加載它就行了。
5. 將上面得到
的
grub.lnx弄到Windows
的
C盤根目錄下,可以先把grub.lnx弄得軟盤上,然后啟動windows,拷貝到C:\; 情況允許也可以直接在Linux下拷貝到C:了。 我
的
C盤(即設備/dev/hda1)為FAT32, 可以直接從Linux下弄過去了。 如下:
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:\boot.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"
可以用NT Loader加載Linux了, 其實上面過程基本上和用NT Loader加載LILO一樣。其基本思想就是用NT Loader來加載LILO或grub
的
引導區(qū)(grub.lnx), 其中
的
關鍵就是LILO或grub
的
引導區(qū)
的
獲取。
(六)活用grub
的
交互功能
grub具有強大
的
交互功能。學會了將會使你受益非淺!
1.grub沒有顯示菜單怎么辦?
當開機后進入grub界面但沒了菜單,只剩下一個grub>提示符,怎么啟動呢?別急,看下面:
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
啟動了吧!以上有些數(shù)字要根據(jù)你
的
實際情況更改。以上這個方法也可以用于測試新編譯
的
內(nèi)核。
2.進入單用戶模式。
有時不小心把root用戶密碼忘了,只能進入單用戶模式來重新設置root密碼。方法如下:開機進入grub界面,按C進入命令行模式,然后按照上面
的
方法進行,只是在第三步要在后面加入single參數(shù)。
轉自:http://blog.chinaunix.net/u1/46348/showart_396519.html
本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/28585/showart_404328.html |
|