GRUB(GRand Unified Boot loader)引導加載程序

一.GRUB簡介 linux

首先搞清楚與 GNU GRUB的關係。 GNU GRUB 分爲 GNU GRUB Legacy 和 GNU GRUB2 兩代 。GNU GRUB Legacy 其實就是原來的 GNU GRUB 0.xx ,最新版是 2005 年發佈的 GNU GRUB 0.97 。目前已中止開發,並更名爲 GNU GRUB Lagecy 。GNU GRUB2 是第二代 GRUB,它將取代原來的 GNU GRUB (例如0.9x版),但目前還處於開發階段,還沒有發佈正式版。[tiancong:如今已經發布了,在Ubuntu上能夠看到,不過Fedora還在用經典版本的grub。]shell

而 GRUB4DOS 則是對 GNU GRUB Lagecy 的二次開發。該項目最先由 不點 在2003年發起,目前主要由他、bean 和另外幾位中國人維護,不少人貢獻了代碼,再加上廣大網友熱心幫助,使得 GRUB4DOS 不斷完善。在當前 新的 GRUB2 沒有到位、老的 GNU GRUB Lagecy 又有諸多不完善 的狀況下,GRUB4DOS 受到愈來愈多人的歡迎。很多人已經把 GRUB4DOS 看成仍然處於活躍開發當中的 grub legacy 了,當他們給 grub 0.XX 的補丁被擱淺時,他們又把補丁投遞給了 GRUB4DOS。windows

 

1.引導加載程序簡介 安全

引導加載程序能夠引導操做系統啓動。當計算機要引導操做系統時,BIOS會讀取引導介質上最前面的MBR記錄。在單一的MBR中只能存儲一個操做系統的引導記錄,當須要多個操做系統時就會出現問題,因此須要更靈活的引導加載程序。服務器

主引導記錄自己要包含兩類內容:引導加載程序和分區表。當BIOS引導時,它會尋找硬盤驅動器第一個扇區(MBR)中存儲的數據,BIOS使用存儲在MBR中的數據激活引導加載程序。網絡

因爲BIOS只能訪問不多的數據,因此大部分引導加載程序分兩個階段進行引導。在引導的第1個階段中,BIOS引導一部分引導加載程序,即初始程序加載程序(IPL)。IPL查詢分區表,從而可以加載位於不一樣介質上任意位置的數據。首先經過這步操做來定位第二階段引導加載程序(其中包含加載程序的其他部分)。ide

第2階段引導加載程序是引導加載程序的主體,這是引導加載程序的真正部分,它包含有加載程序更須要磁盤空間的部分,好比用戶界面和內核引導程序。測試

引導加載程序一般配置爲主引導程序或二級引導加載程序。主引導程序是安裝在MBR上的第一階段引導加載程序。二級引導加載程序是安裝在可引導分區的第一階段引導加載程序。必須在MBR上安裝單獨的引導加載程序,並配置它將控制權轉交給二級引導加載程序。ui

不少較新的Linux引導加載程序特別實用,由於它們提供了不一樣程度的交互,好比高級的GUI和加密的口令,以及經過選擇操做系統進行引導的能力。這樣,能夠在具備多個物理磁盤的同一機器上共存多個操做系統。this

 

2GRUB概述

GNU GRUB(GRand Unified Bootloader)是一個將引導加載程序安裝到主引導記錄的程序,主引導記錄位於一個硬盤開始的扇區。它容許位於主引導記錄區中特定的命令來加載一個GRUB菜單或GRUB的命令環境。這使得用戶可以開始操做系統的選擇,在內核引導時傳遞特定命令給內核,或是在內核引導前肯定一些系統參數(如可用的RAM大小)。

GRUB支持直接和鏈式加載的引導方法。GRUB能用於幾乎全部操做系統、絕大多數流行的文件系統以及幾乎全部的系統BIOS所能識別的硬盤。

 

3GRUB特性

GRUB包含許多特性,這使得GRUB比其餘可用的引導加載程序更加優越,下面列出一些比較重要的特性。

(1)GRUB在x86機器上提供一個真正基於命令行的、先於操做系統啓動的環境。

(2)GRUB支持邏輯塊尋址(LBA方式)。

