GRUB 2 中文指南 10.10 [論壇 - Ubuntu基本設定]


正在瀏覽:   1 名遊客


 到底部   前一個主題   下一個主題  [無發表權] 請登錄或者註冊

(1) 2 3 4 »


GRUB 2 中文指南 10.10
會員二級
註冊日期:
2009/4/25 13:55
所屬群組:
已註冊使用者
等級: 6
HP : 0 / 138
MP : 19 / 4188
EXP: 55
離線
距離上次翻譯這份文件已經匆匆過了一年,
英文版本新增及修改了許多地方,
最近也將這部份翻譯整理好了。
一樣請多多回饋以便立即修正錯漏的部份。
另外我還是搞不懂 wiki 的排版...
所以請有能力的網友幫忙更新 wiki 的部份囉。
舊版中文文件:http://www.ubuntu-tw.org/modules/newbb/viewtopic.php?topic_id=18853

*目前論壇對於字型和縮排似乎無法正確解析,因此格式會有點奇怪。

2010/10/8 12:01
應用擴展 工具箱
Grub2
會員二級
註冊日期:
2009/4/25 13:55
所屬群組:
已註冊使用者
等級: 6
HP : 0 / 138
MP : 19 / 4188
EXP: 55
離線
GRUB 2 是 Ubuntu 9.10 (Karmic Koala) 的預設開機載入和管理程式,並在 10.04 以後於許多作業系統中使用。在電腦開機時 GRUB 2 將顯示選單等待使用者輸入或是自動將控制權轉移到作業系統核心。GRUB 2 繼承自 GRUB (GRand Unified Bootloader)。它經過了完全的重寫以提供使用者可觀的靈活性和效能增進。GRUB 2 是自由軟體。

在這份指南中,GRUB 2 版本為 1.98 或更新版。傳統 GRUB (0.97 版) 將以 GRUB 稱之。欲查詢您目前使用的版本,輸入「grub-install -v」指令。

注意:當系統中同時存在多個 GNU/Linux 發行版,請小心其他的發行版(特別是 OpenSuse 和 Fedora)並不一定會轉移至 Grub 2,而使得 Grub 2 的設定變為複雜。

目錄
  1. 增加功能
  2. GRUB vs GRUB 2
  3. 安裝
    1. 預設安裝
    2. 升級至 GRUB 2
  4. 檔案結構
    1. /boot/grub/grub.cfg
    2. /etc/default/grub
    3. /etc/grub.d/ (目錄)
  5. 設定 GRUB 2
    1. /etc/default/grub(檔案)
  6. 開機顯示行為
    1. 初始化預設值
    2. 計時顯示
    3. 隱藏
    4. 儲存
    5. 上次開機失敗或開機至復原模式
  7. 自訂選單項目
    1. 製作自訂選單
  8. 備用模式
  9. 命令列及救援模式
    1. 開機時編輯選單
    2. 命令列模式
    3. 使用命令列介面開機
    4. 救援模式
  10. GRUB 錯誤訊息
    1. 解決「未知的裝置字串」(Unrecognized Device String)(Error 11)
    2. 檔案未找到(File Not Found)(Error 15)
    3. Grub 顯示救援模式提示符號(然後不繼續進行開機)
  11. 開機影像和佈景主題
    1. GRUB 2 開機影像
    2. 建立使用者自訂開機影像
    3. 佈景主題
  12. 重新安裝 GRUB 2
    1. 從開機光碟重新安裝
    2. 變更或移動 GRUB 2
  13. 移除 GRUB 2
    1. 回復至傳統 GRUB
  14. 常見問題與錯誤
  15. 其他
    1. 由序列式控制台開機
  16. 連結
    1. 外部連結

2010/10/8 12:02
應用擴展 工具箱
增進功能
會員二級
註冊日期:
2009/4/25 13:55
所屬群組:
已註冊使用者
等級: 6
HP : 0 / 138
MP : 19 / 4188
EXP: 55
離線
GRUB 2 與原本的 GRUB 相比之下主要增進功能包含:
  • 命令稿支援,包括條件敘述和函式
  • 動態模組載入
  • 救援模式
  • 客製化選單
  • 佈景主題
  • 支援圖形化開機選單以及改良的開機影像能力
  • 直接由硬碟中的可開機光碟映像檔來開機
  • 新的設定檔結構
  • 非 x86 平台支援(例如 PowerPC)
  • 全面支援 UUID(不只在 Ubuntu)

