Fedora 8 Linux下GRUB配置檔案詳細解析
首先提示:
因為要修改啟動配置檔案,所以在各位動手之前先做個/boot/grub/grub.conf的備份,有備無患。
和許多其他linux發行版一樣,Fedora使用Grub作為32位和64位X86系統的啟動載入器(bootloader)。
grub的配置檔案主要是/boot/grub/grub.conf,而/boot/grub/menu.list是這個檔案的軟連線(soft link)。該配置檔案樣式如下。
# 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 (hd1,0)
# kernel /vmlinuz-version ro root=/dev/sda7
# initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.23.1-42.fc8)
root (hd0,0)
kernel /vmlinuz-2.6.23.1-42.fc8 ro root=LABEL=/
initrd /initrd-2.6.23.1-42.fc8.img
title other
rootnoverify (hd0,0)
chainloader +1
主要分為三個部分,開始的註釋(#開頭)不算,依次是通用的選項,Fedora 8的啟動選項和Windows系統的啟動選項。
這種情況下預設的是啟動Fedora,在title other 指的就是你的XP系統。
問:如果要改成是預設為XP啟動如何做?
將:
///////////////////////////////////////////////////////
hiddenmenu
title Fedora (2.6.23.1-42.fc8)
root (hd0,0)
kernel /vmlinuz-2.6.23.1-42.fc8 ro root=LABEL=/
initrd /initrd-2.6.23.1-42.fc8.img
title other
rootnoverify (hd0,0)
chainloader +1
/////////////////////////////////////////////////////////////////////
中的title other改為title Windows XP或者是別的如Windows 2000
然後將title other
rootnoverify (hd0,0)
chainloader +1
剪下到hiddenmenu的下面,呵呵,很Easy吧。這就是hiddenmenu的作用。
修改後就變成:
//////////////////////////////////////////////////////////////
# 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 (hd1,0)
# kernel /vmlinuz-version ro root=/dev/sda7
# initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Windows XP
rootnoverify (hd0,0)
chainloader +1
title Fedora (2.6.23.1-42.fc8)
root (hd0,0)
kernel /vmlinuz-2.6.23.1-42.fc8 ro root=LABEL=/
initrd /initrd-2.6.23.1-42.fc8.img
//////////////////////////////////////////////////////////////
解釋一下 :
通用選項部分
default 表示預設啟動的系統,以0開始計數,表示第一,二……
timeout 多少秒之後預設的系統被自動載入,這裡是5秒後,使用者不做選擇的話,Fedora 8 被啟動;
hiddenmen 預設隱藏選單,直到使用者按下某個鍵;
splashimage 起動器顯示的背景影象,該影象的格式是一種特殊格式,需要特殊工具製作,然後放置在合適的位置;
Fedora啟動章節
root 設定啟動系統的分割槽,這裡指定的不是linux系統的根分割槽(root system),而是boot分割槽,Grub是系統啟動載入器,因而他所謂的root是指系統從那個分割槽開始啟動,對於Linux系統而言是boot分割槽;
kernel 核心,位於boot分割槽上的合適核心;
initrd 指定特殊的initrd映象檔案用於啟動系統時ramdisk(記憶體中的虛擬盤技術)載入的物件,一般會在該映象中包含一些特殊裝置的驅動等,如USB驅動的支援,一遍Linux系統可以從UBS裝置上正常的啟動,該檔案可以根據特定的核心和啟動介質定製,關於如何定製,可以檢視RedHat相關的文件;
Grub啟動linux的順序是從指定的boot分割槽載入指定的kernel(核心)和initrd映象,而對於其他系統,處理情況不同,Grub會把任務交由該系統的載入程式(如windows的bootloader)去啟動系統;
rootnoverify 指定包含引導器的分割槽,類似Linux root指令;
chainloader 指定非linux系統的載入程式位於指定分割槽的+1扇區上,以便其它系統的載入器被正確載入並能執行載入其它系統的任務;
在該檔案中,磁碟分割槽以(hdX,N)描述,X表示磁碟號,以0開始計數,依照BIOS的磁碟順序指定;N是磁碟分割槽號,也是從0開始計數;如BIOS順序第一塊磁碟的第二個分割槽(/dev/sda2), 在Grub中表示為(hd0, 1);
Grub.conf是普通text檔案格式的,可以用任何文字編輯器編輯,如VI,gedit或者kate等;需要注意的是,任何編輯錯誤都將導致系統無法正常載入和啟動,需要特別慎重和小心!