一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Linux操作系統(tǒng)GRUB引導(dǎo)程序配置方法大全 - 技術(shù)文檔 - 新手入門 Linux時代...

 jzj1993 2010-08-21
Linux操作系統(tǒng)GRUB引導(dǎo)程序配置方法大全
 
1. GRUB 介紹
計(jì)算機(jī)在啟動的時候,首先由BIOS中的程序執(zhí)行自檢,自檢通過后,就根據(jù)CMOS
的配置找到第一個可啟動磁盤的MBR中的Boot Loader程序(一般在啟動盤的第一個物理扇區(qū),占416字節(jié)),并把控制權(quán)交給Boot
Loader,由Boot Loader進(jìn)一步完成操作系統(tǒng)內(nèi)核的加載。當(dāng)Boot
Loader找到內(nèi)核之后,就把控制權(quán)交給操作系統(tǒng)內(nèi)核,由內(nèi)核繼續(xù)完成系統(tǒng)的啟動。
可以看出,Boot Loader
是計(jì)算機(jī)啟動中第二個要執(zhí)行的程序,它是引導(dǎo)操作系統(tǒng)的關(guān)鍵程序??梢砸龑?dǎo)操作系統(tǒng)的Boot
Loader主要有LiLo、GRUB以及Windows下的MBR程序。其中,GRUB是目前使用最為廣泛,并且非常優(yōu)秀的一款啟動引導(dǎo)程序。
(1) GRUB特性
q 提供了圖形和文本兩種操作接口
q 提供文本格式可手工修改的配置文件
q 支持動態(tài)加載需要的模塊
q 可以移植到不同的平臺上
q 支持國際化語言,如英文,中文,日文漢文等多字節(jié)語言
q 跨平臺的安裝,允許從另一個平臺上安裝GRUB
q 支持rescue模式,可用于系統(tǒng)無法引導(dǎo)的情況
q 支持多種可執(zhí)行文件格式,支持各種a.out格式和ELF格式
q 多文件系統(tǒng)識別。如BSD FFS,DOS FAT16,F(xiàn)AT32和Linux ext2fs
q 支持壓縮文件的解壓縮。能夠解壓縮被gzip壓縮的文件
q 能夠使用BIOS所檢測到的全部RAM空間
q 支持硬盤的LBA模式,能夠訪問8GB以外的全部硬盤空間
q 支持網(wǎng)絡(luò)引導(dǎo),可以通過TFTP協(xié)議從網(wǎng)絡(luò)上得到操作系統(tǒng)映象文件并引導(dǎo)
(2) GRUB對設(shè)備的命名
首先,GRUB對設(shè)備的命名必須包含在小括號(
)內(nèi);其次,GRUB不區(qū)分IDE硬盤和SCSI硬盤,統(tǒng)一使用hdx,其中x指定BIOS中硬盤的編號,并從0開始計(jì)數(shù),而且IDE硬盤編號小于
SCSI硬盤;第三,GRUB用fdx指定軟盤設(shè)備,x是軟盤驅(qū)動器號。下面是一些GRUB對設(shè)備命名的舉例:
q (fd0)表示第1個軟盤
q (hd0,1)表示第1個硬盤的第2個分區(qū)
q (hd0,0)/boot/vmlinuz表示第1個硬盤的第一個分區(qū)下的boot/目錄下的vmlinuz文件。如果沒有指定某個分區(qū),則表示使用整個設(shè)備,否則只使用指定的分區(qū)
q (hd0,2,a)專用于FreeBSD,F(xiàn)reeBSD有一個slice概念,把一個分區(qū)進(jìn)一步分為幾個slice,此處指明是第1塊硬盤的第3個分區(qū)中的slice a
(3) GRUB的執(zhí)行流程
GRUB的工作原理如圖5.2所示。當(dāng)系統(tǒng)加電后,固化在BIOS中的程序首先對系
統(tǒng)硬件進(jìn)行自檢,自檢通過后,就加載啟動磁盤上的MBR,并將控制權(quán)交給MBR中的程序(stage1),stage1執(zhí)行,判斷自己是否GRUB,如果
是且配置了stage1_5,則加載stage1_5,否則就轉(zhuǎn)去加載啟動扇區(qū),接著,stage2被加載并執(zhí)行,由stage2借助stage1_5驅(qū)
動文件系統(tǒng),并查找grub.conf,顯示啟動菜單供用戶選擇,然后根據(jù)用戶的選擇或默認(rèn)配置加載操作系統(tǒng)內(nèi)核,并將控制權(quán)交給操作系統(tǒng)內(nèi)核,由內(nèi)核完
成操作系統(tǒng)的啟動。
從上面的敘述可以看出,GRUB涉及到幾個重要的文件:
第一個就是stage1。它被安裝在MBR扇區(qū)(0面0磁道的第1扇區(qū)),大小為512字節(jié)(446字節(jié)代碼+64字節(jié)分區(qū)表+2字節(jié)標(biāo)志55AA),它負(fù)責(zé)加載存放于0面0道第2扇區(qū)的start程序。
第二個是stage1_5。stage1_5負(fù)責(zé)識別文件系統(tǒng)和加載stage2,
所以stage1_5往往有多個,以支持不同文件系統(tǒng)的讀取。在安裝GRUB的時候,GRUB會根據(jù)當(dāng)前/boot/分區(qū)類型,加載相應(yīng)的
stage1_5到0面0磁道的第3扇區(qū)。stage1_5是由start加載的。
第三個是stage2。它負(fù)責(zé)顯示啟動菜單和提供用戶交互接口,并根據(jù)用戶選擇或默認(rèn)配置加載操作系統(tǒng)內(nèi)核。同前兩個文件不同,stage2是存放在磁盤上/boot/grub下。
第四個是menu.lst(/boot/grub/grub.conf的鏈接)。
grub.conf是一個基于腳本的文本文件,其中包含菜單顯示的配置和各個操作系統(tǒng)的內(nèi)核加載配置。GRUB根據(jù)grub.conf顯示啟動菜單,提供
同用戶交互界面。GRUB正是根據(jù)用戶選擇或默認(rèn)配置和grub.conf的內(nèi)核配置加載相應(yīng)的內(nèi)核程序,并把控制權(quán)交給內(nèi)核程序,使得內(nèi)核程序完成真正
的操作系統(tǒng)的啟動。
其它重要文件,GRUB除了上面敘述的主要文件之外,還包括支持交互功能的一些磁
盤程序。主要包括/sbin/下的grub、grub-install、grub-md5-crypt和grub-terminfo和
/usr/bin/mbchk,以及/boot/grub下的設(shè)備映像文件(device.map)和菜單背景圖像文件(splash.xpm.gz)。
通過上面的分析總結(jié),可以很容易地看出,GRUB實(shí)際上包含兩部分,一部分被安裝
在磁盤的特殊扇區(qū),另外一部分則以文件的形式存在。要讓GRUB啟動操作系統(tǒng),就必須首先把GRUB的stage1和stage1_5(根據(jù)文件系統(tǒng)自動
選擇是否安裝)安裝到磁盤的特殊扇區(qū),另外,在磁盤的/boot/grub下存在有g(shù)rub.conf、device.map等文件和支持交互的程序,而
且這些程序必須在PATH環(huán)境變量指定的路徑中。具備了這些知識,相信不管是安裝、配置、備份或修復(fù)GRUB都不是件很難的是情。下面,就來逐個講解這些
知識。
2. 編譯安裝GRUB
一般情況下,當(dāng)完成Linux操作系統(tǒng)的安裝后,系統(tǒng)中已經(jīng)安裝好了LILO或
GRUB引導(dǎo)程序。由于系統(tǒng)出現(xiàn)故障或需要更換LILO為GRUB時,需全新或重新安裝GRUB。如何安裝和配置GRUB就是下面要介紹的內(nèi)容。而有時
候,GRUB出現(xiàn)了故障,但并不需要重新安裝,從后面的內(nèi)容中,讀者也可以讀到如何修復(fù)GRUB的知識。
(1) 下載安裝包
可以從ftp://alpha.gnu.org/gnu/grub/下載GRUB的源碼。具體安裝方法請參考下面的內(nèi)容,這里的安裝過程都是在RHEL 4中進(jìn)行的。
(2) 檢查是否安裝GRUB
#rpm -q grub
如果顯示grub-0.95-3.5或其它版本的GRUB的信息,說明系統(tǒng)已經(jīng)安裝了,則執(zhí)行如下命令首先將其卸載:
#rpm -e grub
(3) 編譯源碼安裝
a.) 編譯條件
要編譯GRUB的源代碼,系統(tǒng)必須具備以下條件:
q GCC2.95或者以上版本
q 安裝了GNU Make
q binutils2.9.1.0.23或者個更高版本
q Texinfo 4.0或者更高版本
q Autoconf 2.5x
q Automake 1.7 或者更高版本
b.) 編譯安裝
這里,假設(shè)下載的GRUB源代碼為grub-0.95.tar.gz,并放在~/(當(dāng)前用戶的主目錄)下。通過編譯源代碼安裝GRUB的基本過程如下:
#tar -zxvf grub-0.95.tar.gz #解壓源代碼
#cd grub-0.95 #轉(zhuǎn)入grub目錄
#./configure #生成Makefile文件
#make install #編譯代碼并安裝
(4) 安裝GRUB到MBR
GRUB的工作目錄是在/boot/grub下,而make install并沒將其安裝到/boot/grub。所以,安裝完成后要執(zhí)行如下一些操作:
a) 把/usr/local/share/grub/i386-pc/目錄下的所有文件統(tǒng)統(tǒng)拷貝到/boot/grub/目錄下
#cp /usr/local/share/grub/i386-pc/* /boot/grub/
b) 在/boot/grub下創(chuàng)建grub.conf文件,并建立一個到grub.conf的軟鏈接menu.lst
#cd /boot/grub
#touch grub.conf
#ln -s grub.conf menu.lst
注意!如果已經(jīng)存在grub.conf,就最好不要再次創(chuàng)建,需要時直接修改即可。
c) 確認(rèn)/usr/local/sbin和/usr/local/bin在PATH變量的值中,執(zhí)行如下命令檢查
#env |grep PATH
如果發(fā)現(xiàn)/usr/local/sbin和/usr/local/bin不在PATH變量中,可以通過如下命令修改:
#export PATH=$PATH /usr/local/sbin:/usr/local/bin
d) 安裝GRUB到MBR
GRUB在啟動中,被BIOS調(diào)用,只有放在MBR中才可以被調(diào)用,所以,GRUB要讓BIOS調(diào)用,就必須安裝在MBR中。實(shí)際上是將stage1安裝到MBR中,也可能根據(jù)文件系統(tǒng)選擇安裝了stage1_5。下面,提供幾個安裝GRUB的例子:
#grub-install /dev/hda //將GRUB安裝到第1塊IDE硬盤的MBR
#grub-install /dev/sda //將GRUB安裝到第1塊SCSI硬盤的MBR
#grub-install /dev/fd0 //將GRUB安裝到軟盤
#grub-install /dev/hda1 //將GRUB安裝到第1快硬盤的0扇區(qū),當(dāng)用其它引導(dǎo)程序引導(dǎo)系統(tǒng)時,往往選擇這種方式,以免覆蓋其它引導(dǎo)程序。
e) 在GRUB的命令行模式下安裝GRUB
關(guān)于GRUB命令行模式及其操作方法請參考3小節(jié)的內(nèi)容。在系統(tǒng)顯示啟動菜單時候按下c鍵,或者系統(tǒng)啟動后在命令行執(zhí)行/usr/sbin/grub程序,都可以進(jìn)入GRUB的命令行模式。命令行模式下安裝GRUB的基本過程如下:
q 指定啟動設(shè)備
grub>root (hd0,0) #除了root后必須有空格,別的位置均不能有空格!
此處(hd0,0)是指第1塊硬盤的第1個分區(qū)。如果不能確定包含GRUB的stage1文件的分區(qū),可以通過find指令查找確定:
grub> find /boot/grub/stage1 #查找stage1
GRUB將會查找文件/boot/grub/stage1并顯示包含這個文件的設(shè)備名,這個設(shè)備就是上面要用到的設(shè)備。
q 安裝GRUB
grub> setup (hd0) #除了setup后必須有空格,別的位置均不能有空格!
這條命令將會在第1塊硬盤的MBR安裝GRUB,如果不想在MBR安裝GRUB,而是希望將GRUB安裝在某分區(qū)的引導(dǎo)扇區(qū)的話,可以用下面的命令安裝:
grub> setup (hd0,0) #除了setup后必須有空格,別的位置均不能有空格!
這將會在第1塊硬盤的第1個分區(qū)的引導(dǎo)扇區(qū)安裝GRUB。
q 退出GRUB
grub>quit
f) 重啟機(jī)器,新安裝的GRUB生效
3. GRUB的交互操作
為了方便用戶交互使用GRUB,GRUB提供了交互模式,下面分別作一介紹:
(1) 命令行模式
登陸Linux系統(tǒng)后,在命令行中輸入grub,便可以進(jìn)入到命令行模式。如圖4-3所示。進(jìn)入命令行模式后GRUB會給出一個命令提示符“grub>”,此時就可以鍵入命令,按回車執(zhí)行。此模式下允許類似于Bash shell的命令行編輯功能:
   
    或 光標(biāo)右移一個字符
