Grub安裝,配置及使用匯總

(一)安裝linux時安裝grub.
安裝redhat linux時會提示安裝引導程序,若是選擇grub爲引導程序,建議把grub安裝到硬盤的引導扇區MBR.grub 還能夠引導其它操做系統,如 FreeBSD、NetBSD、OpenBSD、GNU HURD 和 DOS,以及 Windows 9五、9八、NT、2000、XP。
(二)grub的配置
一旦選擇了grub爲引導程序,下面咱們來了解一下它的配置.
/boot/grub/grub.conf是grub產生一個引導選擇菜單以及設置一些選項.下面是個人grub.conf:
#==========例子開始==========
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,6)
# kernel /vmlinuz-version ro root=/dev/hda10
# initrd /initrd-version.img
#boot=/dev/hda
default=0
timeout=10
splashp_w_picpath=(hd0,6)/grub/splash.xpm.gz
# --> Redhat Linux 8.0 <--
title Red Hat Linux (2.4.18-14)
root (hd0,6)
kernel /vmlinuz-2.4.18-14 ro root=LABEL=/
initrd /initrd-2.4.18-14.img
# --> Microsoft Windows XP <--
title Microsoft Windows XP
rootnoverify (hd0,0)
chainloader +1
#===========例子結束==========
配置選項解釋:
以"#"開頭的是註釋行.
我這裏有兩個操做系統,分別是Red Hat Linux和Microsoft Windows XP.
其中 timeout標識默認等待時間,我這設置爲10秒,超過10秒用戶還沒做出選擇的話,將自動選擇默認的操做系統(我這裏默認的是Redhat linux 8.0)
默認的操做系統是由default一項來控制的,default後的數字代表第幾個是默認的,這裏0表示第一個,1表示第二個.因此若是你想修改默認的操做系統,就修改default後的數字.
title一項是設置操做系統的名稱,grub不支持中文(有點遺憾).
splashp_w_picpath一項指定grub界面的背景圖片,有興趣的朋友能夠修改grub的背景哦!
root (hd0,6)標識從第一個硬盤,第7個分區來啓動搜索引導內核.注意這兒的root與linux的root分區不一樣,此root非彼root也! grub的硬盤標識方法與linux的有點不一樣.在linux中第一個主分區爲hda1,第二個主分區爲hda1,第一個邏輯分區爲hda5,而在 grub中是以(hdx,y)來標識的,如第一個主分區爲(hd0,0)第一個邏輯分區爲(hd0,1)依此類推.因此這兒root後面的是你的 /boot所在分區標識.
知道了內核在哪兒,還要具體指出哪一個文件是內核文件,這就是kernel的工做。
kernel /vmlinuz-2.2.18-14 ro root=LABEL=/.說明/boot/vmlinuz-2.2.18-14 就是要載入的內核。後面的都是傳遞給內核的參數。ro是以readonly的意思。注意我這裏內核前面的路徑是"/",由於個人boot單獨分了一個區, 若是你沒有爲boot單獨分區,那麼內核前面的路徑就是"/boot".
initrd用來初始的linux p_w_picpath,並設置相應的參數
再來看一看windows的定義段吧。
這裏,我添加了一項來引導 WindowsXP。要完成此操做,GRUB 使用了"鏈式裝入器"(chainloader)。鏈式裝入器從分區 (hd0,0) 的引導記錄中裝入 winXP 本身的引導裝入器,而後引導它。這就是這種技術叫作鏈式裝入的緣由 -- 它建立了一個從引導裝入器到另外一個的鏈。這種鏈式裝入技術能夠用於引導任何版本的 DOS 或 Windows。若是你在計算機中裝有win98,winme,win2k,winxp的話,chainloader會把引導權交與win的 NTLoader來引導.
(三)Grub啓動盤的製做
要製做引導盤,需執行一些簡單的步驟。首先,在新的軟盤上建立 ext2 文件系統。而後,將其安裝,並將一些 GRUB 文件複製到該文件系統,最後運行 "grub" 程序,它將負責設置軟盤的引導扇區。
將一張空盤插入 1.44MB 軟驅,輸入:
# mke2fs /dev/fd0
建立了 ext2 文件系統後,須要安裝該文件系統:
# mount /dev/fd0 /mnt/floppy
如今,須要建立一些目錄,並將一些關鍵文件(原先安裝 GRUB 時已安裝了這些文件)複製到軟盤:
# mkdir /mnt/floppy/boot
# mkdir /mnt/floppy/boot/grub
# cp /boot/grub/stage1 /mnt/floppy/boot/grub
# cp /boot/grub/stage2 /mnt/floppy/boot/grub
再有一個步驟,就能獲得可用的引導盤。
在linux bash中,從 root 用戶運行"grub",該程序很是有趣並值得注意,由於它其實是 GRUB 引導裝入器的半功能性版本。儘管 Linux 已經啓動並正在運行,您仍能夠運行 GRUB 並執行某些任務,並且其界面與使用 GRUB 引導盤或將 GRUB 安裝到硬盤 MBR 時看到的界面(即GRUB控制檯)徹底相同。
在 grub> 提示符處,輸入:
grub> root (fd0)
grub> setup (fd0)
grub> quit
如今,引導盤完成了。
(四).恢復被windows破壞的grub.
若是你用grub來引導linux和windows,當windows出毛病從新安裝後,會破壞MBR中的grub,這時須要恢復grub.
1.把linux安裝光盤的第一張放到光驅,而後從新啓動機器,在BOIS中把系統用光驅來引導。
2.等安裝界面出來後,按[F4]鍵,也就是linux rescue模式。
3.一系列鍵盤以及幾項簡單的配製,事後就[繼續]了。。。這個過程,我不說了,比較簡單。
4.而後會出現這樣的提示符:
sh#
5.咱們就能夠操做GRUB了.輸入grub:
sh#grub
會出現這樣的提示符:
grub>
咱們就能夠在這樣的字符後面,輸入:
grub>root (hdX,Y)
grub>setup (hd0)
若是成功會有一個successful......
這裏的X,若是是一個盤,就是0,若是你所安裝的linux的根分區在第二個硬盤上,那X就是1了;Y,就是裝有linux系統所在的根分區。 setup (hd0)就是把GRUB寫到硬盤的MBR上。
(五).用NTLoader來引導linux.
若是你在安裝linux時沒有選擇安裝grub,沒必要着急,如今咱們來看看如何在安裝linux後安裝grub.並用windows的NTLoader來引導linux.
1. 安裝grub
我用的grub是Redhat8.0帶的grub安裝包: grub-0.92-7.rpm
安裝: rpm -ivh grub-0.92-7.rpm
其餘安裝方式也同樣,只要你安裝上grub就好了.RH8缺省用的grub, 1,2步驟能夠
省了.
2. 創建grub的環境
cp /usr/share/grub/i386-pc/* /boot/grub
3. 生成grub的配置文件/boot/grub/menu.conf
按照上面所講的grub.conf來生成一個配置文件.
注意了, 這裏個人linux在/dev/hda4,因此menu.conf那些分區位置爲(hd0,3),
你的可能不同了,不能徹底照着"畫瓢"噢! 下面第3步install的中的分區位置也應該和你的系統一致.
3. 安裝grub至Linux分區boot
將grub的stage1安裝到/dev/hda4的boot扇區(hd0,3). 過程以下:
/sbin/grub (運行grub)
grub> install (hd0,3)/boot/grub/stage1 d (hd0,3) (hd0,3)/boot/grub/stage2 p (hd0,3)/boot/grub/menu.conf
(注意,上面"grub>"爲grub的提示符,其後內容寫在一行上.)
4. 取得grub的boot信息
過程以下:
dd if=/dev/hda4 of=/grub.lnx bs=512 count=1
這樣獲得grub的引導信息,只要用NT Loader來加載它就好了.
5. 將上面獲得的grub.lnx弄到Windows的C盤根目錄下
能夠先把grub.lnx弄得軟盤上,而後啓動windows,拷貝到C:; 狀況容許也能夠直接在Linux下拷貝到C:了. 個人C盤(即設備/dev/hda1)爲FAT32, 能夠直接從Linux下弄過去了. 以下:
mount -t vfat /dev/hda1 /mnt/c
cp /grub.lnx /mnt/c
umount /mnt/c
6. 修改NT Loader的boot.ini
在其中加入一行: C:grub.lnx="Redhat Linux - GRUB"
加入後boot.ini的內容以下:
[boot loader]
timeout=15
default=C:boot.lnx
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Microsoft Windows XP Professional" /fastdetect
[VGA mode]" /basevideo /sos
C:grub.lnx="Redhat Linux - GRUB"
OK. 能夠用NT Loader加載Linux了, 其實上面過程基本上和用NT Loader加載LILO同樣.其基本思想就是用NT Loader來加載LILO或grub的引導區(grub.lnx), 其中的關鍵就是LILO或grub的引導區的獲取.
(六)活用grub的交互功能grub具備強大的交互功能.學會了將會使你受益非淺! 1.grub沒有顯示菜單怎麼辦? 當開機後進入grub界面但沒了菜單,只剩下一個grub>提示符,怎麼啓動呢?別急,看下面: grub>cat (hd0,6)/boot/grub/grub.conf (爲了看參數) grub>root (hd0,6) grub>kernel (hd0,6)/vmlinuz-2.4.18-14 ro root=LABEL=/ grub>initrd (hd0,6)/initrd-2.4.18-14.img grub>boot OK!啓動了吧!以上有些數字要根據你的實際狀況更改. 以上這個方法也能夠用於測試新編譯的內核. 2.進入單用戶模式. 有時不當心把root用戶密碼忘了,只能進入單用戶模式來從新設置root密碼.方法以下: 開機進入grub界面,按C進入命令行模式,而後按照上面的方法進行,只是在第三步要在後面加入single參數.
相關文章
相關標籤/搜索