groub相關總結

相關鏈接:

GRUB2配置文件"grub.cfg"詳解(GRUB2實戰手冊):http://www.jinbuguo.com/linux/grub.cfg.html

http://blog.chinaunix.net/uid-15007890-id-3056369.html

http://blog.csdn.net/zhanghuoding/article/details/41623543

http://www.cnblogs.com/longwaytogo/p/5679583.html


1. /boot/grub/grub.cfg

此檔案中包含了GRUB選單資訊。
注意他的開頭,說明了這是由/etc/grub.d與/etc/default/grub所生成的,不要自己編輯。這個檔案還是唯讀屬性,就是要避免你直接去編輯。
若是你修改了這個檔案,只要更新核心,或是以指令更新grub選單,之前的修改就會被覆蓋掉。所以除非不得已,請不要去動這個檔案。要修改,請繼續往下看。


2. /etc/default/grub
此檔案爲使用者修改grub設定的主要檔案,真的改爛了請不要急,在/usr/share/grub/default/裏還有一份,複製回來即可。
要修改這個檔案,請輸入
sudo gedit /etc/default/grub

3. /etc/grub.d目錄
此目錄放置檔案,會在sudo update-grub時,合併到/boot/grub/grub.cfg中。
注意這些檔案名稱結構,前面都有數字。數字越小的,在合併時放在越前面。常有人問到,grub menu要怎麼更改選項的順序?就是更改數字的大小。

此外請你在這目錄下輸入ls -l,看一下各檔案的屬性,有沒有看到都有x屬性(可執行)?變動x屬性,可以決定這個選項要不要出現在選單內。


以下介紹/etc/default/grub所使用的參數,我只介紹大家比較會去修改到的。

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
GRUB_DEFAULT=0 ->設置默認啓動項,按menuentry順序。比如要默認從第四個菜單項啓動,數字改爲3,若改爲 saved,則默認爲上次啓動項。
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true ->隱藏菜單,grub2不再使用,不管
GRUB_TIMEOUT="3" ->設置進入默認啓動項的等候時間,默認值10秒,按自己需要修改
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" ->添加內核啓動參數,這個爲默認
GRUB_CMDLINE_LINUX="noresume" ->手動添加內核啓動參數,比如 acpi=off noapic等可在這裏添加
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console ->設置是否使用圖形介面。去除前面#,僅使用控制檯終端,不使用圖形介面
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480 設定圖形介面分辨率,如不使用默認,把前面#去掉,把分辨率改爲800x600或1024x768
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true ->設置grub命令是否使用UUID,去掉#,使用root=/dev/sdax而不用root=UUDI=xxx
# Uncomment to disable generation of recovery mode menu entrys
#GRUB_DISABLE_LINUX_RECOVERY="true" ->設定是否創建修復模式菜單項


    在修改該文件之後,根據文件內容的提示,我們需要執行sudo update-grub。這樣就可以生成我們熟悉的/boot/grub/grub.cfg

1. GRUB_DEFAULT - 設定預設選單選項。有以下幾種作法。
GRUB_DEFAULT=0 以位置來設定預設選單選項。第一筆選單選項爲 0,第二筆爲 1,以此類推。
GRUB_DEFAULT="xxxx" 在此例中,選單中的位置不會有影響。例如:GRUB_DEFAULT="Ubuntu, Linux 3.11.0-13-generic"。注意要完整全稱。
GRUB_DEFAULT=saved 由儲存預設的作業系統開機。可以用grub-reboot和grub-set-default指令來設定預設作業系統。預設作業系統不會由來自選單中的互動式選擇而被設定。
sudo grub-set-default 0 以位置來設定預設選單選項。第一筆選單選項爲 0,第二筆爲 1,以此類推。
sudo grub-set-default "xxxx" 以選單名稱來設定
sudo grub-reboot 0 以位置來設定下次重啓開機選項。第一筆選單選項爲 0,第二筆爲 1,以此類推。
sudo grub-reboot "xxxx" 以選單名稱來重啓開機


2. GRUB_HIDDEN_TIMEOUT - 此設定用來決定GRUB選單會有多長時間不被顯示。
GRUB_HIDDEN_TIMEOUT=0 在單一作業系統電腦中,會立刻以預設作業系統開機。在只有一個作業系統狀況下,這是預設的設定。假如還是要顯示選單,請在這行前加上 # 註銷掉,並確認 GRUB_TIMEOUT 設定爲正整數。
GRUB_HIDDEN_TIMEOUT=X x爲秒數,空白畫面幾秒後,系統將會依照預設開機,不會出現選單。當螢幕是空白時,使用者可以按下任何鍵以顯示選單。


3. GRUB_HIDDEN_TIMEOUT_QUIET - 在空白畫面時,是否顯示倒數計時器
GRUB_HIDDEN_TIMEOUT_QUIET=true '不'顯示計時器
GRUB_HIDDEN_TIMEOUT_QUIET=fault 顯示計時器


4. GRUB_TIMEOUT - 選單顯示多久之後自動以預設作業系統開機

GRUB_TIMEOUT=10 10秒後以預設系統開機
GRUB_TIMEOUT=-1 持續顯示選單,直到使用者選擇


5. GRUB_GFXMODE - 設定grub選單顯示的解析度。一般是註解掉。
GRUB_GFXMODE=640x480 以640x480模式顯示。
除非開機時選單顯示就有問題,不然不要啓用這個參數,據說會影響進入grub選單的時間。真的要啓用,後面的數值請依照你顯卡可以支援的模式填入,如1280x1024x16,800x600x24,640x480