LBA的主要做用是尋找驅動器上文件的地址並將其置於驅動器的硬件中,它被用在許多IDE和SCSI硬盤中。在使用LBA以前,硬盤驅動器遇到一個1024柱面的限制,即BIOS不能找到在1024柱面後的文件(好比一個引導加載程序或是內核文件)。只要系統BIOS能支持LBA模式(大多數都支持),那麼LBA就容許GRUB超越1024柱面的限制,引導操做系統。

(3)GRUB的配置能在每次系統引導時被讀取。

這就避免了用戶每次改變引導選項時都要重寫一次主引導記錄。大多數的引導加載程序都不能讀取配置文件,並使用它們來設置引導選項。好比,用戶必需改變一個LILO的配置文件,而後執行一個命令將新的配置數據重寫回系統的主引導記錄。這種方法比GRUB所採用的方法更加危險,由於一個錯誤配置的主引導記錄將使系統沒法引導。在使用GRUB中,若是配置文件被錯誤配置而且引導,那它也僅僅簡單地轉到一個默認的命令行,容許用戶手工輸入命令來運行操做系統。

 

二.GRUB設備名稱

GRUB 要求設備名被括在一個 ( ) 中。fd表示軟盤,hd 表示硬盤(不區分 IDE 仍是 SCSI)。其次設備是從 0 開始編號,分區也是如此,分區和設備之間用一個 ‘,’ 分開。

下面給出幾個例子 :
(fd0) :表示整個軟盤
(hd0,1) :表示 BIOS 中的第一個硬盤的第2個分區
(hd0,0)/boot/vmlinuz :表示 BIOS 中的第一個硬盤的第一個分區下的 boot/ 目錄下的vmlinuz 文件。

若是沒有指定某個分區,則表示使用整個設備,不然只使用指定的分區。

硬盤代號


硬盤搜索順序

在GRUB中的代號

第一個

(hd0)(hd0,0)(hd0,1)(hd0,4)(hd0,5)… …

第二個

(hd1)(hd1,0)(hd1,1)(hd1,4)(hd1,5)… …

第三個

(hd2)(hd2,0)(hd2,1)(hd2,4)(hd2,5)… …

第四個

(hd3)(hd3,0)(hd3,1)(hd3,4)(hd3,5)… …

… …

… … … …

硬盤搜索順序

LILO

GRUB

IDE1 master

hda, hda1, hda2

(hd0), (hd0,0), (hd0,1)

IDE1 slave

hdb, hdb1, hdb2

(hd1), (hd1,0), (hd1,1)

IDE2 master

hdc, hdc1, hdc2

(hd2), (hd2,0), (hd2,1)

IDE2 slave

hdd, hdd1, hdd2

(hd3), (hd3,0), (hd3,1)

 

三.GRUB配置文件

GRUB的配置文件默認爲「/boot/grub/grub.conf」,在GRUB成功安裝到硬盤主引導扇區(MBR)後,只要編輯該文件就可實現對GRUB的配置,無須重寫GRUB到MBR。GRUB的配置都是經過位於/boot/grub/grub.conf的一個配置文件來完成的。

password –-md5 <密碼1>
default=0
timeout=5
splashp_w_picpath=(hd0,0) /boot/grub/splash.xpm.gz
color red/black green/blue
title FC
password –-md5 <密碼2>
root (hd0,1)
kernel /vmlinuz-2.6.12-EL ro root=/dev/hda1 quiet vga=787
initrd /initrd-2.6.12-EL.img
title Windows
password –-md5 <密碼3>
rootnoverify (hd0,0)
chainloader +1

 

1#

以"#"開頭的是註釋行。

2default=0

這個必須與title進行對照。以上面的清單爲例,咱們不是有兩個title嗎?按照先後順序來排列,第一個title表示0,第二個title1,以此類推。這個default說的是,若是啓動過程當中,並無選擇其餘的項目,那麼就會用默認值(第一個title)來啓動。

3timeout=5

啓動時顯示菜單的秒數(單位是秒)。此時若是沒有按下任何按鍵,就會用default設置值來進行啓動。

4splashp_w_picpath=(hd0,0) /boot/grub/splash.xpm.gz

