GRUB支持多操作系統(tǒng)引導(dǎo)。用GRUB引導(dǎo)后可以進(jìn)入命令行模式或者菜單模式,可以通過靈活的命令行模式選擇引導(dǎo)各個分區(qū)的操作系統(tǒng),指定引導(dǎo)參數(shù)。GRUB支持三種引導(dǎo)方法,一種是直接引導(dǎo)操作系統(tǒng)內(nèi)核,另一種是通過chainload進(jìn)行間接引導(dǎo),第三種就是通過網(wǎng)絡(luò)引導(dǎo)操作系統(tǒng)。
對于GRUB能夠支持的Linux,F(xiàn)reeBSD,OpenBSD,NetBSD,GUN Mach等可以通過直接引導(dǎo)完成,但是對于GRUB不支持的操作系統(tǒng)(如Windows),需要用第二種方法chainload來完成。下面就分別來看看這幾種引導(dǎo)方法:
(1) 直接引導(dǎo)
配置過程通常如下:
a) 用root命令設(shè)置包含操作系統(tǒng)內(nèi)核的根設(shè)備
b) 用kernel命令裝載內(nèi)核映象文件,如果這個內(nèi)核引導(dǎo)的時有參數(shù)的話,可以直接將參數(shù)加在內(nèi)核文件名的后面
c) 用module或modulenounzip裝載內(nèi)核模塊
d) boot開始引導(dǎo)
(2) chainload引導(dǎo)
a) 設(shè)置GRUB的根設(shè)備,用rootnoverify (hdx,y)指定
b) 開始引導(dǎo),用chainloader +1指定,此處“+1”是指示GRUB讀入分區(qū)的第一個扇區(qū)的引導(dǎo)記錄。
c) 執(zhí)行boot開始引導(dǎo)
以上是一般的chainloader方式,對于DOS和WINDOWS,可以簡單地用兩條指令進(jìn)行引導(dǎo):chainloader (hdx,y)+1,然后boot,其中x,y用來指明所在分區(qū)號。
(3) 從網(wǎng)絡(luò)引導(dǎo):
為了使GRUB能夠支持從網(wǎng)絡(luò)引導(dǎo),需要在編譯時打開網(wǎng)絡(luò)支持選項(請參考源文件中的netboot/README.netboot)。另外,要在網(wǎng)絡(luò)中設(shè)置兩個服務(wù):動態(tài)IP服務(wù)(BOOTP、DHCP或RARP)和FTP服務(wù)。然后,分別針對不同的服務(wù)器BOOTP,DHCP或RARP運行bootp,dhcp或rarp。如果一切設(shè)置無誤的話GRUB就會給出IP,IP netmask和TFTP服務(wù)器的IP和網(wǎng)關(guān)的IP地址。最后,從網(wǎng)上得到操作系統(tǒng)的映象文件。下面是一個例子:
grub> bootp
Probing……[NE*000]
NE2000 base ……
Address: 192.168.110.23 Netmask: 255.255.255.0
Server: 192.168.110.14 Gateway: 192.168.110.1
grub> root (nd)
grub> kernel /tftproot/gnumach.gz root=sd0s1