6. GRUB_DISABLE_LINUX_RECOVERY - 救援模式要不要顯示?
你在選單中是不是都有看到救援模式(recovery mode)?假如你的電腦一向穩定,而且你不太會去動到系統,可以考慮去除 # 註解
GRUB_DISABLE_LINUX_RECOVERY=true '不' 顯示救援模式


7. GRUB_DISABLE_OS_PROBER - 對其他分割區作業系統的檢查

大家應該都知道sudo update-grub可以找到在其他分割區的作業系統,製成選單。但有時我就是不想要他顯示到選單內,那怎麼辦?那註銷掉這一行就可以不檢查其他分割區有沒有作業系統。
GRUB_DISABLE_OS_PROBER=true '不'檢查其他作業系統


8. GRUB_BACKGROUND - 背景影像所在。這個參數,需要自行加入。

GRUB_BACKGROUND=</usr/share/background/xxx.jpg> 以/usr/share/background/xxx.jpg當作選單背景。可以.png, .jpg, 或.tga等格式


以下介紹/etc/grub.d目錄下的檔案。這些檔案內都有很清楚的註解,但都是英文的,不過不需要很強的英文能力。難的是你必須要有撰寫修改scripts的能力。基本上,這些檔案大多都不需要去修改。


1. 00_header - 設定初始顯示項目,圖片格式、路徑,系統文件格式
insmod jpeg ->添加背景圖片格式支持,如jpeg,png,tga等。
insmod fat ->添加文件系統格式支持如fat,ntfs,也可在menuentry下添加

前一段介紹了/etc/default/grub的設定,就是由這一部份來負責,所以你不需要更動這個檔案。




2. 05_debian_theme - 佈景主題,修改字體及背景顏色

cat 設置菜單項的字體和背景顏色
set menu_color_highlight=black/white ->設置選擇項的字體和背景顏色。

可供使用菜單顏色有:
black,blue,green,cyan,red,magenta,brown,light-gray,dark-gray,light- blue,light-green,light-cyan,light-red,light-magenta,yellow,white

設定開機影像、文字顏色、高亮度選項及佈景主題。在沒有開機影像的情況下,此檔案會設定一個單色的佈景主題來顯示初始選單畫面。在之前/etc/default/grub已經介紹過GRUB_BACKGROUND參數,若有設定,則在00_header就已經先載入了,所以優先性高於在此設定。
個人有點小看法,開機越快越好,在這個選單背景下功夫,不如想辦法加快流程。而且這個步驟停留時間不長,實在吸引不了什麼目光...




3. 10_linux - 指定目前使用中的Linux作業系統核心位置,建立當前系統的啓動菜單,包括系統頭,內核等信息,不要隨便修改,要使用個性菜單名,比如中文菜單,可適當添加:

先打開文件 sudo gedit /etc/grub.d/10_linux,找到
        cat 雙引號內可添加個性化字符,$1變量也可改爲定值,如改爲menuentry "啓動 Ubuntu Karmic" {
        recordfail=1
        save_env recordfail ->如不要保存啓動失敗記錄的,這兩句可刪除

用來建立這些linux不同核心顯示在選單中的名稱。若您不想要所有的舊核心版本全都顯示在選單中,請移除舊核心。

4. 20_memtest86+ - 搜尋 /boot/memtest86+.bin
memtest86+ 主要是進行記憶體測試。你會常用到嗎?假如用不到,不用移除,只要拿掉x屬性即可不再出現在選單當中。請輸入:
sudo chmod -x /etc/grub.d/20_memtest86+

5. 30_os-prober - 此檔案使用 os-prober 來搜尋其他分割區的作業系統。結果將會依據此檔案中的內容而放至 grub.cfg 中,查找其他分區中存在的系統並建立菜單項,依次爲windows,linux,macos。
對於單系統,默認會隱藏菜單,可在這裏去掉隱藏

此檔案被劃分成四個段落,代表四種作業系統類型:Windows, Linux, OSX 和 Hurd。假如你要去修改這個檔案了,那你必須熟悉scripts的撰寫。


6. 40_costom - 用來加入自訂選單選項的樣板
會在執行 update-grub 時,嵌入至 grub.cfg 中。


既然不怎麼需要作修改,那知道這個目錄有什麼用?就像最早簡介中所述:更改數字,可以改變順序,小的在前面,大的在後面;更改x屬性,可以決定要不要在選單中出現。


如,你想要windows系統出現在前面,你可以把os-prober的數字改成07,他就會出現在現有的linux前面。
如,你不想要出現memtest86+,就把x屬性拿掉。


再一個更復雜的狀況,除了現有的ubuntu外,你還有fedora與windows7在其他分割區,而你希望出現的順序爲windows7, fedora, ubuntu,你可以把os-prober的數字改成07,並且把裏面關於windows的scripts放在前面。

所有對於/etc/default/grub與/etc/grub.d的更改,必須以下列的指令來生效
sudo update-grub


這個指令會重新做出/boot/grub/grub.cfg,下次開機時,就會呈現出新的選單。


若想了解更多,請參閱以下參考資料:
https://help.ubuntu.com/community/Grub2
https://help.ubuntu.com/community/Grub2/Setup



發佈了169 篇原創文章 · 獲贊 268 · 訪問量 117萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章