1、grub中分割槽的表示方法
在說grub
啟動載入程式的配置檔案之前,我們還需要了解一下,在grub
中分割槽的表示方法。
從下圖中我們可以看到,Linux系統的分割槽中是/dev/
目錄下自動識別裝置分割槽名稱,關於Linux系統的分割槽命名請看之前文章中的介紹。但是在grub
的分割槽中,是有自己一套獨立的標識方式,無論是SATA介面的硬碟還是IDE介面的硬碟,都用hd
來表示硬碟(不再像Linux系統分割槽,識別成hd
和sd
了)。括號中第一位數表示第幾塊硬碟,第二位表示硬碟中的分割槽號。
如下圖所示:
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
結果如下圖所示:
在實際工作中的伺服器上,不可能安裝多系統,原因:
- 第一、選擇需要進入的系統需要在本機上選擇,而我們的伺服器往往遠處。
- 第二、多個系統佔用過多的系統資源。
- 第三、虛擬機器比真實機使用起來方便很多,比如系統崩潰了,恢復快照就可以等,根本沒有必要安裝多系統。
3、grub的配置檔案內容說明
(1)grub的整體設定
1)default屬性
default=0
:預設啟動第一個系統。也就是如果在等待時間結束後,使用者沒有選擇進入哪一個系統,那麼系統會預設進入第一個系統。如果有多系統並存,那麼每個系統都會有自己的title
欄位,如果想要預設進入第二個系統,這裡就可以設為 default=1
,以此類推。
2)timeout屬性
timeout=5
:等待時間,預設是5秒。也就是進入系統時,如果5秒內使用者沒有按下任意鍵,那麼系統會進入default
欄位定義的系統。當然可以手工修改這個等待時間,如果timeout=0
則不會等待直接進入系統,timeout=-1
則是--直等待使用者輸入,而不會自動進入系統。
說明:
在進入Linux系統的時候,會出現如下畫面:
此畫面讀秒的時候,按下任意鍵,就可以進入到grub
啟動載入程式,選擇需要啟動的系統。
如下圖所示:
這個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
檔案,命令如下:
可以看到/
分割槽的UUID和kernel
行中的UUID是匹配的。
注意一下,grep
命令後的·/
,在/
後是有空格的。rd_NO_LUKS
:禁用LUKS
,LUKS
用於給磁碟加密。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)總結
以上四條屬性,title
、root
、kernel
、initrd
都是自動生成的,我再新安裝一個作業系統,這四個屬性也是自動生成,能看懂就好,這四個屬性不用我們修改。