热门标签
网络日志
发布于:2010-8-14 9:46
GRUB 2 不是這麼玩的

本來這篇文章應該早就撰成了,只是在翻閱 GRUB 2 的 wiki 的時候順便放在譯言上同步學習翻譯,所以翻譯未成則文章未寫,不過貌似 wiki 翻譯暫時不怎麼有動力,所以就先寫一點,以後再打補丁便是。

以下按照 Ubuntu 10.04 撰寫,部分信息請參照自己所使用的系統。

之前也寫過些關於 GRUB 2 的文章,不過在真正看了 GRUB 2 的 wiki 以後才發現 GRUB 2 不是這麼玩的。

GRUB 2 與 GRUB 最大的不同,或者說它 2 在哪裡,撇開功能的增強,就是它的標準更加清晰、條理更加明確、格式更加規範。

在 GRUB 中只要編輯 menu.lst 就能完成任何的事情,而把所有的事情放在一個文件中完成自然會導致混亂。而我從前都依照舊例,直接編輯 GRUB 2 中的 grub.cfg 這個和 menu.lst 相似的文件,這樣一來不僅走了 GRUB 的老路,而且每次更新系統時如果涉及到內核和 grub-pc 等包的更新,自動運行的 update-grub 命令就會將改動過的 grub.cfg 文件重置,使一切設置付諸東流。

事實上,grub.cfg 默認為只讀,正是因為 GRUB 2 將所有的設置都分置於 /etc/default/grub 和 /etc/grub.d 目錄下的各個文件中,對這些文件作了修改之後通過 update-grub 命令即可完成修改,用戶並不需要自行處理 grub.cfg 這個文件。

那麼就來看看這些文件都是什麼樣的吧!

 

/etc/default/grub

這是最主要的設置文件,大部分設置都可以在這個文件中完成。

在這個文件中可以看到以下選項:

GRUB_DEFAULT=

這是默認選中的啟動項,你可以填入數字,從 0 開始表示第一行;填入"xxx",即雙引號內含對應條目的準確字符,因為 Ubuntu 內核版本會在啟動項中顯示,所以升級了內核對應的條目就會發生變化,所以這只適用於條目字符不會變化的系統,例如"Windows 7 (loader)"這樣;填入"saved",此選項需與 GRUB_SAVEDEFAULT=true 配合,二者配合即可讓 GRUB 2 默認選中上一次啟動的條目。

GRUB_SAVEDEFAULT=

如前所述,與 GRUB_DEFAULT="saved" 配合使用則設為 true。否則此設置並無意義。

GRUB_TIMEOUT=

設定 GRUB 2 自動進入選中條目的等待時間,如果設為 -1 則表示不自動進入,始終等待用戶決定。默認的 10 其實較長了。

GRUB_CMDLINE_LINUX_DEFAULT=

默認的設置為"quiet splash"

啟用 quiet 會讓開機過程顯示的文字信息減到最少,只會出現例如磁盤掃描之類需要用戶特別注意的提示,關閉則會在命令行中顯示所有開機的文本輸出,並在 splash 畫面中顯示較詳細的信息。

啟用 splash 會調用系統默認的開機畫面,關閉則從命令行直接進入 GNOME 登錄畫面。不過由於 Ubuntu 使用了 Plymouth,改進了 splash 到 GNOME 的過渡速度,所以啟用與關閉的差別並不大,建議開啟。

另外還可以加入"acpi="條目,從 GRUB 階段就啟用或禁用電源管理方案。詳情請參考 acpi 設置。

GRUB_DISABLE_LINUX_UUID=

默認為"true",會按照設備的 uuid 進行檢索。可有可無。

GRUB_GFXMODE=

默認為"640x480"(當中是字母 x,不要想當然地用 * 啊!)。

一般可選的有"640x480"、"800x600"、"1024x768",GRUB 2 目前並不支持寬屏。

也可以在後面再加上色深,如"1024x768x32"。

GRUB_DISABLE_LINUX_RECOVERY=

默認禁用。啟用後就不會創建恢復模式的條目。其實恢復模式無非是在啟動內核後面跟上了 single 選項,一般也用不到恢復模式,要用的時候自己加上就行了。

以上是 /etc/default/grub 中較為常用的選項,更詳細的內容等我把 wiki 翻完了再說吧。

 

/etc/grub.d

再說這個目錄。這個目錄裡有許多以二位數字開頭的文件,在運行 update-grub 命令時會依次執行這個目錄中的文件,就是按照這些數字的順序從小到大執行。這些文件的文件名就很明確的表達了它的功能了。

如果你和我一樣不喜歡 memtest86+ 這個不常用的條目,那麼只要將 20_memtest86+ 這個文件的執行權限去掉就行了,簡單的用一條命令就可以完成:

sudo chmod -x /etc/grub.d/20_memtest86+

這樣一來在 update-grub 的時候就不會執行這個文件,自然也就不會添加 memtest86+ 的條目了。

這也是啟用與禁用此類文件的通用方法。

另外,40_custom 正如其名,就是給我們自定義用的。

打開後會發現它已經有了幾條語句,不用管它們,直接在後面添加就是了。

例如除了以上的設置,我還想自定義背景圖片,那麼就添加這樣的語句:

insmod jpeg

background_image ($root)/boot/grub/image/1.jpg

就像我從前直接在 grub.cfg 中添加的那樣。

 

當一切都修改完成後,就運行 update-grub 吧,不用親自動手,一個新的 grub.cfg 文件就出爐了。

【阅读 34700】 【评论 0】
评分统计
评论
发布评论
login
名称:
密码:(游客无须)
您的网络日志 URL(可选):
标题:
评论
验证码:
换一个


  
  Sign in    
添加表情