2010/10/8 12:04
應用擴展 工具箱
GRUB vs GRUB 2
會員二級
註冊日期:
2009/4/25 13:55
所屬群組:
已註冊使用者
等級: 6
HP : 0 / 138
MP : 19 / 4188
EXP: 55
離線
GRUB 2 的預設選單對 GRUB 使用者而言看起來很熟悉,但是在相似的表面下實則有非常巨大的相異之處。
  • 在沒有安裝其他作業系統的全新 Ubuntu 9.10 或 10.04 安裝下,GRUB2 將會直接開機到登入提示符號或是桌面。不會顯示選單。
  • 在開機期間按住 SHIFT 可顯示選單(之前在傳統 GRUB 中是 ESC 鍵)
  • 沒有 /boot/grub/menu.lst。已被 /boot/grub/grub.cfg 取代。
  • 在 grub 提示符號下沒有「/find boot/grub/stage1」。Stage 1.5 被淘汰了。
  • 主要選單檔,/boot/grub/grub.cfg,不應再被手動編輯,即使是由「root」身份。
  • grub.cfg 會在任何有更新、核心被加入/移除或是使用者執行 update-grub 的時候被覆寫。
  • 可使用的 Linux 核心清單將會參考在 /boot 目錄下的檔案自動產生。並非像以前需要編輯一個 menu.lst 檔案中的清單。執行「update-grub」來更新此清單。
  • 使用者可以編輯一個客製化檔案,/etc/grub.d/40_custom,在其中使用者可放入自己的選項。此檔案將不會被覆寫。
  • 主要用來改變顯示設定的設定檔是 /etc/default/grub
  • 有好幾個檔案用來設定選單 - 上面提到的 /etc/default/grub,還有所有在 /etc/grub.d/ 目錄下的檔案。
  • 分割區編碼方式變更。現在第一個分割區是 1 而不是 0。然而第一個裝置依然是 0(沒有改變)。
  • 無論何時執行 update-grub 指令時,都會自動搜尋其他作業系統,例如 Windows。
  • update-grub 指令執行前,所有設定檔中變更的設定都不會生效。

2010/10/8 12:04
應用擴展 工具箱
安裝
會員二級
註冊日期:
2009/4/25 13:55
所屬群組:
已註冊使用者
等級: 6
HP : 0 / 138
MP : 19 / 4188
EXP: 55
離線
GRUB 2 會在全新安裝的 Ubuntu 10.04 中預設安裝。從 Ubuntu 9.04 Jaunty Jackalope 升級至 9.10,將保留原本的 GRUB,除非使用者選擇升級至 GRUB 2。若使用者想要的話,之前版本的 Ubuntu 可以升級至 GRUB 2 。

您可以透過 Synaptic 或是從命令列來檢查目前安裝的版本。打開終端機(應用程式 > 附屬應用程式 > 終端機)並輸入以下指令:
grub-install -v

GRUB 2 應該會顯示版本編號 1.96 或是更新。傳統 GRUB 版本為 0.97。

預設安裝

GRUB 2 將會是 Ubuntu 9.10 Karmic Koala 可開機光碟預設安裝的開機載入程式。
  • GRUB 2 套件為 grub-pcgrub-common 套件也將會一併安裝。
  • grub2 是過渡期虛擬套件。他可被安全移除,且不會在 Synaptic 中顯示為已安裝。

升級至 GRUB 2


