Linux操作系統GRUB引導程序配置方法_第1頁
Linux操作系統GRUB引導程序配置方法_第2頁
Linux操作系統GRUB引導程序配置方法_第3頁
Linux操作系統GRUB引導程序配置方法_第4頁
Linux操作系統GRUB引導程序配置方法_第5頁
已閱讀5頁,還剩4頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Linux操作系統GRUB引導程序配置方法1. GRUB 介紹 計算機在啟動的時候,首先由BIOS中的程序執行自檢,自檢通過后,就根據CMOS 的配置找到第一個可啟動磁盤的MBR中的Boot Loader程序(一般在啟動盤的第一個物理扇區,占416字節),并把控制權交給Boot Loader,由Boot Loader進一步完成操作系統內核的加載。當Boot Loader找到內核之后,就把控制權交給操作系統內核,由內核繼續完成系統的啟動。 可以看出,Boot Loader 是計算機啟動中第二個要執行的程序,它是引導操作系統的關鍵程序。可以引導操作系統的Boot Loader主要有LiLo、GRU

2、B以及Windows下的MBR程序。其中,GRUB是目前使用最為廣泛,并且非常優秀的一款啟動引導程序。 (1) GRUB特性 q 提供了圖形和文本兩種操作接口 q 提供文本格式可手工修改的配置文件 q 支持動態加載需要的模塊 q 可以移植到不同的平臺上 q 支持國際化語言,如英文,中文,日文漢文等多字節語言 q 跨平臺的安裝,允許從另一個平臺上安裝GRUB q 支持rescue模式,可用于系統無法引導的情況 q 支持多種可執行文件格式,支持各種a.out格式和ELF格式 q 多文件系統識別。如BSD FFS,DOS FAT16,FAT32和Linux ext2fs q 支持壓縮文件的解壓縮。能

3、夠解壓縮被gzip壓縮的文件 q 能夠使用BIOS所檢測到的全部RAM空間 q 支持硬盤的LBA模式,能夠訪問8GB以外的全部硬盤空間 q 支持網絡引導,可以通過TFTP協議從網絡上得到操作系統映象文件并引導 (2) GRUB對設備的命名 首先,GRUB對設備的命名必須包含在小括號( )內;其次,GRUB不區分IDE硬盤和SCSI硬盤,統一使用hdx,其中x指定BIOS中硬盤的編號,并從0開始計數,而且IDE硬盤編號小于 SCSI硬盤;第三,GRUB用fdx指定軟盤設備,x是軟盤驅動器號。下面是一些GRUB對設備命名的舉例: q (fd0)表示第1個軟盤 q (hd0,1)表示第1個硬盤的第2

4、個分區 q (hd0,0)/boot/vmlinuz表示第1個硬盤的第一個分區下的boot/目錄下的vmlinuz文件。如果沒有指定某個分區,則表示使用整個設備,否則只使用指定的分區 q (hd0,2,a)專用于FreeBSD,FreeBSD有一個slice概念,把一個分區進一步分為幾個slice,此處指明是第1塊硬盤的第3個分區中的slice a (3) GRUB的執行流程 GRUB的工作原理如圖5.2所示。當系統加電后,固化在BIOS中的程序首先對系 統硬件進行自檢,自檢通過后,就加載啟動磁盤上的MBR,并將控制權交給MBR中的程序(stage1),stage1執行,判斷自己是否GRUB,

5、如果 是且配置了stage1_5,則加載stage1_5,否則就轉去加載啟動扇區,接著,stage2被加載并執行,由stage2借助stage1_5驅 動文件系統,并查找grub.conf,顯示啟動菜單供用戶選擇,然后根據用戶的選擇或默認配置加載操作系統內核,并將控制權交給操作系統內核,由內核完 成操作系統的啟動。 從上面的敘述可以看出,GRUB涉及到幾個重要的文件: 第一個就是stage1。它被安裝在MBR扇區(0面0磁道的第1扇區),大小為512字節(446字節代碼+64字節分區表+2字節標志55AA),它負責加載存放于0面0道第2扇區的start程序。 第二個是stage1_5。stag

