GRUB基本使用?f明

时间:2008-04-17 19:29:11  来源:  作者:
GRUB是一??多重?_?C管理工具,它可用??????Linux、BSD、OS/2、BeOS?cWindows95/98/NT等??多作?I系?y,GRUB是一????立於作?I系?y之外的?_?C程式,?K不像LILO是依靠Linux才能?M行?O定?c?S?o,也提供了??似Bash的命令列模式,??使用者更方便地?O定GRUB。

取得?c安?bGRUB:
GRUB的原始?a?嚎s?n可至GNU的ftp站台( ftp://alpha.gnu.org/gnu/GRUB/ )下?d最新版本 ,下?d回?磲峥纱娣旁?/usr/local/src/目??下?K?⑵浣??嚎s:

cp grub.tar.gz /usr/local/src/

tar zxvf grub.tar.gz

在GRUB的目??下?绦?configure?n、make?cmake install,如下:

./configure

make

make install

??make install完成後GRUB也已??利安?b完??,?K有三??指令?n也被安?b至系?y中:grub、grub-install?cmbchk。而GRUB的相?P?n案通常被安?b到/usr/local/share/grub的目??下。

接下?硐燃僭O硬碟分割如下:

hda1:Windows98 (hd0,0)

hda2:Slackware Linux (hd0,1)

hdb1:Mandrake Linux (hd1,0)

注意的是GRUB?J硬碟的方式跟Linux是不一?拥模?在Linux中第一?wIDE硬碟是hda(SCSI:sda)以此??推,而GRUB?t?⒌谝活wIDE硬碟????hd0(SCSI:sd0)以此??推;在Linux中第一?wIDE硬碟的第一??分割?^是hda1(SCSI:sda1)以此??推,而GRUB?⒌谝活wIDE硬碟的第一??分割?^表示??hd0,0(SCSI:sd0,0)以此??推。




?u作GRUB???哟牌?:

?u作GRUB???哟牌?其??不?y,首先需要????必???n案,分?e是stage1?cstage2,可以在GRUB的安?b目??下的i386-pc目??中找到?@?????n案,以及一片已格式化的乾?Q磁片,然後依照下面的?u作步?E就可?u作出GRUB的???哟牌?:

cd /usr/local/share/grub/i386-pc/

dd if=stage1 of=/dev/fd0 bs=512 count=1

dd if=stage2 of=/dev/fd0 bs=512 seek=1

?u作好了GRUB的?_?C磁片之後,就可以??著使用GRUB?磉M行多重作?I系?y的?_?C???印?




利用GRUB?_?C磁片???酉到y:

接著重新???酉到y?K?O定BIOS由磁片?_?C,然後就可以看到grub>的命令列正等待指令,?@就是GRUB的命令列?h境,表示GRUB已??利地?????哟牌??d入?K正常?作??中了。?F在假?O要???由鲜龅?Slackware Linux的??,在GRUB提示符??下?I入如下的指令,如此就???M入Slackware Linux系?y:

grub> root (hd0,1)

grub> kernel /boot/vmlinuz root=/dev/hda2 ro

grub> boot

root指令??mount後面???档挠驳?分割?^位置。??mount完成後kernel指令???d入其???档南到y核心,Linux的核心通常是在/boot目??下名??vmlinuz的?n案。最後的???????刀际且??鹘o???d入的核心,root=/dev/hda2是告?V核心根目??的位置是在/dev/hda2,?K要求?燧d成唯?x(ro)。
最後?绦?boot指令以?M行Slackware系?y的?_?C???印M?理,位在hdb1上的Mandrake Linux也可以用??似的方式???樱?

grub> root (hd1,0)

grub> kernel /boot/vmlinuz root=/dev/hdb1 ro

grub> boot



?F在root指令改mount (hd1,0)的分割?^,此分割?^就是Mandrake Linux的根目??位置。然後kernel指令?d入Mandrake的核心?n,告?V核心Mandrake系?y的根目??是在/dev/hdb1,?K要求?燧d成唯?x。最後以boot指令?M行系?y的???印?

以上的方式都可以??利地????Linux系?y,但是??Windows系?y可是不管用的,要???釉?hda1上的Windows98的??,?t要?Q些指令才行得通,??在GRUB命令列中依序?I入下列指令就可以?M入Windows98:

grub> rootnoverify (hd0,0)

grub> chainloader +1

grub> makeactive

grub> boot

以rootnoverity指令??GRUB不要mount (hd0,0)的分割?^,只要知道待??是要???哟朔指??^上的作?I系?y。chainloader +1的意思是指定此分割?^上的第一??磁?^?碜????印?makeactive指令是要在此分割?^上?O定active的旗?耍?只要是Windows的作?I系?y都是要?@?N做的。最後以boor指令?M行?_?C。




使用硬碟上的GRUB?_?C???樱?

GRUB的?_?C磁片固然方便好用,但?u作GRUB?_?C磁片的目的只在於系?y救援之用,要能?_??享用GRUB的??大功能,最好是可以用硬碟上的GRUB?磉M行?_?C,就像LILO一?影惭b到硬碟的MBR上。

首先要在系?y上建立GRUB?S玫拈_?C目??/boot/grub,如同?u作GRUB的?_?C磁片一?禹?要stage1?n和stage2?n,所以??把GRUB安?b目??下的i386-pc目??中的stage1?n和stage2?ncopy到????建立的/boot/grub目??底下:

mkdir /boot/grub

cp /usr/local/share/grub/i386-pc/stage* /boot/grub

完成之後?I入指令GRUB指令?M入GRUB命令列?h境,在GRUB命令列?h境?e?I入如下的指令:

grub> root (hd0,2)

grub> setup (hd0)

grub> quit

如此即可完成GRUB在/boot/grub中的?_?C?O定,先用root指令mount目??/boot/grub所在的位置,其中的(hd0,2)就是指上面假?O的Slackware系?y,也就是?f/boot/grub目??是在Slackware系?y中所建立的。所若是要改成由Windows98?矸胖?GRUB的stage?n的??,就要在Windows98的系?y上建立/boot/grub的目??,?K??stage1?n和stage2?n存放在Windows98上的bootgrub目???e,而root指令的???狄惨?改??Windows98所在的分割?^,也就是上面假?O的(hd0,0)。第二??指令setup是指要??GRUB安?b在哪??位置?黹_?C???樱?如果是要安?b到硬碟的MBR上的??只??加上硬碟的位置如(hd0),若是要安?b到硬碟第一??分割?^上的第一??磁?^的??就要加上分割?^的位置如(hd0,0)。

除非是有特殊的情?r,不然最好是?b在硬碟的分割?^上?^安全。最後使用quit指令?x?_GRUB命令列?h境。




使用?x??清?危?

?F在?m然可以用GRUB?碜龆嘀亻_?C的管理,但每次都要??入繁?s的指令也不方便,因此GRUB也提供了?x??清?蔚姆绞剑???每次?_?C?r只??按上下?I?x?褚??_?C的系?y再按下Enter?I即可?M行?_?C而不必再??入任何的指令。GRUB在?_?C?r??先?ふ?/boot/grub目??下的menu.lst?n,找到的??GRUB就??依照menu.lst?n的?热蒿@示一???x??清?蔚??D形介面,??使用者?x?褚??_?C的作?I系?y。

首先在/boot/grub目??下建立一??新?n名??menu.lst,底下是menu.lst?n的?O定??例:

#/boot/grub/menu.lst

timeout 30

default 0 #Default Slackware Linux

fallback 1 #Windows98

fallback 2 #Mandrake Linux

color light-green/brown blink-red/blue

# For booting Slackware Linux

title Slackware

root (hd0,1)

kernel /boot/vmlinuz root=/dev/hda2 ro

#For booting Windows

title Windows98

rootnoverify (hd0,0)

chainloader +1

makeactive

#For booting Mandrake Linux

title Mandrake

root (hd1,1)

kernel /boot/vmlinuz root=/dev/hdb1 ro

上面menu.lst?n的??例是???χ?前所假?O的硬碟分割?^上配置的作?I系?y而?O定的。menu.lst是以#符????作注解的?_?^,GRUB??忽略所有以#符???⑹嫉淖⒔庑小?timeout指令是指GRUB???又?後的等待?r?g,以秒???挝唬?所以上面的??例就是等待30秒的意思。default指令就是??GRUB???又?後等待的?r?g超?^指令timeout所?O定的?r?g的??,就??指令default後面???邓?指定的系?y,????0代表menu.lst?n中第一??被?O定的作?I系?y,以上面的??例而言就是指Slackware Linux,因?樗?是最先被?O定的,如果???蹈???1的??就是????Windows98,以此??推。fallback指令是指??GRUB???又噶?default所指定的作?I系?y失?〉脑?,便?????又噶?fallback所指定的作?I系?y,以上面的??例而言,??Slackware???邮??〉脑?GRUB就??????fallback所指定的便是Windows98。指令color可以?O定GRUB?x??清?蔚那熬?/背景的??色,有?PGRUB可以指定的??色可以查看GRUB的info文件。接下?淼闹噶罹褪窃O定作?I系?y,指令title可以?O定??作?I系?y的?祟},而其下的?O定的指令????LN是原本在GRUB命令列中所?I入的指令是一?拥模?差?e是不用再加上boot指令。

?O定好menu.lst?n後,?⒋嗽O定?n存在/boot/grub目??底下即可,然後重新?_?C便??看到GRUB漂亮的?x??清?危??{在就可以??著???硬煌?的作?I系?y了。



以上是GRUB的基本使用?f明,??硬碟上有?S多的作?I系?y?r,使用GRUB是理所??然的,?K且是正?_的?x?瘢?就算硬碟上只有一?煞N作?I系?y也可以使用GRUB。??然GRUB的功能是很??大的,已足以取代?鹘y的LILO,可以多???xGRUB的info文件?e面的?f明。

文章评论

共有 位网友发表了评论 查看完整内容