基本功能
GNUGRUB和GRUB是GRandUnifiedBootloader的縮寫,它是一個多重操作系統啟動管理器。用來引導不同系統,如windows,linux。在X86架構的機器中,Linux、BSD或其它Unix類的作業系統中GRUB、LILO是大家最為常用,應該說是主流。
Windows也有類似的工具NTLOADER;比如我們在機器中安裝了Windows98後,我們再安裝一個WindowsXP,在機器啟動的會有一個選單讓我們選擇進入是進入Windows98還是進入WindowsXP。NTLOADER就是一個多系統啟動引導管理器,NTLOADER同樣也能引導Linux,只是極為麻煩罷了。
在PowerPC架構的機器中,如果安裝了Linux的Powerpc版本,大多是用yaboot多重引導管理器,比如Apple機用的是IBMPowerPC處理器,所以在如果想在Apple機上,安裝Macos和LinuxPowerpc版本,大多是用yaboot來引導多個作業系統。
因為X86架構的機器仍是主流,所以目前GRUB和LILO仍然是我們最常用的多重作業系統引導管理器。
引導過程
由硬碟啟動時,BIOS通常是轉向第一塊硬碟的第一個扇區,即主引導記錄(MBR)。裝載GRUB和作業系統的過程,包括以下幾個操作步驟:
裝載記錄
基本引導裝載程式所做的唯一的事情就是裝載第二引導裝載程式。
裝載Grub
這第二引導裝載程式實際上是引出更高級的功能,以允許用戶裝載一個特定的作業系統。
裝載系統
如linux核心。GRUB把機器的控制權移交給作業系統。
不同的是,微軟作業系統都是使用一種稱為鏈式裝載的引導方法來啟動的,主引導記錄僅僅是簡單地指向作業系統所在分區的第一個扇區。
設備名稱
IDE硬碟用hd開始,SCSI硬碟用sd開頭。軟碟用fd開頭。命名和linux不大一樣。是從0算起。
(hd0,0)。表示C糟。
(hd0,4)。表示D糟。當然這裡指的是(第一個邏輯分區,如果D糟也是主分區,應該寫成hd0,1)
系統的第一個硬碟驅動器表示成(hd0),其上的第一個分區表示為(hd0,0),也就是說對於硬碟,採用(hdx,y)的形式來表示,x、y都是從0開始計數的,x表示硬碟號,y表示分區號。
由於主分區只能有四個,所以第一硬碟的四個主分區分別用(hd0,0)~(hd0,3)來表示;邏輯分區則從(hd0,4)開始算,即第一邏輯分區用(hd0,4),第二邏輯分區用(hd0,5)來表示,依次類推。
一般機子的硬碟都是一個主分區,其餘是邏輯分區。因此C糟用(hd0,0),D糟用(hd0,4)來表示。光碟用(cd)表示,第一軟碟機用(fd0)表示。
檔案系統
一些用戶常困惑於GRUB中根檔案系統(rootfilesystem)這一術語的用法。GRUB的根檔案系統與Linux的根檔案系統是沒有關係的!
接口
當GRUB環境開始載入第二步引導裝載程式時,它尋找自己的配置檔案(menu.lst)。當找到配置檔案後,它使用這個配置檔案建立一個要載入的作業系統的選單列表,然後顯示引導選單接口。如果配置檔案沒有被找到,或者如果配置檔案不能讀取,那么GRUB將載入命令行接口。
選單接口
在選單接口上,按[e]鍵,對高亮選單項中的命令進行編輯。按[c]鍵載入一個命令行接口。添加(加在當前行後面(用[o]鍵),加在當前行前(用[0]鍵),編輯(用[e]鍵),刪除(用[d]鍵)。
在所有的改變都完成後,用[Enter]鍵來執行這些命令,並引導作業系統。[Esc]鍵來放棄
命令行接口
命令接口
以下是幾個常用命令:
boot-引導先前已經被指定並載入的作業系統或鏈式裝載程式。
chainloader-將指定的檔案作為一個鏈式裝載程式載入。為了獲取在一個指定分區第一扇區內的檔案,使用+1作為檔案名稱。
displaymem-顯示當前記憶體的使用情況,這個信息是基於BIOS的。這個命令有助於確定系統在引導前有多少記憶體。
initrd-使用戶能夠指定一個在引導時可用的初始RAM盤。當核心為了完全引導而需要某些模組時,這是必需的。
installp-安裝GRUB到系統的主引導記錄。這個命令允許系統重啟時出現GRUB接口。
(警告:install命令將覆蓋主引導扇區中的其他信息。如果命令被執行,那么除了GRUB信息之外的其他用於引導其他作業系統的信息都將丟失。在執行這條命令前,確定你對它有正確的了解。)
kernel-當使用直接載入方式引導作業系統時,kernel命令指定核心從GRUB的根檔案系統中載入。
比如kernel/vmlinuzroot=/dev/hda5
Vmlinuz是核心。。它從GRUB的根檔案系統載入的,如(hd0,0)。同時,後面一個選項被傳給核心。它指出當Linux核心載入時,核心的根檔案系統應該是位於hda5,第一個IDE硬碟的第五個分區。
命令
color-設定在選單中使用的顏色,一種是作為前景色,一種作為背景色。可以簡單地使用顏色名稱,如red/black。比如:
colorred/blackgreen/blue
default-默認項目的標題名稱。如果選單接口逾時,那它將被載入。
fallback-當這個命令被使用時,如果第一次嘗試失敗,那么這個項目的標題名稱將被使用。
hiddenmenu-這個命令被使用時,它不顯示GRUB選單接口,在逾時時間過期後載入默認項。用戶通過按[Esc]鍵,可以看到標準的GRUB選單。
timeout-這個命令設定了在GRUB載入由default命令指定的項目的時間間隔,以秒為單位。
splashimage-它指定在GRUB引導時所使用的螢幕圖像的位置。
title-設定用來裝載一個作業系統的一組特定命令的標題。
字元#用來在選單配置檔案放置注釋。
手動啟動
有時候grub出現問題,不能通過啟動選項啟動目標作業系統,以啟動一個linux為例
按c鍵切換到命令行模式
grub>root(hd0,0)設定根目錄為第一硬碟的第一個分區
grub>kernel/boot/vmlinuz設定核心檔案,有的linux發行版會有一個名為wmlinuz的軟連線指向真正的核心檔案
grub>initrd/boot/initrd設定initrd檔案,也有可能用軟連線代替真正的檔案名稱
grub>boot(hd0,0)從硬碟啟動
以上命令可以用tab鍵補全根據實際情況有所不同