6、e1_5負責識別文件系統和加載stage2, 所以stage1_5往往有多個,以支持不同文件系統的讀取。在安裝GRUB的時候,GRUB會根據當前/boot/分區類型,加載相應的 stage1_5到0面0磁道的第3扇區。stage1_5是由start加載的。 第三個是stage2。它負責顯示啟動菜單和提供用戶交互接口,并根據用戶選擇或默認配置加載操作系統內核。同前兩個文件不同,stage2是存放在磁盤上/boot/grub下。 第四個是menu.lst(/boot/grub/grub.conf的鏈接)。 grub.conf是一個基于腳本的文本文件,其中包含菜單顯示的配置和各個操作系統的內核加載配

7、置。GRUB根據grub.conf顯示啟動菜單,提供 同用戶交互界面。GRUB正是根據用戶選擇或默認配置和grub.conf的內核配置加載相應的內核程序,并把控制權交給內核程序,使得內核程序完成真正 的操作系統的啟動。 其它重要文件,GRUB除了上面敘述的主要文件之外,還包括支持交互功能的一些磁 盤程序。主要包括/sbin/下的grub、grub-install、grub-md5-crypt和grub-terminfo和 /usr/bin/mbchk,以及/boot/grub下的設備映像文件(device.map)和菜單背景圖像文件(splash.xpm.gz)。 通過上面的分析總結,可以很容

8、易地看出,GRUB實際上包含兩部分,一部分被安裝 在磁盤的特殊扇區,另外一部分則以文件的形式存在。要讓GRUB啟動操作系統,就必須首先把GRUB的stage1和stage1_5(根據文件系統自動 選擇是否安裝)安裝到磁盤的特殊扇區,另外,在磁盤的/boot/grub下存在有grub.conf、device.map等文件和支持交互的程序,而 且這些程序必須在PATH環境變量指定的路徑中。具備了這些知識,相信不管是安裝、配置、備份或修復GRUB都不是件很難的是情。下面,就來逐個講解這些 知識。 2. 編譯安裝GRUB 一般情況下,當完成Linux操作系統的安裝后,系統中已經安裝好了LILO或 GR

9、UB引導程序。由于系統出現故障或需要更換LILO為GRUB時,需全新或重新安裝GRUB。如何安裝和配置GRUB就是下面要介紹的內容。而有時 候,GRUB出現了故障,但并不需要重新安裝,從后面的內容中,讀者也可以讀到如何修復GRUB的知識。 (1) 下載安裝包 可以從下載GRUB的源碼。具體安裝方法請參考下面的內容,這里的安裝過程都是在RHEL 4中進行的。 (2) 檢查是否安裝GRUB #rpm -q grub 如果顯示grub-0.95-3.5或其它版本的GRUB的信息,說明系統已經安裝了,則執行如下命令首先將其卸載: #rpm -e grub (3) 編譯源碼安裝 a.) 編譯條件 要編譯

10、GRUB的源代碼,系統必須具備以下條件: q GCC2.95或者以上版本 q 安裝了GNU Make q binutils.23或者個更高版本 q Texinfo 4.0或者更高版本 q Autoconf 2.5x q Automake 1.7 或者更高版本 b.) 編譯安裝 這里,假設下載的GRUB源代碼為grub-0.95.tar.gz,并放在/(當前用戶的主目錄)下。通過編譯源代碼安裝GRUB的基本過程如下: #tar -zxvf grub-0.95.tar.gz #解壓源代碼 #cd grub-0.95 #轉入grub目錄 #./configure #生成Makefile

11、文件 #make install #編譯代碼并安裝 (4) 安裝GRUB到MBR GRUB的工作目錄是在/boot/grub下,而make install并沒將其安裝到/boot/grub。所以,安裝完成后要執行如下一些操作: a) 把/usr/local/share/grub/i386-pc/目錄下的所有文件統統拷貝到/boot/grub/目錄下 #cp /usr/local/share/grub/i386-pc/* /boot/grub/ b) 在/boot/grub下創建grub.conf文件,并建立一個到grub.conf的軟鏈接menu.lst #cd /boot/grub #tou