或 光標(biāo)左移一個字符
到這一行的開頭
或 到行尾
或 刪除光標(biāo)處的字符
或 刪除光標(biāo)左邊的字符
刪除光標(biāo)右邊的所有字符(包括光標(biāo)處的字符)
刪除光標(biāo)左邊的所有字符(包括光標(biāo)處的字符)
恢復(fù)上次刪除的字符串到光標(biāo)位置
或 歷史記錄中的上一條命令
或 歷史記錄中的下一條命令
   
  
啟動時GRUB命令行模式在命令行模式下鍵有補(bǔ)全命令的功能,如果你敲入了命令的前一部分,鍵入系統(tǒng)將列出所有可能以你給出的字符串開頭的命令。如果你給出了命令,在命令參數(shù)的位置按下鍵,系統(tǒng)將給出這條命令的可能的參數(shù)列表。
在計(jì)算機(jī)啟動的時候,GRUB首先顯示啟動菜單,這是如果用戶按鍵盤的“c”鍵,便進(jìn)入如圖4-4所示的命令行模式,它的操作和在Linux的命令行模式是一樣的。
(2) 菜單模式
系統(tǒng)在啟動時,如果找到/boot/grub/menu.lst,則grub顯示grub并進(jìn)入菜單模式,如圖4-4所示。菜單模式下用戶可以選擇要啟動的操作系統(tǒng),或者修改配置。菜單的定義在menu.lst文件中,也可以從菜單模式按鍵進(jìn)入命令行模式,并且可以按鍵從命令行模式返回菜單模式。菜單模式下按鍵將進(jìn)入菜單編輯模式。
(3) 菜單編輯模式
菜單編輯模式用來對菜單項(xiàng)進(jìn)行編輯改變,其界面和菜單模式的界面十分類似,不同的是菜單中顯示的是對應(yīng)某個菜單項(xiàng)的命令列表。如果在編輯模式下按下,則取消所有當(dāng)前對菜單的編輯并回到菜單模式下。在編輯模式下選中一個命令行,就可以對這條指令進(jìn)行修改,修改完畢后按下回車,GRUB將提示你確認(rèn)并完成修改。如果你想在當(dāng)前命令列表中增加一條命令,按在當(dāng)前命令的下面增加一條指令,按在當(dāng)前命令前處增加一條指令,按刪除一條指令。
在實(shí)際中,菜單模式用于選擇要啟動的操作系
統(tǒng),菜單編輯模式用于臨時修改編輯啟動菜單,這樣的修改可疑通過命令寫入MBR活指定的分區(qū),但并不影響grub.conf。命令行模式也是一樣,可以通
過命令方式動態(tài)啟動一個操作系統(tǒng),同時也不影響grub.conf。所以,菜單編輯模式和命令行模式常常用來安裝GRUB到MBR或動態(tài)引導(dǎo)一個操作系
統(tǒng)。而GRUB的配置文件,則是系統(tǒng)啟動時GRUB程序必須加載的配置文件,這個文件中有關(guān)于GRUB的各種配置。不需要用戶每次啟動都執(zhí)行繁瑣的命令
了。
4. GRUB配置文件
grub.conf是GRUB的配置文件,其結(jié)構(gòu)比較簡單,可以分為兩部分,第一步分是全局配置,另外一部分就是每個操作系統(tǒng)的啟動配置。其中可以有多個操作系統(tǒng)的菜單配置。下面就是一個具體的例子。
#=================/boot/grub/grub.conf文件范例==================
timeout 30 # 等待用戶選擇菜單項(xiàng)的時間(以秒計(jì)),超時則引導(dǎo)默認(rèn)的選項(xiàng)
default 0 # 默認(rèn)選項(xiàng),第一項(xiàng)
fallback 1 # 如果第一項(xiàng)出錯,則啟動下面的后備選項(xiàng)
splashimage=(hd0,0)/grub/splash.xpm.gz #GRUB啟動畫面
#以下是啟動Linux的配置
titleRed Hat Linux Enterprise AS3 for syd168 #啟動項(xiàng)的菜單標(biāo)題
root (hd0,0) #指定根文件系統(tǒng),第1塊硬盤第1個扇區(qū)中的/boot。
kernel /vmlinuz-2.4.18 ro root=LABEL=/ #內(nèi)核在/boot中
initrd /initrd-2.4.18-14.img #啟動RAM盤在/boot下
#以下是啟動Windows的配置,如果只有Linux就不需要
title Windows2003 Enterprise for syd168 #Windows啟動菜單標(biāo)題
root noverify(hd0,1) #該操作系統(tǒng)在hd0的第二分區(qū),不mount
chainloader +1 #從第一個硬盤的第二個分區(qū)引導(dǎo)Windows
#=================/boot/grub/grub.conf文件范例==================
上面的例子,只是簡單說明了GRUB中啟動Linux和Windows的配置方法。更多的啟動配置請參考下面內(nèi)容。
5. 引導(dǎo)多系統(tǒng)配置
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ò)支持選項(xiàng)(請參考源文件中
的netboot/README.netboot)。另外,要在網(wǎng)絡(luò)中設(shè)置兩個服務(wù):動態(tài)IP服務(wù)(BOOTP、DHCP或RARP)和FTP服務(wù)。然
后,分別針對不同的服務(wù)器BOOTP,DHCP或RARP運(yùn)行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
               
               
               

