天天看點

在red hat Linux下配置GRUB實作多系統引導

轉自:http://wwwggm.i.sohu.com/blog/view/59159727.htm

我在Linux下的GRUB配置如下(并是我今天剛剛試驗成功的)稍後會稍加解釋:

# grub.conf generated by anaconda

#

# Note that you do not have to rerun grub after making changes to this file

# NOTICE: You do not have a /boot partition. This means that

# all kernel and initrd paths are relative to /, eg.

# root (hd0,0)

# kernel /boot/vmlinuz-version ro root=/dev/hda1

# initrd /boot/initrd-version.img

#boot=/dev/hda

default=0

timeout=-1

splashp_w_picpath=(hd0,2)/boot/grub/splash.xpm.gz

title Red Hat Linux

root (hd0,2)

kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/

initrd /boot/initrd-2.4.18-14.img

title FreeBSD 6.0

rootnoverify (hd0,1)

makeactive

chainloader +1

title Microsoft Windows XP

root (hd0,0)

我在這裡的系統安裝順序是Windows XP ==〉 FreeBSD ==〉 Red Hat Linux ,而且三個系統同時安裝在了同一塊硬碟上,如果你想将不同的作業系統分散安裝在不同的多塊硬碟上的話,就需要對如上配置稍加改動即可(見最後)。

其實系統安裝順序在這裡是無所謂先後的(因為在後期這些都是可以改變的),關鍵是你想讓那個作業系統的引導程式占據磁盤的MBR,Master Boot Recorder,然後來配置它并實作多系統引導。值得注意的是不同的作業系統,在配置多系統引導時是所采取的配置方法是有所不同的。我在這裡選擇了由Linux來完成這項工作(因為我認為這樣比較簡單,嘿嘿,其實是我不會其他方法,555555……Good Good Studying)。

接下來讓我們來看一下我是如何配置Linux下的/boot/grub/grub.conf檔案的好了:

首先,如果你也是按照我的系統安裝順序,在你的機器上也安裝了這些系統的話,起初(也就是在剛剛安裝完這三個系統後)在啟動機器時就會由Linux的MBR程式來啟動一個多引導菜單來共您選擇要進入的作業系統。而這時你會發現,菜單中已經存在了我們先前安裝的Windows XP(這其實就省去了我們許多麻煩)和Rad Hat Linux,可是我們的FreeBSD卻不見了(同樣,如果你最後安裝的是FreeBSD,Red Hat Linux也不會在選擇菜單中出現,這就需要到FreeBSD系統下去配置了,該問題本人還沒有解決,見笑了),這是我們就需要到Linux下打開/boot/grub/grub.conf檔案作少許配置就OK了。

然後,我們先來了解一下有關/boot/grub/grub.conf檔案中的配置選項:

--> default=0

預設的作業系統就是由default控制的。default後加一個數字n,表明是下面由title選項分别指出的第 n+1個作業系統。需要注意的是,GRUB中,計數是從0開始的,第一個硬碟是hd0,第一 個軟驅是fd0,等等。是以,default 0 表示預設的作業系統在這兒是 Red Hat Linux 如果你修改成1就是FreeBSD作為預設啟動作業系統(這一點應該很明确了)。

--> timeout=-1

timeout表示預設等待的時間,這兒是-1秒鐘,表示無限期地等待使用者選擇。如果改成一個大于0的正整數n的話,他就表示在秒内使用者還沒有作出選 擇的話,系統将自動選擇預設的作業系統;當然你可以改成任何你樂意的時間。

--> splashp_w_picpath=(hd0,2)/boot/grub/splash.xpm.gz

指定開機畫面檔案splash.xpm.gz的位置,也可以splash /boot/logo/800x600x8.img。

--> title Red Hat Linux

title選項用于指定在選擇菜單中顯示的對應作業系統的标簽,可以由你任意指定,隻要你願意可以給它任何不相幹的名字。

--> root (hd0,2)

這裡用root選項來指定你的GRUB根分區(也就是Linux作業系統的/boot所在分區),值得注意的是這裡的root與Linux作業系統中的root不是一碼事。

--> kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/

這裡使用kernel選項來指定了Linux核心的位置,和Linux根分區的位置(也就是‘/’分區),ro就是readonly的簡寫拉。

--> initrd /boot/initrd-2.4.18-14.img

initrd指定了Linux初始化影像檔案。

--> rootnoverify (hd0,1)

和root類似,但是不mount該裝置(注意這裡不要安裝,也就是不要使用root替換,有時會有問題)。這個指令用在當GRUB不能識别某個硬碟檔案系統,但是仍然必須指定根裝置是使用,尤其對這裡的Windows和FreeBSD有用。

--> makeactive

激活目前分區,這條指令的對象隻能是PC上的主分區,不能是擴充分區。這裡XP和FreeBSD這符合這一規則。

--> chainloader +1

指定從目前分區讀出第一個扇區進行引導。這裡的用法在 Windows XP 和 FreeBSD 的來看觀念都是一樣的了。

至此,我們的GRUB配置已完成,重新啟動一下機器,看下結果把,Good Luck for U!!

--> 當你有兩塊硬碟,一個無法從第二塊硬碟啟動的作業系統,例如你把Windows XP安裝到了你的第二塊硬碟上,就可以使用map指令.你能夠将 hd0 映射為 hd1 ,将 hd1 映射為 hd0。換句話說,你可以虛拟的交換兩個硬碟而啟動所需要的作業系統 。也許你需要在你的/boot/grub/grub.conf配置檔案中作如下改動 :

map (hd0) (hd1) <== 隻是做了如下兩行的改動,很簡單的吧,快去試試看吧,再次Good Luck for U!!!!

map (hd1) (hd0)

root (hd1,0)

chainloader (hd1,0)+1

繼續閱讀