12、ch grub.conf #ln -s grub.conf menu.lst 注意!如果已經存在grub.conf,就最好不要再次創建,需要時直接修改即可。 c) 確認/usr/local/sbin和/usr/local/bin在PATH變量的值中,執行如下命令檢查 #env |grep PATH 如果發現/usr/local/sbin和/usr/local/bin不在PATH變量中,可以通過如下命令修改: #export PATH=$PATH /usr/local/sbin:/usr/local/bin d) 安裝GRUB到MBR GRUB在啟動中,被BIOS調用,只有放在MBR中才可以被調

13、用,所以,GRUB要讓BIOS調用,就必須安裝在MBR中。實際上是將stage1安裝到MBR中,也可能根據文件系統選擇安裝了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扇區,當用其它引導程序引導系統時,往往選擇這種方式,以免覆蓋其它引導程序。 e) 在GRU

14、B的命令行模式下安裝GRUB 關于GRUB命令行模式及其操作方法請參考3小節的內容。在系統顯示啟動菜單時候按下c鍵,或者系統啟動后在命令行執行/usr/sbin/grub程序,都可以進入GRUB的命令行模式。命令行模式下安裝GRUB的基本過程如下: q 指定啟動設備 grub>root (hd0,0) #除了root后必須有空格,別的位置均不能有空格! 此處(hd0,0)是指第1塊硬盤的第1個分區。如果不能確定包含GRUB的stage1文件的分區,可以通過find指令查找確定: grub> find /boot/grub/stage1 #查找stage1 GRUB將會查找文件/bo

15、ot/grub/stage1并顯示包含這個文件的設備名,這個設備就是上面要用到的設備。 q 安裝GRUB grub> setup (hd0) #除了setup后必須有空格,別的位置均不能有空格! 這條命令將會在第1塊硬盤的MBR安裝GRUB,如果不想在MBR安裝GRUB,而是希望將GRUB安裝在某分區的引導扇區的話,可以用下面的命令安裝: grub> setup (hd0,0) #除了setup后必須有空格,別的位置均不能有空格! 這將會在第1塊硬盤的第1個分區的引導扇區安裝GRUB。 q 退出GRUB grub>quit f) 重啟機器,新安裝的GRUB生效 3. GRUB

16、的交互操作 為了方便用戶交互使用GRUB,GRUB提供了交互模式,下面分別作一介紹: (1) 命令行模式 登陸Linux系統后,在命令行中輸入grub,便可以進入到命令行模式。如圖4-3所示。進入命令行模式后GRUB會給出一個命令提示符“grub>”,此時就可以鍵入命令,按回車執行。此模式下允許類似于Bash shell的命令行編輯功能: <C-f>或<右箭頭鍵> 光標右移一個字符<C-b>或<左箭頭鍵> 光標左移一個字符<C-a><HOME> 到這一行的開頭<C-e>或<END> 到行尾&l

17、t;C-d>或<DEL> 刪除光標處的字符<C-h>或<BackSpace> 刪除光標左邊的字符<C-k> 刪除光標右邊的所有字符(包括光標處的字符)<C-u> 刪除光標左邊的所有字符(包括光標處的字符)<C-y> 恢復上次刪除的字符串到光標位置<C-p>或<向上鍵> 歷史記錄中的上一條命令<C-n>或<向下鍵> 歷史記錄中的下一條命令啟動時GRUB命令行模式在命令行模式下鍵有補全命令的功能,如果你敲入了命令的前一部分,鍵入系統將列出所有可能以你給出的字符串開頭的命令。

