GRUB支持多操作系統引導。用GRUB引導后可以進入命令行模式或者菜單模式,可以通過靈活的命令行模式選擇引導各個分區的操作系統,指定引導參數。GRUB支持三種引導方法,一種是直接引導操作系統內核,另一種是通過chainload進行間接引導,第三種就是通過網絡引導操作系統。
對于GRUB能夠支持的Linux,FreeBSD,OpenBSD,NetBSD,GUN Mach等可以通過直接引導完成,但是對于GRUB不支持的操作系統(如Windows),需要用第二種方法chainload來完成。下面就分別來看看這幾種引導方法:
(1) 直接引導
配置過程通常如下:
a) 用root命令設置包含操作系統內核的根設備
b) 用kernel命令裝載內核映象文件,如果這個內核引導的時有參數的話,可以直接將參數加在內核文件名的后面
c) 用module或modulenounzip裝載內核模塊
d) boot開始引導
(2) chainload引導
a) 設置GRUB的根設備,用rootnoverify (hdx,y)指定
b) 開始引導,用chainloader +1指定,此處“+1”是指示GRUB讀入分區的第一個扇區的引導記錄。
c) 執行boot開始引導
以上是一般的chainloader方式,對于DOS和WINDOWS,可以簡單地用兩條指令進行引導:chainloader (hdx,y)+1,然后boot,其中x,y用來指明所在分區號。
(3) 從網絡引導:
為了使GRUB能夠支持從網絡引導,需要在編譯時打開網絡支持選項(請參考源文件中的netboot/README.netboot)。另外,要在網絡中設置兩個服務:動態IP服務(BOOTP、DHCP或RARP)和FTP服務。然后,分別針對不同的服務器BOOTP,DHCP或RARP運行bootp,dhcp或rarp。如果一切設置無誤的話GRUB就會給出IP,IP netmask和TFTP服務器的IP和網關的IP地址。最后,從網上得到操作系統的映象文件。下面是一個例子:
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