splashp_w_picpath是在菜單上顯示的一些圖片或者是相關的影像數據。該設置有個地方比較有趣。由於在啓動的過程當中並無硬盤,因此咱們必需要明確指出某個文件在哪一個分區的哪一個目錄;所以,上面設置的意思是:在(hd0,0)分區內的/boot/grub/splash.xpm.gz,該文件爲啓動時顯示的畫面。

5color red/black green/blue

GRUB界面的顏色能夠用color指令來指定。color中指定了兩組顏色,第一組是正常文本的顏色,第二組是加亮文本(當前選擇的菜單項)的顏色。對應於每組顏色,又須要指定兩種顏色。第一種是前景的顏色,第二種是背景的顏色。所以,在color總共須要指定四種顏色,分別是,正常文本前景,正常文本背景,加亮文本前景和加亮文本背景。

顏色代碼


black (黑色) red (紅色) green (綠色) brown (棕色) blue (藍色) magenta (紫色) cyan (青色) light-gray (灰色)

dark-gray (暗灰) light-red (亮紅) light-green (亮綠) yellow (×××) light-blue (亮藍) light-magenta (亮紫) light-cyan (亮青) white (白色)

前景色可使用所有16種顏色,而背景色只能使用前面8種顏色。

color命令通常是做爲全局命令,在第一個title前使用。

6hiddenmenu

表示啓動時隱藏菜單,除非在 timeout 以前按下 ESC 才能看到菜單。若是想顯示菜單,就將這個設置值註釋掉。

7title Fedora Core()

定義引導項目的名稱。

8password --md5 $opeVt0$Y.br.18LyAasRsGdSk

用於定義進入 GRUB 命令模式的密碼。你還能夠爲每一個操做系統都定義一個密碼,方法是把 password 命令放在 title行以後。並且每一個操做系統的引導密碼能夠不一樣,也能夠和進入命令模式的那個密碼不一樣,最大程度的保證 GRUB 的安全。在這裏指定了使用MD5加密的口令。

9root (hd0,0)

用於指定含有 stage 文件的分區。若是有 /boot 分區,則 root device 就是 /boot 分區,不然就是 / 分區。

10kernel /boot/vmlinuz-2.6.12-EL ro root=/dev/hda1 quiet vga=787

指定操做系統內核文件,還能夠在內核文件名後加上參數。例如kernel /vmlinuz ro root=LABEL=/ 表示以只讀的方式掛載 / 分區,且根分區設備是 label 爲 / 的那個設備;也能夠直接給出設備名。

 

十進制代碼與對應的分辨率與顏色質量


顏色質量/分辨率

640x480

800x600

1024x768

1280x1024

256

769

771

773

775

8

32768

784

787

790

793

15

65536

785

788

791

794

16

16.8M

786

789

792

795

32

11initrd /boot/initrd-2.6.12-EL.img

用於指定 RAM Disk 文件,例如 initrd /initrd-2.xx.img 。

12rootnoverify root

和 root 相似,但不會嘗試掛載該分區。例如用於指定 windows 操做系統所在的分區。

13chainloader +1

用於加載另一個 boot loader ,一般是用於加載 windows 的 boot loader 。它的參數是一個 block list ,例如 chainloader (hd0,0)0+1 表示加載第一個磁盤的第一個分區的第1塊,0 是開始位置(block 從0開始編號),+1 表示總共讀取多少個 block。 因此 chainloader 2+0 表示讀取第3個block (編號爲2)。

14makeactive

讓啓動區的引導項(記得 fdisk –l的顯示結果嗎?)具備活動(active)標誌,無論是否加均可以。

與LILO的配置文件不一樣,grub.conf會在引導時被讀取,當被修改時沒必要去更新MBR。

在grub.conf文件中可使用不少其餘參數,不過上面的參數就足以讓機器可用了。要得到關於grub.conf的這些及其餘參數的進一步資料,請參考GRUB的手冊頁(man grub.conf)。

 

四.GRUB安裝

[root @test root]# grub
# 先安裝在 Super Block 底下試看看:
grub> root (hd0,0)      <==這裏輸入我要的 root 硬盤扇區!
Filesystem type is ext2fs, partition type 0x83

