1. 程式人生 > >Fedora 8 Linux下GRUB配置檔案詳細解析

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等;需要注意的是,任何編輯錯誤都將導致系統無法正常載入和啟動,需要特別慎重和小心!