首頁 > linux教程 > Linux系統啟動管理 閱讀:0更新時間:2020-03-28 01:02:54

Linux /boot/grub/grub.conf(GRUB配置文件)內容詳解

本節,我們就來看看 GRUB 的配置文件 /boot/gmb/grub.conf 中到底寫了什么。命令如下:

[rootdlocalhost ~]# vi /boot/grub/grub.conf
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
#以上為GRUB的整體設置
title CentOS (2.6.32-279.el6.i686)
root (hdO,0)
kernel /vmlinuz-2.6.32-279.el6.i686 ro root=OOID=b9a7ala8-767f-4a87-8a2b-a535edb362c9 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel= auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-279.el6.i686.img

這個文件的內容可以分成兩部分:前 4 行為 GRUB 的整體設置;title 以下 4 行為要啟動的 CentOS 系統的具體配置。這里只安裝了一個系統,如果多系統并存,那么每個系統都會有類似的 title 行存在(不一定都是 4 行)。

我們先看整體設置:
  • default=0:默認啟動第一個系統。也就是說,如果在等待時間結束后,用戶沒有選擇進入哪個系統,那么系統會默認進入第一個系統。如果有多系統并存,那么每個系統都會有自己的 title 字段,如果想要默認進入第二個系統,這里就可以設為 default=1。
  • timeout=5:等待時間,默認是 5 秒。也就是在進入系統時,如果 5 秒內用戶沒有按下任意鍵,那么系統會進入 default 字段定義的系統。當然,也可以手工修改這個等待時間,如果timeout=0,則不會等待直接進入系統;如果 timeout=-1,則會一直等待用戶輸入,而不會自動進入系統。
  • splashimage=(hd0,0)/gnjb/splash.xpm.gz:用來指定 GRUB 啟動時的背景圖像的保存位置。記得 CentOS 6.x 啟動時后臺的藍色圖像吧,就是這個文件的作用。不過這個文件具體在哪里呢?我們已經說過,hd(0,0) 代表第一塊硬盤的第一個分區,而筆者的系統在安裝時 /boot 分區就是第一個分區,所以這個背景圖像的實際位置就是 /boot/gmb/splash.xpm.gz。
  • hiddenmenu:隱藏菜單。啟動時默認只能看到讀秒,而不能看到菜單。如果想要看到菜單,則需要按任意鍵。如果注釋了這句話,那么啟動時就能直接看到菜單了。

再來介紹 CentOS 系統的具體配置:
  1. title CentOS(2.6.32-279.d6.i686):title 就是標題的意思,也就是說,在 title 后面寫入的是什么,系統啟動時在 GRUB 的啟動菜單中看到的就是什么。
  2. root(hd0,0):是指啟動程序的保存分區。這里要注意,這個 root 并不是管理員。在我的系統中,/boot 分區是獨立劃分的,而且設備文件名為 /dev/sda1,所以在 GRUB 中就被描述為 hd(0,0)。
  3. kernel /vmlinuz-2.6.32-279.el6.i686 ro root=UUID=b9a7a1a8-767f-4a87-8a2b-a535edb362c9 rd_NO_LUKS KEYBOARDTYPE=pc KEYTABLE=us rd_NO_MD crashkernel=auto LANG=zh_CN.UTF-8 rd_NO_LVM rd_NO_DM rhgb quiet。其中:
    • /vmlinuz-2.6.32-279.el6.i686:指定了內核文件的位置,這里的 / 是指 boot 分區。
    • ro:啟動時以只讀方式掛載根文件系統,這是為了不讓啟動過程影響磁盤內的文件系統。
    • root=UUID=b9a7a1 a8-767f-4a87-8a2b-a535edb362c9:指定根文件系統的所在位置。這里和以前的linux版本不太一樣了,不再通過分區的設備文件名或卷標號來指定,而是通過分區的 UUID 來指定的。

那么,如何査詢分區的 UUID 呢?方法有很多種,最簡單的辦法就查詢 /ec/fstab 文件。命令如下:

[root@localhost ~]# cat /etc/fetab | grep"/ "
UUID=b9a7a1a8-767f-4a87-8a2b-a535edb362c9 / ext4 defaults 1 1

可以看到"/"分區的 UUID 和 kernel 行中的 UUID 是匹配的。注意一下 grep 后的"/",在"/"后是有空格的。

以下禁用都只是在啟動過程中禁用,是為了加速系統啟動的:
  1. rd_NO_LUKS:禁用 LUKS,LUKS 用于給磁盤加密。
  2. rd_NO_MD:禁用軟 RAID。
  3. rd_NO_DM:禁用硬 RAID。
  4. rd_NO_LVM:禁用 LVM。

除了以上這樣,命令輸出信息中還包含以下內容:
  1. KEYBOARDTYPE=pc KEYTABLE=us:鍵盤類型。
  2. crashkernel=auto:自動為crashkernel預留內存。
  3. LANG=zh_CN.UTF-8:語言環境。
  4. rhgb:(redhatgraphics boot)用圖片來代替啟動過程中的文字信息。啟動完成之后可以使用dmesg命令來查看這些文字信息。
  5. quiet:隱藏啟動信息,只顯示重要信息。
  6. initrd/initramfs-2.6.32-279.el6.i686.img:指定了initramfs虛擬文件系統鏡像文件的所在位置。

GRUB的配置文件的內容就是這樣的,主要是 kernel 行較為復雜。不過,在這個 /boot/gmb/grub.conf 配置文件中,只啟動了一個 Linux 系統。如果在 Linux 服務器中 既安裝了 Linux 系統,又安裝了 Windows 系統,那么 GRUB 的配置文件又是什么樣子的呢?

beylze編程學院,一個分享編程知識和seo優化知識的網站。跟著beylze一起學習,每天都有進步。

通俗易懂,深入淺出,一篇文章只講一個知識點。

文章不深奧,不需要鉆研,在公交、在地鐵、在廁所都可以閱讀,隨時隨地漲姿勢。

文章不涉及代碼,不燒腦細胞,人人都可以學習。

當你決定關注beylze(公眾號:beylze),你已然超越了90%的其他從業者!

相關文章

優秀教程

国产亚洲欧美日韩