本文來自ChinaUnix博客,如果查看原文請點(diǎn):http://blog./u/17030/showart_348244.html

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    精品一区二区三区免费看| 国产永久免费高清在线精品| 91精品国产综合久久不卡| 极品熟女一区二区三区| 国产午夜福利不卡片在线观看| 国产日韩综合一区在线观看| 午夜福利在线观看免费| 亚洲国产中文字幕在线观看| 毛片在线观看免费日韩| 欧美一区二区三区播放| 又色又爽又无遮挡的视频| 亚洲国产一区精品一区二区三区色| 日本熟女中文字幕一区| 亚洲精选91福利在线观看| 亚洲高清一区二区高清| 亚洲午夜精品视频观看| 国产精品一区二区有码| 97精品人妻一区二区三区麻豆| 免费精品一区二区三区| 欧美成人免费视频午夜色| 国内欲色一区二区三区| 中日韩美一级特黄大片| 久久热在线免费视频精品| 天海翼高清二区三区在线| 成人午夜视频精品一区| 精品人妻av区波多野结依| 狠狠干狠狠操在线播放| 日韩欧美国产精品自拍| 成人精品视频一区二区在线观看| 东京不热免费观看日本| 91超频在线视频中文字幕| 色丁香一区二区黑人巨大| 国产一区二区在线免费| 男人和女人黄 色大片| 热情的邻居在线中文字幕| 日本一本不卡免费视频| 国产成人精品在线播放| 91亚洲熟女少妇在线观看| 久久热这里只有精品视频| 亚洲第一香蕉视频在线| 久久天堂夜夜一本婷婷|