grub> setup (hd0,0)   <==實際安裝上來!使用 setup 指令!
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd0,0)"... failed (this is not fatal)
Running "embed /boot/grub/e2fs_stage1_5 (hd0,0)"... failed (this is not fatal)
Running "install /boot/grub/stage1 (hd0,0) /boot/grub/stage2 p /boot/grub/menu
.lst "... succeeded
Done.

# 再安裝在 MBR 試看看:
grub> root (hd0,0)
Filesystem type is ext2fs, partition type 0x83

grub> setup (hd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/e2fs_stage1_5" exists... yes
Running "embed /boot/grub/e2fs_stage1_5 (hd0)"... 17 sectors are embedded.
succeeded
Running "install /boot/grub/stage1 (hd0) (hd0)1+17 p (hd0,0)/boot/grub/stage2
/boot/grub/menu.lst"... succeeded
Done.
grub> quit             <==離開 grub 囉!

 

五.GRUBMD5加密方法

1.用grub-md5-crypt成生GRUBmd5密碼

經過grub-md5-crypt對GRUB的密碼進行加密碼運算,好比咱們想設置grub的密碼是123456,因此咱們先要用md5進行對123456這個密碼進行加密

# /sbin/grub-md5-crypt

PassWord: 在這裏輸入123456

Retype password: 再輸入一次123456

$1$7uDL20$eSB.XRPG2A2Fv8AeH34nZ0

$1$7uDL20$eSB.XRPG2A2Fv8AeH34nZ0 就是經過grub-md5-crypt進行加密碼後產生的值。這個值咱們要記下來,仍是有點用。

 

2.更改 /etc/grub.conf

好比我原來的/etc/grub.conf文件的內容是下面的。

default=1
timeout=10
splashp_w_picpath=(hd0,7)/boot/grub/splash.xpm.gz
title Fedora Core (2.4.22-1.2061.nptl)
root (hd0,7)
kernel /boot/vmlinuz-2.4.22-1.2061.nptl ro root=LABEL=/
initrd /boot/initrd-2.4.22-1.2061.nptl.img
title Windows XP
rootnoverify (hd0,0)
chainloader +1

因此我要在/etc/grub.conf中加入 password --md5 $1$7uDL20$eSB.XRPG2A2Fv8AeH34nZ0 這行,及lock,應該加到哪呢,請看下面的更改實例;

timeout=10
splashp_w_picpath=(hd0,7)/boot/grub/splash.xpm.gz
password --md5 $1$7uDL20$eSB.XRPG2A2Fv8AeH34nZ0
title Fedora Core (2.4.22-1.2061.nptl)
lock
root (hd0,7)
kernel /boot/vmlinuz-2.4.22-1.2061.nptl ro root=LABEL=/
initrd /boot/initrd-2.4.22-1.2061.nptl.img
title 視窗系統XP
rootnoverify (hd0,0)
chainloader +1

lock的意思就是把Redhat Fedora鎖住了。若是啓動時會提示錯誤。這時就應該按P鍵,而後輸入密碼就好了。

使用password,lock命令實現幾種加密方法以下:

1) 單純對GRUB界面加密,而不對被引導的系統加密 在timeout一行下面加一行: password --md5 PASSWORD

2) 對GRUB界面加密,同時對被引導的系統加密 在timeout一行下面加一行: password --md5 PASSWORD 在title一行下面加一行: lock

3) 同時存在多個被引導系統,針對特定的系統實例分別加密(未對GRUB操做界面加密) 在title一行下面加一行: lock 在lock一行下面緊貼着再加一行: password --md5 PASSWORD 注:lock不能獨立使用.

咱們仔細看一下,從上面的咱們改過的/etc/grub.conf中是否是已用到了咱們在第一步經過/grub-md5-crypt所產生的密碼呢??是否是有點安全感了?

 

六.GRUB界面

1.啓動菜單界面

正確安裝Linux操做系統後,可從硬盤引導系統進入GRUB,啓動菜單界面以下圖所示,在該界面中可使用的按鍵以下表所示。在該菜單界面中能夠選擇GRUB配置文件

 

按鍵

功能說明

↓↑

使用上下方向鍵,在啓動菜單項間進行移動

Enter

輸入回車鍵啓動當前的菜單項

e

選擇「e」鍵編輯當前的啓動菜單項

a

選擇「a」鍵添加內核的啓動參數

c

