『學了就忘』Linux啟動引導與修復 — 70、grub啟動引導程序的配置文件說明


1、grub中分區的表示方法

在說grub啟動引導程序的配置文件之前,我們還需要了解一下,在grub中分區的表示方法。

從下圖中我們可以看到,Linux系統的分區中是/dev/目錄下自動識別設備分區名稱,關於Linux系統的分區命名請看之前文章中的介紹。但是在grub的分區中,是有自己一套獨立的標識方式,無論是SATA接口的硬盤還是IDE接口的硬盤,都用hd來表示硬盤(不再像Linux系統分區,識別成hdsd了)。括號中第一位數表示第幾塊硬盤,第二位表示硬盤中的分區號。

如下圖所示:

image

2、grub的配置文件

上一篇文章我們說過,grub啟動引導程序的配置文件有三個,源文件是/boot/grub/grub.conf,而/boot/grub/menu.lst/etc/grub. conf文件是/boot/grub/grub.conf文件的兩個軟鏈接文件,說白了三個文件就是一個文件。

查看grub的配置文件,內容如下:

執行命令:[root@localhost ~]# vim /boot/grub/grub.conf

結果如下圖所示:

image

在實際工作中的服務器上,不可能安裝多系統,原因

  • 第一、選擇需要進入的系統需要在本機上選擇,而我們的服務器往往遠處。
  • 第二、多個系統占用過多的系統資源。
  • 第三、虛擬機比真實機使用起來方便很多,比如系統崩潰了,恢復快照就可以等,根本沒有必要安裝多系統。

3、grub的配置文件內容說明

(1)grub的整體設置

1)default屬性

default=0:默認啟動第一個系統。也就是如果在等待時間結束后,用戶沒有選擇進入哪一個系統,那么系統會默認進入第一個系統。如果有多系統並存,那么每個系統都會有自己的title字段,如果想要默認進入第二個系統,這里就可以設為 default=1,以此類推。

2)timeout屬性

timeout=5:等待時間,默認是5秒。也就是進入系統時,如果5秒內用戶沒有按下任意鍵,那么系統會進入default字段定義的系統。當然可以手工修改這個等待時間,如果timeout=0則不會等待直接進入系統,timeout=-1則是--直等待用戶輸入,而不會自動進入系統。

說明:

在進入Linux系統的時候,會出現如下畫面:

image

此畫面讀秒的時候,按下任意鍵,就可以進入到grub啟動引導程序,選擇需要啟動的系統。

如下圖所示:

image

這個timeout=5就是圖1中的讀秒數。

這里還有要注意一點,在圖2界面的時候,Linux系統是沒有啟動好的,網卡此時並沒有加載好, 所以遠程終端是無法連接的,這就是上面說的只有到本機上才能操作。

3)splashimage屬性

splashimage=hd(0,0)/grub/splash.xpm.gz:這里是指定grub啟動時的背景圖像文件的保存位置的。記得CentOS 6.X啟動時后台的藍色圖像吧,就是這個文件的作用。hd(0,0)代表第一個硬盤的第一個分區,而我們在系統安裝時,/boot分區就是第一個分區,所以這個背景圖像的實際位置就是/boot/grub/splash.xpm.gz(說明hd(0,0)=/boot)。

4)hiddenmenu屬性

hiddenmenu:隱藏菜單。啟動時默認只能看到讀秒,而不能看到菜單,如果想要看到菜單需要按任意鍵。
如果注釋了這句話,那么啟動時就能直接看到菜單了。

以上就是grub的整體設置,個人覺得除了default屬性,其他的都沒有什么好修改的。

(2)CentOS系統的啟動設置

接下來介紹CentOS系統的啟動設置。

1)title屬性

title CentOS(2.6.32-279.el6.i686)title就是標題的意思,也就是說在title后面寫入的是什么,那么系統啟動時在grub的啟動菜單中看到的就是什么,如上圖中的選項名稱。

如果有多個系統,每個系統都會有一個title屬性。

2)root屬性

root hd(0,0):是指啟動程序的保存分區(也可以說是主啟動目錄的位置)。這里要注意啊,這個root並不是管理員用戶,也不是根目錄同級的root目錄,而是主啟動目錄的位置。在我的系統中,/boot分區是獨立划分的,而且設備文件名為/dev/sda1,所以在grub中,就被描述為hd(0,0),也就是說root/boot分區下的根目錄。

3)kernel屬性

kernel屬性就是描述內核加載的選項,下面簡單說明一下:

  • /vmlinuz-2.6.32-279.el6.i686:指定了內核文件的位置,這里的/是指/boot分區。
  • ro:啟動時以只讀方式掛載根文件系統,這是為了不讓啟動過程影響磁盤內的文件系統。(這些選項都是在系統啟動過程中的選擇)
  • root=UUID=b9a7a1a8-767f-4a87-8a2b-a535edb362c9:指定根文件系統的所在位置。這里和以前的Linux版本不太一樣了,不再是通過分區的設備文件名或卷標號來指定,而是通過分區的UUID來進行指定。那么如何查詢分區的UUID號呢?方法有很多種,最簡單的辦法就是查詢/etc/fstab文件,命令如下:
    image
    可以看到/分區的UUID和kernel行中的UUID是匹配的。
    注意一下,grep命令后的·/ ,在/后是有空格的。
  • rd_NO_LUKS :禁用LUKSLUKS用於給磁盤加密。
  • rd_NO_MD :禁用軟RAID
  • rd_NO_DM:禁用硬RAID
  • rd_NO_LVM :禁用LVM。以上禁用都只是在啟動過程中禁用,是為了加速系統啟動的。(啟動完了自動開啟,所以這些屬性我們不必太關注)
  • KEYBOARDTYPE=pc KEYTABLE=us :鍵盤類型。
  • crashkernel=auto:自動為crashkernel預留內存。
  • LANG=zh_CN.UTF-8 :語言環境。
  • rhgb:(redhat graphics boot)用圖片來代替啟動過程中的文字信息。啟動完成之后可以使用dmesg命令來查看這些文字信息。(如啟動時候的百分比等)
  • quiet:隱藏啟動信息,只顯示重要信息。(系統啟動的時候按ESC鍵,可以查看隱藏的信息)

提示:以上這么多信息,我們平時真的用不到,大概知道什么意思就可以了。

4)initrd屬性

initrd /initramfs-2.6.32-279.el6.i686.img:加載虛擬文件系統,指定了initramfs內存文件系統鏡像文件的所在位置。

5)總結

以上四條屬性,titlerootkernelinitrd都是自動生成的,我再新安裝一個操作系統,這四個屬性也是自動生成,能看懂就好,這四個屬性不用我們修改。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM