GNUGRUB
GNU GRUB(簡稱「GRUB」)是一个來自 GNU 專案的啟動載入程式。GRUB 是偌啟動規範的實現,伊允准使用者會當佇電腦內同時有誠濟作業系統,閣佇電腦啟動的時陣選擇希望執行的作業系統。GRUB 通用選擇作業系統分割區頂懸的無仝核心,也會當用向遮的核心傳達啟動參數。
GNU GRUB 進前身為Grand Unified Bootloader。伊主要是用類似 Unix 系統;仝大多數 Linux 發行版仝款,GNU 系統嘛採用 GNU GRUB 成做伊的啟動器。Solaris 對十六分之一版開始佇 x 八十六系統上嘛採用 GNU GRUB 成做啟動器。
特性
GRUB 會當動態組態;伊佇咧啟動的時陣載入組態資訊,並允准佇啟動時間來修改,如選擇無仝款的核心佮 initrd。為此目的,GRUB 提供一个簡單的類似 Bash 的命令列介面,伊允准使用者編寫新的啟動順序。
GRUB 非常輕便。伊支援濟種可執行格式;除了伊會當適用支援加啟動的作業系統外,閣通過鏈式啟動功能支援諸如 Windows 和 OS / 之二之類的作業系統。GRUB 支援大部份的 Unix 檔案系統,嘛支援 Windows 適用的 FAT 和 NTFS 檔案系統,閣支援 LBA 模式。GRUB 允准使用者檢視伊支援的檔案系統內檔案的內容。
GRUB 有足濟種使用者介面。多數 Linux 發行版利用 GRUB 對圖形介面的支援,提供予客製化的帶有背景圖樣的啟動選單,有時嘛支援滑鼠。GRUB 會過 GFX 支援閣較美觀的啟動畫面佮啟動選單。通過著 GRUB 的文字介面的設定,會當通過頭序列埠實現遠端終端啟動。
GRUB 會當對網路頂面載作業系統鏡像,所以支援無盤系統。GRUB 支援佇啟動作業系統進前解壓伊的鏡像。
佮其他閣啟動器無仝款,GRUB 會當通過 GRUB 提示符直接佮使用者進行互動。載入作業系統的前,佇咧 GRUB 文字模式螢幕下鍵入 c 鍵會當進入 GRUB 命令列。佇咧無作業系統或者是有作業系統無 " menu . lst "(抑是 grub . cfg)設定檔的系統上,仝款會當進入 GRUB 提示符。通過類似 bash 的命令,GRUB 提示符允准使用者手工啟動任何作業系統。共合適的命令記錄佇 " menu . lst "(抑是 grub . cfg)檔案里,會當自動啟動一个作業系統。
GRUB 有誠豐富的終端命令,佇咧命令列下使用遮的命令,使用者會使檢視硬碟分割區的細節,修改分割區設定,臨時重新對映磁碟順序,對任何使用者定義的設定檔啟動,以及檢視 GRUB 支援的檔案系統上的其他啟動器的組態。所以,就算講毋知影一台電腦安裝矣啥,嘛會當對外部裝置啟動一个作業系統。
GRUB 採用捲螢幕選擇想欲啟動的作業系統。通過向 " menu . lst "(抑是 grub . cfg)檔案中添加相關的資訊,GRUB 會當控制百五抑是閣較濟的啟動選項,佇啟動的時陣用方向鍵來進行選擇。
通過鏈式啟動,一个啟動器會當振動另外一个啟動器。GRUB 通過二到三行的命令就會使對 DOS、Windows、Linux、BSD 和 Solaris 系統啟動。
就算講 GRUB 為類 Unix 系統進行矣編譯佮打包,但是嘛有供 DOS 和 Windows 使用的變種 GRUB 四 DOS 等。GRUB 閣會使無附帶任何作業系統而成做孤立系統安裝。對 CD 上啟動的時陣運用 GRUB 需要一个檔案,對軟碟、硬碟佮 USB 裝置上啟動時需要兩个檔案。遮的檔案會當佇任何支援 GRUB 的 Linux CD 揣著,使用者會當真容易的揣著𪜶。
新的 GRUB 二(GRUB 二版)為 GRUB 的重寫版本,伊是 GRUB 的大革新。GRUB 二著 Linux 系統做更加濟的優化,支援閣較濟的功能,如動態的載入模組(啊若佇進前的 GRUB 中,新增加或者是刪除模組愛重新編譯 GRUB)等。GRUB 二的版本號做空吱九八抑是閣較懸;舊的 GRUB 的版本號是零交九七抑是閣較低,嘛予人號做「GRUB Legacy」抑是「GRUB 一」等。GRUB 二的組態、命令等等較 GRUB Legacy 有一定的無仝款。
啟動的過程
電腦啟動了後,BIOS 將走揣頭一个會當啟動的裝置(通常為硬碟), 而後自 MBR 中載入啟動程式,然後共控制交予這段代碼。MBR 位佇硬碟的前五百十二位元組內。
GRUB 頭一版本
GRUB 彼號步數一包含佇 MBR 中。因為是受著 MBR 的大細限制,弄青一个所做的差不多只是假載 GRUB 的後一步(囥佇硬碟的其他位置)。 弄青一既然會當直接裝載步數二,嘛會當裝載步數一爿五:GRUB 的步數是一丈五包含佇咧 MBR 後壁的三十千位元組內面。撇步一鋪五載入步驟二。
當做步驟啟動了後,伊會呈現一个介面來予使用者選擇啟動的作業系統。這步通常採用的是圖形選單的形式,若是圖形方式無法度用抑是使用者需要閣較進階的控制,會用得使用 GRUB 的命令列提示,通過伊,使用者會使指頭仔指定啟動參數。GRUB 閣會當設定超過時陣自動對某一个核心啟動。
GRUB 第二版本
佮 GRUB 頭一版相仝的是,_ boot . img _ 若像步數仝款佇 MBR 抑是講佇啟動分割區內底,猶毋過,伊會當對任何 LBA 四十八位址的一个磁區內底讀取,伊(_ boot . img _)將讀取 _ core . img _(產生佇咧 _ diskboot . img _)的第一个磁區以來後壁讀取 _ core . img _ 賰的部份。_ core . img _ 正常情況下佮步數一丈五儲存佇仝一个所在並且有仝款的問題,可是,當伊予移動到一个檔案系統抑是一个純粹的分割區的時會比佇步數一丈五移動抑是刪除引起閣較少的麻煩。一旦完成讀,_ core . img _ 會讀預設的設定檔和其他需要的模組。
當 GRUB 振動了後
一旦選擇啟動選項,GRUB 共選擇的核心載入記持體閣共控制交予核心。佇這个步驟內底,對於 Windows 之類不支援多啟動標準的作業系統,GRUB 嘛會當通過鏈式啟動共控制傳予其他的啟動器。佇這个情形下,其他作業系統的啟動程式予人 GRUB 儉落來;佮核心無仝,其他作業系統親像直接自 MBR 啟動。類似 Windows 的啟動選單,凡勢是另外一个啟動管理器,伊允准佇濟濟的無支援加啟動的作業系統內底做進一步的選擇。(佇咧已經有 Windows 的系統頂懸,抑是包括幾个 Windows 版本的系統頂懸安裝現代的 Linux 毋修改原作業系統,就算是這款的狀況。)
安裝
GRUB 的一个重要的特性是欲安裝伊毋免依附一个作業系統;猶毋過,這種安裝需要一个 Linux / Windows 副本。因為單獨工作,GRUB 實質上是一个微型系統,通過鏈式啟動的方式,伊會當啟動所有安裝的主流作業系統。
佮 LILO 無仝,修改 GRUB 的設定檔後,毋免共 GRUB 重新安裝著 MBR 抑是講某一个分割區。
佇咧 Linux 中,「 grub-install」命令是用來共 GRUB 彼號步數一安裝甲 MBR 抑是分割區內底的。GRUB 的設定檔、弄青以及其他的檔案著愛安裝到某一个會當用的分割區。若遮的檔案抑是分割區袂當用,流程一將共使用者留佇咧命令列介面。
GRUB Legacy 的設定檔做 ` / boot / grub / menu . lst ` 抑是 ` / boot / grub / grub . conf `。GRUB 二的設定檔做 ` / boot / grub / grub . conf `。
除了硬碟外口,GRUB 嘛會當安裝著光碟、軟碟佮隨身碟等移動媒介中,按呢就會當啟動一台無法度對硬碟啟動的系統。
參見
- Windows Boot Manager
- NTLDR
- LILO
- UEFI
- BIOS
參考資料
- Brady , Pádraig . Details of GRUB on the PC . pixelbeat . org . [二千空六孵十一孵二十二] .(原始內容存檔佇兩千空六鋪十一鋪二十七).
- Okuji , Yoshinori . GNU GRUB . gnu . org . [二千空七孵十一孵二十九] .(原始內容存檔佇兩千空七堵十一由二十六).
外部連結
- GNU GRUB 頭頁(英文)
- GNU GRUB 官方手冊(英文)
- GRUB 二中文指南(繁體中文)