在 Ubuntu 9.10 或更早期的版本將 GRUB(傳統)升級至 GRUB 2 是相當容易的。重點在於,在使用者確認進行完全的轉換前,升級過程將提供一個程序來確認 GRUB 2 能在您的機器上工作。然而請注意到開發者決定不要在預設的升級動作中自動升級至 GRUB 2。升級至 Ubuntu 9.10 的使用者若想要的話可以繼續沿用 GRUB。
  • 在安裝 GRUB 2 之前,更新套件庫索引以確保系統有最新的軟體套件列表。一般在終端機中透過 sudo aptitude update 指令或是透過圖形化使用者介面套件管理程式,如 Synaptic,來更新列表。較舊的 GRUB 套件可能未包含早期版本的一些錯誤修正更新。
  • 欲升級至 GRUB 2 請安裝「grub-pc」套件。此套件可由 Synaptic 中安裝,或是執行以下指令。一旦開始安裝,一份簡單的程序會引導使用者進行其餘的安裝過程:

    sudo aptitude install grub-pc
  1. 在第一個提示中,閱讀這些訊息,按下 tab 移至「OK」並按下 ENTER。
  2. 在選擇「OK」後,下一個選項允許使用者在正常的 GRUB 選單中透過新增一個選項來測試 GRUB 2。選擇「Yes」將在 GRUB 選單中增加一個 Chainload 選項。當下次使用 GRUB 開機時,使用者可以選擇正常的 GRUB 選項或是將控制權透過 Chainload 選項轉移至 GRUB 2。
  3. 下一步將會把來自 GRUB 的 menu.lst 中的段落匯入至「Linux command line」(如下圖),或許還會匯入至「Linux default command line」。這些項目允許使用者輸入任意的特殊指令,例如 quiet, splash, noapic 或是其他類似的指令。GRUB 2 將會自動匯入這些設定。通常使用者應該要接受任何現有的選項並選擇「OK」。若有需要,選項可於稍後加入。更多細節請參考設定 GRUB 2 小節。

      當安裝在一個全新磁碟上,您可能需要標記所選的分割區為可開機的
  4. 當系統已安裝完成 GRUB 2,使用者可重新啟動並看到已更新的 GRUB 傳統選單歡迎畫面。如圖所示,使用者將會看到一個「Chainload」選項將會測試 GRUB 2 安裝。選擇 Chainload 選項將會把控制權轉移至 GRUB 2 並顯示 GRUB 2 選單。

    4a. 在選定選項的時候 Jaunty 使用者可能會碰到一個「無法辨識的裝置字串 (Unrecognized device string)」Error 11。如果發生,按下「e」直到您看到一行開頭為「grub edit>root」的文字。把「root」改為「uuid」,按下 ENTER,然後按「b」來啟動。更多關於 Error 11 的細節可以在命令列和救援模式小節中找到。
  5. 測試新選項並注意到 Grub 1.9x 版本編號(新增高亮度部份)。
  6. 若 GRUB 2 選單功能正常,使用者可在任何時間執行以下指令以升級至 GRUB 2:

    sudo upgrade-from-grub-legacy



    在安裝期間,使用者可能會需要提供選擇,決定要將 GRUB 2 安裝在哪個裝置上。使用上/下鍵來選擇一個裝置(sda, sdb 等等),然後使用空白鍵來選定該裝置。一旦至少一個以上的裝置被選擇後,使用 TAB 鍵將 OK 反白,然後按下 ENTER。未成功選擇一個裝置將會導致 GRUB Error 15 錯誤產生並導致安裝失敗。
    在成功升級至 GRUB 2 之後,會有一個訊息告知使用者有些 GRUB 傳統設定檔依然在系統中,並可被移除。此說明包含以下的指令,必須以「root」身份執行:rm -f /boot/grub/menu.lst* 以「root」執行 rm 指令時請特別慎重。不正確輸入此指令可能導致系統檔案被永久的刪除。

2010/10/8 12:04
應用擴展 工具箱
檔案結構
會員二級
註冊日期:
2009/4/25 13:55
所屬群組:
已註冊使用者
等級: 6
HP : 0 / 138
MP : 19 / 4188
EXP: 55
離線
GRUB 2 包含一個完全修改過的目錄及檔案階層。來自 GRUB 傳統的 menu.lst 不再繼續使用。

欲找出 GRUB 2 安裝位置,使用者可以執行以下指令:
sudo grub-probe -t device /boot/grub 可找到安裝的裝置
sudo grub-probe -t fs_uuid /boot/grub 可找到 UUID。

由 GRUB 2 使用的主要目錄和檔案包含了:

/boot/grub/grub.cfg