選擇「c」鍵進入GRUB的命令行方式(shell)

 

2.啓動菜單項編輯界面

在GRUB的啓動菜單界面中選擇「e」鍵進入GRUB的啓動菜單項編輯界面,以下圖所示。該界面下可使用的操做按鍵以下表所示。該界面提供了靈活的配置接口,對於調試操做系統啓動配置很是有用。

 

按鍵

功能說明

↓↑

使用上下方向鍵,在啓動菜單項間進行移動

b

選擇「b」鍵啓動當前的菜單項

e

選擇「e」鍵編輯當前選中的行

d

選擇「d」鍵刪除當前行

c

選擇「c」鍵進入GRUB的命令行方式

o

選擇「o」鍵在當前行後面插入一行

O

選擇「O」鍵在當前行前面插入一行

Esc

選擇「Esc」鍵返回

 

3.命令行界面(shell

GRUB有兩種方法能夠進入命令行界面,從GRUB啓動菜單進入命令行界面或者在shell狀態下使用GRUB命令進入命令行界面,使用兩種方法得到的命令行界面稍有不一樣。因爲grub命令是運行在Linux操做系統中的,受操做系統的限制不少命令不能使用。而從GRUB啓動菜單進入命令行界面支持的命令比較完整。

(1)GRUB命令行界面的特色

GRUB命令行界面提供了方便友好的命令行交互方式,其主要特色包括:

  1. 提供在線幫助命令「help」,而且能夠得到每條命令的詳細幫助。
  2. 可以使用左右方向鍵編輯行命令。
  3. 可以使用上下方向鍵滾動歷史命令。
  4. 可以使用「Tab」鍵補全命令和路徑。

(2)從GRUB啓動菜單進入命令行界面

從GRUB的啓動菜單界面或菜單項編輯界面選擇「c」鍵可進入GRUB的命令行界面。以下圖所示。說明:使用「Esc」鍵可返回菜單界面,使用help命令得到GRUB當前可以使用的命令,把某個命令做爲help命令的參數,可得到該命令的詳細幫助說明。

 

(3)從Linux的shell進入GRUB命令行界面

使用grub命令也能夠進入GRUB命令行界面,該命令的完整路徑爲「/sbin/grub」。

 

七.GRUB命令參考

GRUB中的命令可分爲三類:

  1. 菜單命令,只能用於配置文件的全局部分。
  2. 常規命令,即能用於配置文件的所有部分,又能在命令行界面使用。
  3. 命令行和菜單項命令,即能用於配置文件的菜單項定義部分,以能用於命令行界面。

 

1.菜單命令

菜單命令只能用於grub配置文件的全局配置部分,不能用在grub命令行交互界面,菜單命令在配置文件中應放在其它命令以前。
一、default //設置默認啓動的菜單項
二、fallback //設置啓動某菜單項失敗後反回的菜單項
三、hiddenmenu //隱藏菜單界面
四、timeout //設置菜單自動啓動的延時時間
五、title //開始一個菜單項

 

2.常規命令

常規命令能夠應該於配置文件和grub命令行交互界面,可以使用的常規命令有
一、bootp //經過bootp初始化網絡設備
二、color //設置菜單界面的顏色
三、device //指定設備文件做爲驅動器
四、dhcp //經過DHCP初始化網絡設備
五、hide //隱藏某分區
六、ifconfig //手工配置網絡設備
七、pager //改變內部頁程序的狀態
八、partnew //新建一個主分區
九、parttype //改變分區的類型
十、password 爲菜單界面設置口令
十一、rarp //經過RARP初始化網絡設置
十二、serial //設置串口設備
1三、setkey //設置鍵盤映射
1四、splashp_w_picpath //設置GRUB啓動時的背景圖片文件
1五、termainal //選擇終端類型
1六、tftpserver //指定TFTP服務器
1七、unhide //還原某隱藏分區

 

3.命令行和菜單項命令

命令行和菜單項命令可應該於GRUB配置文件的菜單項設置中,也能夠用在GRUB命令交互界面。
一、bolcklist //顯示某文件所在分區位置(block list notation)
二、boot //啓動操做系統
三、cat //顯示文件內容
四、chainloader //把啓動控制權軟交給另外的啓動引導器
五、cmp //比較兩個文件
六、configfile //加載已存在的GRUB配置文件
七、debug //設置爲debug模式
八、displayapm //顯示APM BIOS信息
九、displaymem //顯示內存配置
十、embed //嵌入Stage 1.5文件
十一、find //查找包括某文件的全部設備
十二、fstest //測試文件系統
1三、geometry //顯示某驅動器的物理信息
1四、halt //中止計算機運行(軟件關機)
1五、help //顯示GRUB的命令幫助信息
1六、impsprobe //查詢對稱多處理器(SMP)的信息
1七、initrd //加載initrd文件
1八、install //安裝GRUB
1九、ioprobe //查詢某驅動器的輸入輸出(I/O)端口
20、kernel //引導操做系統內核
2一、lock //鎖定某GRUB導菜單項,使其輸入密碼後纔可啓動
2二、makeactive //激活某主分區
2三、map //虛擬映射某驅動器
2四、md5crypt //使用MD5加密口令
2五、module //加載模塊
2六、modulenounzip //加載模塊不進行解壓
2七、pause //暫停並等待按鍵
2八、quit //退出GRUB
2九、reboot //從新啓動計算機
30、read //讀取內存中的內容
3一、root //設置GRUB的root設備
3二、rootnoverify //設備GRUB的root設備但不裝載文件系統
3三、savedefault //保存當前的啓動菜單項爲默認啓動
3四、setup //自動安裝GRUB
3五、testload //從文件系統中測試讀取某文件
3六、testvbe //測試VESA BIOS EXTENSION
3七、uppermem //強制設置主機上位內存的大小
3八、vbeprobe //查詢VESA BIOS EXTENSION信息

 

八.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

啓動了吧!以上有些數字要根據你的實際狀況更改。以上這個方法也能夠用於測試新編譯的內核。

 

2.恢復被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上。

 

3.Linux操做系統中用安裝盤來修復Grub

1.把安裝盤的第一張放到光驅,而後從新啓動機器,在BOIS中把系統用光驅來引導。

2.等安裝界面出來後,按〔F4〕鍵,也就是linux rescue模式。

3.一系列鍵盤以及幾項簡單的配製,事後就〔繼續〕了。。。這個過程,我不說了,比較簡單。

4.而後會出現這樣的字符:

sh#

5.咱們就能夠操做GRUB了。

sh#grub

會出現這樣的字符:

grub>

咱們就能夠在這樣的字符後面,輸入:

grub>root (hdX,Y)
grub>setup (hd0)
若是成功會有一個successful......

這裏的X,若是是一個盤,就是0,若是你所安裝的linux的根分區在第二個硬盤上,那X就是1了;Y,就是裝有linux系統所在的根分區。 setup (hd0)就是把GRUB寫到硬盤的MBR上。

我來舉個例子吧,若是以個人硬盤爲例。我在第一個硬盤上裝了XP,在第一個硬盤的hda9個裝了RH73.我總共有兩個硬盤。若是我把GRUB丟了,就用這種辦法找回來。 若是你不知道你的linux安裝到哪一個分區上,也就是說,不知道這個Y是多少,這也沒關係,先輸入root (hdX,而後用[TAB]來查看,一下就明白了。

操做以下:〔前面開機啓動的上面有說明〕

sh# grub

會出現下面的字樣的:

grub>

而後再這樣操做,若是我知道個人linux裝在第一個硬盤上,但我不知道裝在哪一個分區上,就能夠先輸入root (hd0,而後用〔TAB〕鍵來補齊,而後就明白了。  grub>root (hd0,8)
grub>setup (hd0)

 

最後就是按一下〔RESET〕鍵,從新啓動,就OK了。

 

若是有多個Windows 系統,怎麼才能引導出來呢?應該用hide 和unhide指令操做;好比咱們安裝了兩個Windows ,一個是位於(hd0,0)的windows 98 ,另外一個是安裝的是位於(hd0,1)的WindowsXP;這時咱們就要用到hide指令了;

title Win98
unhide (hd0,0)
hide (hd0,1)
rootnoverify (hd0,0)
chainloader +1
makeactive

title WinXP unhide (hd0,1) hide (hd0,0) rootnoverify (hd0,1) chainloader +1 makeactive

相關文章
相關標籤/搜索