18、如果你給出了命令,在命令參數的位置按下鍵,系統將給出這條命令的可能的參數列表。 在計算機啟動的時候,GRUB首先顯示啟動菜單,這是如果用戶按鍵盤的“c”鍵,便進入如圖4-4所示的命令行模式,它的操作和在Linux的命令行模式是一樣的。 (2) 菜單模式 系統在啟動時,如果找到/boot/grub/menu.lst,則grub顯示grub并進入菜單模式,如圖4-4所示。菜單模式下用戶可以選擇要啟動的操作系統,或者修改配置。菜單的定義在menu.lst文件中,也可以從菜單模式按鍵進入命令行模式,并且可以按鍵從命令行模式返回菜單模式。菜單模式下按鍵將進入菜單編輯模式。 (3) 菜單編輯模式 菜單編輯

19、模式用來對菜單項進行編輯改變,其界面和菜單模式的界面十分類似,不同的是菜單中顯示的是對應某個菜單項的命令列表。如果在編輯模式下按下,則取消所有當前對菜單的編輯并回到菜單模式下。在編輯模式下選中一個命令行,就可以對這條指令進行修改,修改完畢后按下回車,GRUB將提示你確認并完成修改。如果你想在當前命令列表中增加一條命令,按在當前命令的下面增加一條指令,按在當前命令前處增加一條指令,按刪除一條指令。 在實際中,菜單模式用于選擇要啟動的操作系 統,菜單編輯模式用于臨時修改編輯啟動菜單,這樣的修改可疑通過命令寫入MBR活指定的分區,但并不影響grub.conf。命令行模式也是一樣,可以通 過命令方式動

20、態啟動一個操作系統,同時也不影響grub.conf。所以,菜單編輯模式和命令行模式常常用來安裝GRUB到MBR或動態引導一個操作系 統。而GRUB的配置文件,則是系統啟動時GRUB程序必須加載的配置文件,這個文件中有關于GRUB的各種配置。不需要用戶每次啟動都執行繁瑣的命令 了。 4. GRUB配置文件 grub.conf是GRUB的配置文件,其結構比較簡單,可以分為兩部分,第一步分是全局配置,另外一部分就是每個操作系統的啟動配置。其中可以有多個操作系統的菜單配置。下面就是一個具體的例子。 #=/boot/grub/grub.conf文件范例= timeout 30 # 等待用戶選擇菜單項的時

21、間(以秒計),超時則引導默認的選項 default 0 # 默認選項,第一項 fallback 1 # 如果第一項出錯,則啟動下面的后備選項 splashimage=(hd0,0)/grub/splash.xpm.gz #GRUB啟動畫面 #以下是啟動Linux的配置 titleRed Hat Linux Enterprise AS3 for syd168 #啟動項的菜單標題 root (hd0,0) #指定根文件系統,第1塊硬盤第1個扇區中的/boot。 kernel /vmlinuz-2.4.18 ro root=LABEL=/ #內核在/boot中 initrd /initrd-2.4.

22、18-14.img #啟動RAM盤在/boot下 #以下是啟動Windows的配置,如果只有Linux就不需要 title Windows2003 Enterprise for syd168 #Windows啟動菜單標題 root noverify(hd0,1) #該操作系統在hd0的第二分區,不mount chainloader +1 #從第一個硬盤的第二個分區引導Windows #=/boot/grub/grub.conf文件范例= 上面的例子,只是簡單說明了GRUB中啟動Linux和Windows的配置方法。更多的啟動配置請參考下面內容。 5. 引導多系統配置 GRUB支持多操作系統引導。用GRUB引導后可以進入命令行模式或者菜單模式,可 以通過靈活的命令行模式選擇引導各個分區的操作系統,指定引導參數。GRUB支持三種引導方法,一種是直接引導操作系統內核,另一種是通過 chainload進行間接引導,第三種就是通過網絡引導操作系統。 對于GRUB能夠支持的Linux,FreeBSD,OpenBSD,NetBSD,GUN Mach等可以通過直接引導完成,但是對于GRUB不支持的操作系統(如Windows),需要用第二種方法chainload來完成。下面就分別來看看這幾種引導方法: (1) 直接引導 配置過程通常如下: a) 用root命令設置包含操作系統內核的根

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論