這是最相似於 GRUB /boot/grub/menu.lst 的檔案。此檔案中包含了 GRUB 2 選單資訊,但不像 GRUB 的 menu.lstgrub.cfg 檔不該手動編輯。
  • 每個段落明確地由「(### BEGIN)」界定並參考在 /etc/grub.d 目錄中的檔案,由該目錄中的檔案來產生資訊。
  • grub.cfg 由 root 身份執行 update-grub 來更新。update-grub 指令是 sudo grub-mkconfig -o /boot/grub/grub.cfg 的簡化。為了標準化,使用 update-grub 指令,加上 sudo 以 root 權限執行。
  • 此檔案將會在核心安裝/更新時或是其他會影響到它的輸出時自動更新。
  • 預設情況下,還有無論何時當 update-grub 指令執行時,此檔案會被設定為「唯讀」。這是刻意保持的狀況,讓此檔案無法被手動編輯。
使用者也會在 /boot/grub 目錄下看到許多 *.mod 檔案。這些檔案代表 GRUB 2 的模組化本質並依照 GRUB 2 開機載入程式的需求而載入。

/etc/default/grub
  • 此設定檔包含以前在 GRUB 傳統的 menu.lst 前半部段落以及每行核心設定後面的物件資訊。在此檔案中的條目可以由具有管理者(root)權限的使用者編輯,並會在更新時合併至 grub.cfg 中。具體的設定選項可以在此小節稍後的設定 GRUB 2 部份中找到詳細資訊。

/etc/grub.d/ (目錄)
  • 在此目錄中的檔案將會於執行 update-grub 指令的時候讀取,並將其中的指令合併至 /boot/grub/grub.cfg 中。
  • grub.cfg 選單中的選單選項順序是依照在此目錄中檔案的順序來決定。具有較小數字前綴檔名的檔案將會先執行。10_linux 將會在 20_memtest 之前執行,而 40_custom 將在最後執行。若有檔名全為英文字母名稱,那麼將會在數字名稱的檔名後執行。
  • 自訂選項可以加入在 40_custom 檔案中,或新建立的檔案中。自訂檔案開頭為 06_ 將會出現在選單的最上方,因為他的字母排序將會在 10_40_ 之前。
  • update-grub 執行過程中只有可執行檔會輸出至 grub.cfg
  • 在此目錄中的預設檔案為:
    • 00_header 設定初始顯示項目,例如圖形模式、預設選項、時間限制等等。這些設定資訊一般由 /etc/default/grub 中匯入。使用者一般不需要對此檔案做任何更動。
    • 05_debian_theme 此檔案中的設定用來設定開機影像、文字顏色、高亮度選項及佈景主題。在沒有開機影像的情況下,此檔案會設定一個單色的佈景主題來顯示初始選單畫面。如何設定字型顯現及開機影像將會在開機影像和佈景主題小節中討論。
    • 10_hurd 指定 Hurd 核心位置。目前未使用。
    • 10_linux 指定作業系統目前使用中的 root 裝置核心位置。此資訊將會取用來建立這些核心顯示在選單中的名稱。因為有 10_linux 中的指令,我們需要(甚至幾乎不可能)手動來建立顯示在選單中的核心名稱列表。注意:若您不想要所有的舊核心版本全都顯示在選單中,將那些檔案從 /boot 中移除。
    • 20_memtest86+ 搜尋 /boot/memtest86+.bin 並將之包含在 GRUB 2 開機選單選項中。目前沒有選項能將此條目從開機選單中移除。memtest86+ 選項顯示可透過移除此檔案的執行權限:sudo chmod -x /etc/grub.d/20_memtest86+ 接著執行 sudo update-grub 來屏蔽。
    • 30_os-prober 此檔案使用 os-prober 來搜尋 Linux 和其他作業系統。結果將會依據此檔案中的內容而放至 grub.cfg 中。此檔案被劃分成四個段落,代表由命令稿所處理的四種作業系統類型:Windows, Linux, OSX 和 Hurd。此檔案中的變數用來指定在 /boot/grub/grub.cfg 和 GRUB 2 選單中的名稱顯示格式。熟悉基本命令稿的使用者可以修改這些變數來改變選單選項的顯示格式。此外,使用者可以插入任何選項至 /etc/default/grub 中以關閉這個命令稿。(參考下方)os-prober 預設忽略任何具有 dmraid 簽名的磁碟,可藉由 sudo dmraid -r -c 來列出。
    • 40_costom 用來加入自訂選單選項的樣板,將會在執行 update-grub 指令時嵌入至 grub.cfg 中。此檔案中的內容,在「exec tail -n +3 $0」這一行和預設的註解後,會毫無改變地直接匯入至 /etc/default/grub.cfg 中。
    • 在這些目錄中的檔案必須要設為可執行才能被 update-grub 使用。沒有設為可執行的檔案將會被忽略。欲將檔案設為可執行,執行 sudo chmod +x filename

2010/10/8 12:05
應用擴展 工具箱
設定 GRUB 2
會員二級
註冊日期:
2009/4/25 13:55
所屬群組:
已註冊使用者
等級: 6
HP : 0 / 138
MP : 19 / 4188
EXP: 55
離線
設定變更通常會修改 /etc/default/grub/etc/grub.d 目錄中的自訂檔案。/boot/grub/grub.cfg 檔不應由使用者直接編輯;此檔案由設定稿來變更。

  某些最常見的變更,例如預設的作業系統/核心和選單逾時,可以經由一個圖形化使用者介面應用程式「StartUp-Manager」來修改。如何安裝及使用此應用程式的相關訊息請參考社群文件 StartUpManager

/etc/default/grub(檔案)
  • 變更預設設定的主要設定檔。在安裝時,以下內容可由使用者變更:
  • GRUB_DEFAULT- 設定預設選單選項。選項可以是數字、完整的選單選項文字或是「saved」。
    • GRUB_DEFAULT=0 以選單位置來設定預設選單選項。如同 GRUB,在 grub.cfg 中的第一筆「選單選項」為 0,第二筆為 1,餘類推。
    • GRUB_DEFAULT="xxxx" 一個完全相同的選單條目,包含雙引號,也可被使用。在此例中,選單中的位置不會有影響。例如:GRUB_DEFAULT="Ubuntu, Linux 2.6.31-9-generic"
    • GRUB_DEFAULT=saved
      • 本段中的資訊應用於 GRUB 1.98 及之後版本中。
      • 啟用「grub-reboot」和「grub-set-default」指令來設定預設作業系統。
      • 預設作業系統將不會經由來自選單中的互動式選擇而被設定。
      • grub-set-default 設定預設開機選項直到有所變更。
        • 格式為 sudo grub-set-default X,此處的 X 代表選單選項的位置(第一筆由 0 開始)或是完全一致的選項字串。例如:sudo grub-set-default 3 將使用選單選項位置,或是 sudo grub-set-default "Ubuntu, Linux 2.6.32-15-generic" 表示選單選項字串。
        • 欲取得現存的選單選項選擇數字(由 0 開始)或是選單選項「字串」,執行 grep menuentry /boot/grub/grub.cfg
      • grub-reboot 此指令只設定下一次開機時的預設開機選項。指令格式與 grub-set-default 相同(參考上面)。
  • GRUB_SAVEDEFAULT= 若設定為 true 則上次所選擇的開機選項將會自動成為下次開機時的預設值。
    • 不需要執行指令來設定預設作業系統。
    • 任何時間只要手動選擇 GRUB 2 選單中的選項,它就會變為預設作業系統。
    • 若您的 /boot 目錄位於 LVM 分割區或是 RAID 上,此選項會無作用
  • GRUB_HIDDEN_TIMEOUT=0
    • 此設定用來決定 GRUB 2 選單會有多長時間不被顯示。當螢幕是空白時,使用者可以按下任何鍵以顯示選單。
    • 預設狀態下若只有存在一個作業系統時才會隱藏選單。如果使用者只有一個 Ubuntu 想要顯示選單,那麼在此選項最前方加上一個 # 符號來關閉此隱藏選單功能。
    • 從 GRUB 1.97~beta - Karmic 使用的版本開始,選單能否包含空白螢幕的倒數延遲取決於 GRUB 2 是否找到多重作業系統。
      多重作業系統使用者注意:若執行 /etc/grub.d/30_os-prober 時,GRUB 2 的 os-prober 發現額外的作業系統,隱藏選單的 timeout 功能會依照某些條件狀況而關閉。這也會同時關閉開機時按住 SHIFT 以顯示選單的功能。多重作業系統的使用者想要隱藏選單的話,可以在各大論壇中(例如:ubuntuforums)找到如何編輯的文件,以在開機過程中加入隱藏倒數的功能。
    • GRUB_HIDDEN_TIMEOUT=0 在單一作業系統電腦中。
      • 不會有選單顯示。系統將會立刻以預設作業系統開機。
      • 只有一個作業系統識別出來的狀況下,這是預設的設定。
        • 在此狀態下若想顯示選單,就在此行最前方加上 # 符號並確認 GRUB_TIMEOUT 設定為正整數。
      • 若數值設為 0,會進行一個按鍵狀態檢查來確認 SHIFT 鍵是否被按住。若 GRUB 2 認定在開機過程中 SHIFT 鍵是被按住的,則選單就會顯示出來。這樣能讓使用者有方法在沒有顯示選單的情形下中斷自動開機程序。
    • GRUB_HIDDEN_TIMEOUT=X
      • X 為一正整數(例如 1、5、10 等等)
      • 開機程序將會暫停並顯示空白畫面或是已設定的開機影像 X 秒鐘。在時間結束後,系統將會開機。不會有選單顯示。
      • 當 GRUB_HIDDEN_TIMEOUT 啟用時,可以按下任何鍵以顯示選單。
    • GRUB_HIDDEN_TIMEOUT=
      • 在 = 符號後沒有輸入任何數值
      • 選單將會依據 GRUB_TIMEOUT 設定的數值作為顯示的秒數。
  • GRUB_HIDDEN_TIMEOUT_QUIET=true
    • true 不顯示倒數。螢幕將會是空白的。
    • false 在 GRUB_HIDDEN_TIMEOUT 中設定的時間內,空白螢幕上會顯示一個倒數計時器。
  • GRUB_TIMEOUT=10
    •   此指令將推遲 GRUB_HIDDEN_TIMEOUT 設定,除非 GRUB_HIDDEN_TIMEOUT 被註解掉(#)。若 GRUB_HIDDEN_TIMEOUT 啟用,則當選單顯示時,GRUB_TIMEOUT 將會只運作一次。
    • 設定此值為 -1 將會導致選單持續顯示,直到使用者進行選擇。
    • GRUB 2 選單預設為隱藏,除非其他作業系統被系統偵測到。若沒有其他作業系統,此行將會被註解掉,除非使用者改變之。為了在每次開機時顯示選單,去掉此行的註解並使用 1 或更大的值。
  • GRUB_DISTRIBUTOR=lsb_release -i -s 2> /dev/null || echo Debian
    • 取得選單選項中的描述名稱。(Ubuntu, Xubuntu, Debian 等等。)
  • GRUB_CMDLINE_LINUX
    • 若存在,無論在一般或是救援模式,此行將匯入任何在 'linux' 註解行中的項目(傳統 GRUB 的「kernel」行)。類似於 menu.lst 中的「altoptions」行。
  • GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
    • 此行將匯入任何在 'linux' 行中的項目(傳統 GRUB 的「kernel」行)。此選項只會附加於一般模式的最後方。類似於 menu.lst 中的「defoptions」行。欲顯示黑色螢幕以及開機行程文字,移除「quiet splash」。若想看到 grub 開機影像及簡短的文字輸出,使用「splash」。選項「acpi=off」,若有需要的話,也可以輸入在此行。
  • #GRUB_TERMINAL=console
    • 移除註解以停用圖形化終端機(只限 grub-pc)
  • #GRUB_DISABLE_LINUX_UUID="true"
    • 若您不想讓 GRUB 傳遞「root=UUID=xxx」參數給 Linux 時,移除此註解。
    • 這裡有一個 bug,若使用者移除最前面的註解符號,則 true 必須要有雙引號包起來以使得此選項生效。雙引號預設並沒有出現,使用者必須手動加入。
  • #GRUB_GFXMODE=640x480
    • 您可移除 # 符號來啟用此行。此選項會設定圖形化選單的解析度(選單文字大小)。它將提供使用者的顯示卡所支援的解析度(例如 640x480, 800x600, 1280x1024 等等)。此設定只套用於開機選單顯示,而不是完成開機後的作業系統解析度。
      • 小技巧:在 GRUB 2 中設定與作業系統相同的解析度將會稍微減少開機所需時間。
    • 雖然並不是必要,使用者可以指定色彩深度,附加在解析度設定之後。一個例子像是 1280x1024x24 或 640x480x32。
    • 使用者可以加入多個解析度。若 GRUB 2 無法使用第一個選項,它會試著使用下一個設定。設定由逗號分開。例如:1280x1024x16,800x600x24,640x480
    • 若有使用開機影像,請確定解析度設定和開機影像大小相容。
    • 若使用的選項導致在執行 update-grub 時有「無法找到 (not found)」訊息,試著加上或變更色彩深度設定。
    • 能夠在 GRUB 2 中使用的解析度可透過在 GRUB 2 命令列模式下鍵入 vbeinfo 得知。此命令列模式可在 GRUB 2 選單畫面顯示時按下「c」鍵進入。
    • 若此行被註解掉(#)或是解析度無法使用,GRUB 2 將使用由 /etc/grub.d/00_header 中的預設設定。
    • 欲參考關於使用開機影像時改變解析度的指南請參考開機影像和佈景主題小節。
  • GRUB_DISABLE_LINUX_RECOVERY=true
    • 加上或移除此行註解來防止「救援」模式核心選項顯示在選單中。若您只想要在其中一個核心有「救援」選項,在 /etc/grub/40_custom 中製作一個特殊選項。
  • GRUB_INIT_TUNE="480 440 1"
    • 當移除註解時,會在 Grub 2 選單顯示前播放一次嗶聲。
    • 格式為節奏 [音調1 持續時間1][音調2 持續時間2]...
      • 節奏只需設定一次,應用於所有持續時間設定。
      • 持續時間60/節奏的結果,當持續時間為 1 而節奏為 60 時,會產生一個長度為一秒鐘的嗶聲。持續時間為 1 節奏為 480 時會產生長度為 0.125 秒的嗶聲。
    • 警告:選單會在聲音播放完畢後才顯示。製作一個冗長的旋律將會讓選單顯示延遲。
    • 在終端機中可以輸入 info grub --index-search play 來讀取線上說明文件。此份文件會說明使用 play file 指令來播放 little-endian 格式製作的旋律。
  • 額外可能包含的指令:
    • GRUB_DISABLE_OS_PROBER=true
      • 啟用/停用 os-prober 對其他分割區作業系統的檢查,包括 Windows, Linux, OSX 和 Hurd。

2010/10/8 12:06
應用擴展 工具箱
開機顯示行為
會員二級
註冊日期:
2009/4/25 13:55
所屬群組:
已註冊使用者
等級: 6
HP : 0 / 138
MP : 19 / 4188
EXP: 55
離線
GRUB 2 會在任何作業系統前載入。它的模組化元件將在依需求的情形下被載入。選單顯示行為基本上由 /etc/default/grub 來決定。特定選項和格式化指引請參考「設定 GRUB 2」小節。

初始化預設值
  • 若沒有偵測到其他作業系統,GRUB 2 將會直接開機至預設的作業系統中。不會顯示選單。若偵測到其他作業系統,GRUB 2 選單將會顯示。
逾時顯示
  • 選單將會在預定的秒數中顯示。預設選項會以高亮度表示,使用者可以在逾時時間到期前選擇其他選項。預設的逾時時間為 3 秒。計時器會在任何按鍵被按下前或是按下 ENTER 選定高亮度標明的選項前持續計時。若使用者未進行輸入則 GRUB 2 將會在逾時時間到期時以預設選項開機。
  • 當按下任何按鍵時,逾時將會失效,且使用者必須手動進行選擇。
  • 預設選項由 /etc/default/grub 中的 DEFAULT= 來設定;第一筆「選單選項」的值為「0」。
隱藏
  • 不顯示選單選項。若有設定開機影像,將會顯示開機影像。
  • 使用者可以藉由按住 SHIFT 鍵直到選單顯示,以此來中斷開機程序並顯示選單。
    • GRUB 2 會在開機過程中搜尋 SHIFT 鍵按下的訊號。若此鍵按下或是 GRUB 2 無法確認此鍵的狀態,選單將會顯示。
  • 螢幕保持空白但允許顯示選單的時間是由 /etc/default/grub 中的設定來決定。
  • GRUB 2 可以顯示一個倒數計時器以提供剩餘時間的視覺回饋,直到預設的選項被選定。此逾時設定在 /etc/default/grub 中。
  • 在逾時時間結束時,在 /etc/default/grub 中所設定的預設選項將會被選定。
儲存
  • 若在 /etc/default/grub 設定為 DEFAULT=saved,則可以執行 sudo grub-set-default 指令來儲存預設的作業系統。當 /etc/default/grub 設定為 SAVEDEFAULT=true 時也可儲存。在此情況下,預設的作業系統將會保持設定,直到從 GRUB 2 選單中手動選擇新的作業系統或是執行了 grub-set-default 指令。
上次開機失敗或開機至復原模式

若上次開機失敗或開機至復原模式後,選單將會顯示出來直到使用者作出選擇。此情況下在 /etc/default/grub 的倒數時間設定將不會生效。若想改變此特性,必須要修改 /etc/grub.d/00_header(在測試 recordfail 狀態的 if 敘述中,位於 00_header 的末端)。

2010/10/8 12:06
應用擴展 工具箱
自訂選單項目
會員二級
註冊日期:
2009/4/25 13:55
所屬群組:
已註冊使用者
等級: 6
HP : 0 / 138
MP : 19 / 4188
EXP: 55
離線
GRUB 2 允許使用者建立自訂選單選項,在執行 sudo update-grub 時此選項將會自動加入主選單中。在 /etc/grub.d/ 中有一個空的 40_custom 檔可以使用,或是以其當作建立其他自訂選單的範本。這裡有一些自訂選單需要考量的地方:
  • 檔案的名稱將會決定選項在選單中的排序。數字檔名會在前先執行,跟著是文字檔名。
    • 10_linux 選項會出現在 30_os-prober 選項之前,然後跟著是 40_custom 選項,最後是 my.custom.entries
    • 使用者欲將自訂選項排在主選單第一位,可以將檔案命名為 06_xxx 如此一來它將會是選單中的第一筆選項。
  • 檔案必須有可執行權限:sudo chmod +x /etc/grub.d/filename
  • update-grub 指令未執行前,grub.cfg 的內容不會加入新增變更部份。
  • 不像 grub.cfg,自訂檔案可以在任何時間編輯,不是唯讀權限,而且若想要的話可以以使用者為檔案擁有者。
  • 自訂檔案是靜態的。當新的核心加入或移除時其內容將不會被變更(除非內容受使用者加入的命令稿影響)。
  若自訂檔案將 menuentry 放在 grub.cfg 的最上方,使用者也許想要在執行 update-grub 後確認 /etc/default/grubDEFAULT= 設定狀態。確保它依然指到想要的選單選項上。在計數時,/etc/default/grub 第一筆「選單選項」為 0。

建立自訂選單

使用者可選擇由預設的 /etc/grub.d/40_custom 檔來修改或是建立一個新檔。建立一個新自訂選單最簡單的方法為從 /boot/grub/grub.cfg 複製一份使用中的選項。複製之後,在 40_custom 中的內容可剪裁為使用者想要的樣式。
  • 根據預設的範例自訂檔(/etc/grub.d/40_custom)在 /etc/grub.d 中任何自訂檔的頭兩行應該是:

    #!/bin/sh
    exec tail -n +3 $0
  • 使用者可從 /boot/grub/grub.cfg 或是從傳統 GRUB 檔中複製已存在的選單選項。若使用者想從傳統 GRUB 的 menu.lst 中複製:
    • 若使用者從 GRUB 升級至 GRUB 2 則也許可找到一份備份檔在 /boot/grub 目錄下。
    • 以下來自 GRUB 選單中的項目必須修改才能作用:
      • title 更改為 menuentry。此行必須由 { 作為結束
      • root 更改為 set root=
      • kernel 必須改為 linux
      • 任何 partition 命名(sda4, sdb6)必須修改,因為 GRUB 和 GRUB 2 的分割區計數方式不同。GRUB 2 中的第一個分割區為 1,不是 0。裝置依然由 0 開始計數。
      • 仔細檢視任何作用中的 GRUB 2 menulist 條目格式以確保使用正確的格式。
  • 一般 menuentry 建構規則:
    • 第一行一定由 menuentry 開頭,並以 { 結束
    • 大括號之間的區域就是會出現在 GRUB 2 的內容。依照需求編輯。
    • menuentry 最後一行一定是 }
    • 每行最後面不要留下空白
    • set root= 行應該指到 GRUB 2 的 /boot 位址(sdXY)
    • linux 行中的 root 應指向系統分割區。
      • 若 GRUB 2 無法找到指定的核心,試試看以裝置名稱來取代 UUID(例如:/dev/sda6)。
  • 一份從 grub.cfg 複製來由使用者修改過的選項範例可能會看起來像這樣:

    menuentry "My Default Karmic" {
    set root=(hd0,1)
    search --no-floppy --fs-uuid --set cb201140-52f8-4449-9a95-749b27b58ce8
    linux /boot/vmlinuz-2.6.31-11-generic root=UUID=cb201140-52f8-4449-9a95-749b27b58ce8 ro quiet splash
    initrd /boot/initrd.img-2.6.31-11-generic
    }
  • 一份由網站上的指令將系統還原光碟(SystemRescueCD)安裝為硬碟版(在 sda8 上)的選項範例:

    menuentry "System Rescue CD" {
    set root=(hd0,8)
    linux /sysrcd/rescuecd subdir=sysrcd setkmap=us
    initrd /sysrcd/initram.igz
    }
  • 一份連鎖載入另一個 GRUB 開機載入程式的選項範例:

    menuentry "Grub 1 Bootloader" {
    set root=(hd0.8)
    chainloader +1
    }

2010/10/8 12:07
應用擴展 工具箱
備用模式
會員二級
註冊日期:
2009/4/25 13:55
所屬群組:
已註冊使用者
等級: 6
HP : 0 / 138
MP : 19 / 4188
EXP: 55
離線
Grub 2 可以被設定為若預設選單項目因某些原因而開機失敗時,退回至先前成功開機的選單項目。這個網頁(德文)可以找到一個範例稿以達成此目的。

2010/10/8 12:08
應用擴展 工具箱

(1) 2 3 4 »

 [無發表權] 請登錄或者註冊


可以查看帖子.
不可發帖.
不可回覆.
不可編輯自己的帖子.
不可刪除自己的帖子.
不可發起投票調查.
不可在投票調查中投票.
不可上傳附件.
不可不經審核直接發帖.