配置GRUB 2:調整Ubuntu Server 9.10中的啓動程序_/etc/default/GRUB分析

   GRUB已經出現很多年了。相對於它的前身LILO,GRUB有更大的優勢,其中最重要一點的就是在啓動時,它能夠直接對文件系統進行尋址。在最近的Linux發行版中,比如Ubuntu Server 9.10,就使用了下一版的GRUB。從本文中,您將學習到如何使用GRUB 2.0。

  GRUB1已經很不錯了,但還是有一些改進的餘地。GRUB 2的改進包括一個支持主題模塊化負載、跨平臺兼容和其它功能的圖形界面。另外的一個變化是配置方式的改變。在本文中,您將學習如何在Ubuntu server 9.10中配置GRUB。

  安裝GRUB2

  要安裝GRUB 2,你只需要安裝Ubuntu Server 9.10。安裝完成後,新版本GRUB的配置文件都保存在目錄/ boot / grub中。它包括許多.mod文件,(這些.mod文件包含了在GRUB2中需要的模塊)、GRUB.cfg文件和其它一些配置文件。與舊版相比,GRUB2的主要變化是,你再也不用編輯文件menu.lst,只要生成GRUB.cfg就可以了,但這並不意味着要對Grub.cfg進行編輯。

  要更改GRUB 2的配置,你需要修改主配置文件/etc/default/GRUB。此外,還需要修改一些位於目錄/etc/GRUB.d/下的獨立腳本。對這些文件進行更改後,您就可以使用命令update-GRUB2或update-GRUB將更改寫入GRUB.cfg文件。進行更改的方式如下:

  對/etc/default/GRUB 或者目錄/etc/GRUB.d/中的一些文件進行相應的修改。
  運行命令update-GRUB,將這些修改寫入文件/boot/GRUB/GRUB.cfg.

  修改/etc/default/GRUB

  第一個需要修改的文件便是/etc/default/GRUB。如果您配置過老版的GRUB的話,應該知道這個文件包含的是在老版中文件/ boot / grub / menu.lst開始的一些設置。這些設置會影響GRUB引導菜單的顯示方式以及用於啓動GRUB的超時設定。

  /etc/default/GRUB的默認內容如下:

#如果你更改這個文件, 運行 'update-GRUB'後更新
# /boot/GRUB/GRUB.cfg
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT="10"
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX="find_preseed=/preseed.cfg automatic-ubiquity noprompt"
# 取消無效圖形終端的備註 (只有GRUB-pc)
#GRUB_TERMINAL=console
# 用於圖形終端的分辨率
# 注意,你只能用圖形卡通過VBE支持的模式
# 你可以通過命令 `vbeinfo'在真實GRUB中看到它們
#GRUB_GFXMODE=640x480
#如果你不想GRUB越過"root=UUID=xxx" 參數到達Linux就取消備註
#GRUB_DISABLE_LINUX_UUID=true
# 取消對無效的恢復模式菜單條目生產的備註
#GRUB_DISABLE_LINUX_RECOVERY="true"

  讓我們來看看在GRUB中最重要的幾行。首先,你可以看到GRUB_DEFAULT = 0這一行。跟老版中的menu.lst類似,它指的是默認啓動的選項。要想知道這是哪個啓動項,你應該看一下/boot/GRUB/GRUB.cfg,在這個文件裏包含了要使用的啓動選項。

  接下來,讓我們看一下GRUB_HIDDEN_TIMEOUT。如果你只安裝了Linux,默認情況下不顯示GRUB菜單。但是,如果電腦中還安裝有其它操作系統,它將給出一個啓動菜單。如果你希望在加載內核前將系統暫停,而且不顯示任何菜單,那就請給這個參數賦一個大於零的值。例如,GRUB_HIDDEN_TIMEOUT = 5就表示系統在開始加載內核前將暫停五秒鐘的時間。

  接着,讓我們再看一下GRUB_CMDLINE_LINUX這幾行。這裏,你指定的是GRUB採用的內核參數。例如,如果你希望你的服務器使用參數data=writeback進行加載(這將激活最快的日誌模式),你可以在這一行添加參數rootflags=data=writeback。你也可以使用任何其它的內核選項。你可以在示例行中找到一些常用的內核選項。所以,如果你打算使用任何特定的內核選項,就在這裏添加參數。

  理解/etc/GRUB.d/*

  接下來,在目錄/ etc / GRUB.d中還有一些配置文件,當運行GRUB-update時,這些腳本被讀取並且創建新的GRUB.cfg配置文件。其中第一個文件是文件00_header,實際上它是指你對/etc/default/GRUB的設定,所以如果你刪除此文件,對/etc/default/GRUB的設定將無法生效。

  文件05_debian_theme決定了加載GRUB時顯示的內容。默認情況下,它顯示默認的GRUB圖形化桌面主題,你可以將自己的圖片存爲.png或者.tga格式並保存到目錄/usr/share/images/desktop-base中來自定義自己的GRUB主題。

  另外還有你可能不太會去改變的一些文件。文件10_linux用於加載內核,文件20_memtest86 +用於載入內存測試,文件30_os-prober用於查找計算機上可能會有的其它操作系統,並將它們添加到GRUB的啓動菜單中。這些都說明GRUB 2更加智能,你大可不必手工爲電腦中所有操作系統創建啓動菜單項。

  然而,你可能要編輯文件40_custom。在這個文件中,你可以添加的配置信息跟你在GRUB1中的配置文件非常相似,它加載額外的內核和initrd。下面的例子你可以看到這個文件的內容:

menuentry "Some other Linux, linux 2.6.27-6-pae" { set root=(hd0,3) linux /boot/vmlinuz-2.6.27-6-pae root=/dev/sda4 initrd /boot/initrd.img-2.6.27-6-pae }
EOF

  只需將上面的文字插入到文件40_custom中,確保不要修改其它行的配置,執行命令update – GRUB以將更改寫入GRUB.cfg。下一次引導時你就會發現所有的更改都已經顯示在GRUB菜單中了。

  第一眼看上去,GRUB 2跟老版本的GRUB有很大的區別。再仔細看一看,你會發現GRUB 2和GRUB 1之間的區別並不是很大。本文解釋瞭如何修改GRUB 2配置,或許你會發現,在不久的將來,會有越來越多的Linux發行版本使用GRUB2。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章