GRUB(統一引導裝入器)是基本的Linux引導裝入器。
其有四個作用,如下:
1.選擇操作系統(如果計算機上安裝了多個操作系統)。
2.表示相應引導文件所在的分區。
3.找到內核。
4.運行初始內存盤,設置內核與相關模塊。
GRUB的配置文件是/boot/grub/grub.conf
/boot/grub/grub.conf中典型的GRUB配置文件,如下圖
[root@localhost ~]# cat /boot/grub/grub.conf
# 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,9)
# kernel /boot/vmlinuz-version ro root=/dev/hda10
# initrd /boot/initrd-version.img
#boot=/dev/hda
default=1
timeout=30
splashimage=(hd0,9)/boot/grub/splash.xpm.gz
hiddenmenu
title Fedora Core (2.6.9-1.667)
root (hd0,9)
kernel /boot/vmlinuz-2.6.9-1.667 ro root=LABEL=/ rhgb quiet
initrd /boot/initrd-2.6.9-1.667.img
title Other
rootnoverify (hd0,0)
chainloader +1
對上圖中GRUB的變量進行說明如下:
變量 說明
#: 對菜單配置文件進行注釋。
default: 指定默認操作系統。如果為0,則沒有用戶輸入時,自動啟動第一段中顯示的操作系統。
timeout: 設置GRUB啟動默認之前的時間極限(秒數)。在上圖中為30秒。
splashimage: 指定默認GRUB引導時所使用的背景圖像的位置。
hiddenmenu: 這個命令被使用時,它不顯示GRUB菜單接口,在超時時間過期后載入默認項。用戶通過按[Esc]鍵,可以看到標准的GRUB菜單。可以在其前加#或者刪除來達到顯示菜單借口的目的。
title: 設置GRUB菜單中顯示的選項。一個是顯示Fedora Core (2.6.9-1.667),一個 為Other,也即我使用的Windows XP。
kernel: 指定Linux內核地址。
initrd: 指定初始內存盤地址。
rootnoverify: 對Windows XP之類的敏感操作系統指定引導文件所在分區。
chainloader: +1表示對指定分區中第一個扇區尋找引導文件。
說明1:password變量未被列出,是因為我在安裝系統時,未選擇引導裝載口令。這個變量被使用時,它可以防止不知道口令的用戶編輯菜單的項目。
在GRUB中增加口令的辦法:使用grub-md5-crypt命令,在提示下輸入所要口令。可以看到一系列奇怪的字符,可以將其復制到配置文件中。很容易從命令行復制這個口令,只要用鼠標加亮選擇口令,在文本編輯器中打開/etc/grub.conf,在所要位置右單擊鼠標,然后Linux即會自動插入加亮的MD5口令。
說明2:為了方便起見,/etc/grub.conf鏈接實際引導裝入器的配置文件/boot/grub/grub.conf。
還有一些其它的GRUB變量未被列出,如果要查詢更詳細的信息,可以參考如下:
可以在系統里使用man grub或者info grub命令。
以下是一些關於grub的站點:
http://www.gnu.org/software/grub
- GNU GRUB 項目的主頁。這個站點包含了GRUB發展狀態的信息以及一個FAQ。
- 在這個項目被脫管到自由軟件基金會進一步發展前的最初的GRUB文檔。
http://www.redhat.com/mirrors/LDP/HOWTO/mini/Multiboot-with-GRUB.html
- 研究GRUB各種不同的用法,包括引導非Linux操作系統。
http://www.linuxgazette.com/issue64/kohli.html
- 一篇介紹性的文章,討論在一個系統上GRUB配置,包括GRUB命令行選項的概述。