系统引导管理器GRUB为初学者指南Word格式文档下载.docx

上传人:b****6 文档编号:8612505 上传时间:2023-05-12 格式:DOCX 页数:19 大小:27.10KB
下载 相关 举报
系统引导管理器GRUB为初学者指南Word格式文档下载.docx_第1页
第1页 / 共19页
系统引导管理器GRUB为初学者指南Word格式文档下载.docx_第2页
第2页 / 共19页
系统引导管理器GRUB为初学者指南Word格式文档下载.docx_第3页
第3页 / 共19页
系统引导管理器GRUB为初学者指南Word格式文档下载.docx_第4页
第4页 / 共19页
系统引导管理器GRUB为初学者指南Word格式文档下载.docx_第5页
第5页 / 共19页
系统引导管理器GRUB为初学者指南Word格式文档下载.docx_第6页
第6页 / 共19页
系统引导管理器GRUB为初学者指南Word格式文档下载.docx_第7页
第7页 / 共19页
系统引导管理器GRUB为初学者指南Word格式文档下载.docx_第8页
第8页 / 共19页
系统引导管理器GRUB为初学者指南Word格式文档下载.docx_第9页
第9页 / 共19页
系统引导管理器GRUB为初学者指南Word格式文档下载.docx_第10页
第10页 / 共19页
系统引导管理器GRUB为初学者指南Word格式文档下载.docx_第11页
第11页 / 共19页
系统引导管理器GRUB为初学者指南Word格式文档下载.docx_第12页
第12页 / 共19页
系统引导管理器GRUB为初学者指南Word格式文档下载.docx_第13页
第13页 / 共19页
系统引导管理器GRUB为初学者指南Word格式文档下载.docx_第14页
第14页 / 共19页
系统引导管理器GRUB为初学者指南Word格式文档下载.docx_第15页
第15页 / 共19页
系统引导管理器GRUB为初学者指南Word格式文档下载.docx_第16页
第16页 / 共19页
系统引导管理器GRUB为初学者指南Word格式文档下载.docx_第17页
第17页 / 共19页
系统引导管理器GRUB为初学者指南Word格式文档下载.docx_第18页
第18页 / 共19页
系统引导管理器GRUB为初学者指南Word格式文档下载.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

系统引导管理器GRUB为初学者指南Word格式文档下载.docx

《系统引导管理器GRUB为初学者指南Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《系统引导管理器GRUB为初学者指南Word格式文档下载.docx(19页珍藏版)》请在冰点文库上搜索。

系统引导管理器GRUB为初学者指南Word格式文档下载.docx

其它的发行版本请用其自己特色的软件包管理工具来安装;

当然您也可以通过源码包,在任何Linux的发行版上安装;

至于源码包的安装方法;

《如何编译安装源码包软件》

[root@localhost~]#tarzxvfgrub*.tar.gz

[root@localhost~]#cdgrub-xxx

[root@localhost~]#./configure;

make;

makeinstall

确认您是否成功安装了GRUB,您可以测试是否有如下两个命令;

[root@localhost~]#grub

[root@localhost~]#grub-install

如果您不能找到这两个命令,可能您的可执行程序的路径没有设置;

《设置可执行程序路径》,当然您可以用绝对路径;

比如下面的;

[root@localhost~]#/usr/sbin/grub

[root@localhost~]#/usr/sbin/grub-install

如果您还是找不到GRUB软件包安装在哪了;

您可以用下面的命令来解决和查找;

[root@localhost~]#updatedb注:

这个要花很长时间;

是索引slocate的库,然后再通过locate来查找;

[root@localhost~]#locategrub

比如找到的是有类似如下的;

/sbin/grub-md5-crypt

/sbin/grub

/sbin/grub-install

/sbin/grub-terminfo

在一般情况下,在路径中带有bin或sbin中字样的,这些路径下都是可执行程序;

sbin是超级权限用户才能使用的管理命令;

要使用这些命令一般的情况下得切换到root用户下才能使用;

比如

[beinan@localhost~]$su-注:

切换到root用户,并且切换到其家目录;

Password:

[root@localhost~]#/sbin/grub注:

用绝对路径来运行grub命令;

三、在Linux中,GRUB的配置中的安装和写入硬盘的MBR;

1、在Linux中,GRUB配置过程中的安装grub-install;

grub-install命令有何用呢?

其实就是把我们前面已经安装的软件包中的一些文件复制到/boot/grub中;

对于新安装GRUB软件包后,也是一个必经的过程;

我们前面所说的GRUB软件包的安装;

而现在我们说的是GRUB配置的过程中的安装;

虽然在洋文中都是install,但表达的意思是不一样的;

我们首先要运行fdisk-l来确认到底是硬盘的标识;

这个过程主要是确认硬盘的标识是哪个调备,到底是/dev/hda还是/dev/hdb还是其它的;

[root@localhost~]#fdisk-l

Disk/dev/hda:

80.0GB,80026361856bytes

255heads,63sectors/track,9729cylinders

Units=cylindersof16065*512=8225280bytes

DeviceBootStartEndBlocksIdSystem

/dev/hda1*19707791493+7HPFS/NTFS

/dev/hda2971972970356667+5Extended

/dev/hda5971291515623181bW95FAT32

/dev/hda6291641319767488+83Linux

/dev/hda7413255901171938683Linux

/dev/hda8559168069767488+83Linux

/dev/hda9680796572290062683Linux

/dev/hda1096589729578308+82Linuxswap/Solaris

如果通过fdisk-l出现有/dev/hda字样的,我们就要用下面的命令来安装;

[root@localhost~]#grub-install/dev/hda

Installationfinished.Noerrorreported.

Thisisthecontentsofthedevicemap/boot/grub/device.map.

Checkifthisiscorrectornot.Ifanyofthelinesisincorrect,

fixitandre-runthescript`grub-install'

.

(fd0)/dev/fd0

(hd0)/dev/hda

如果是您fdisk-l出现的有/dev/hdb呢,那就如下运行;

[root@localhost~]#grub-install/dev/hdb

如果既有/dev/hda和/dev/hdb就安装到/dev/hda中;

值得注意的是如果您有一个/boot分区,应该用如下的办法来安装;

[root@localhost~]#grub-install--root-directory=/boot/dev/hda

[root@localhost~]#grub-install--root-directory=/boot/dev/hdb

注解:

具体是/dev/hda还是/dev/hdb,请以fdisk-l为准;

如果两个都有,就看您把/boot分区是放在第一块硬盘还是第二块硬盘上了,以实际情况为准;

2、设定GRUB的/boot分区并写入MBR;

在Linux中,GRUB软件包的安装,及在配置过程中安装grub到/boot中还是不够的,还要把GRUB,写入MBR才行;

有时我们重新安装了Windows,Windows会把MBR重写,这样GRUB就消失了;

如果您出现这样的情况,就要进行这个过程;

会出现grub>

提示符,这是grub命令行模式,如果能在开机中出现提示符,没有引导不起来的系统,除非您的系统破坏的极为严重。

如果仅仅是GRUB被破坏了,GRUB命令行是能让操作系统引导起来的;

接着看例子,我们要找到/boot/grub/stage1的,在grub>

后面输入;

grub>

find/boot/grub/stage1

(hd0,6)

(fd0)注:

这个是软驱;

现在很少用软驱了,如果您有这方面的需要,自己看GRUB的DOC吧;

(hd0,6)这是/boot所在的分区;

不要误解为是Linux的/所在的分区,这是值得注意的;

root(hd0,6)注:

这是/boot所在的分区;

setup(hd0)注:

把GRUB写到MBR上;

上面这步骤是根据find/boot/stage1而来的,仔细看一下就明白了;

现在我们一般安装很少会把/boot分区列为一个单独的分区;

不过有的弟兄可能也喜欢这么做;

所以还是有必要说一下为好;

四、GRUB的配置文件的menu.lst的写法;

对于GRUB来说,如果没有配置menu.lst,无论是Linux版本的GRUB,还是WINGRUB,都会有命令行可用,通过命令行是一样能把操作系统引导起来的;

有些弟兄总以为menu.lst配置错了,或者在机器启动后出现grub>

命令行模式就要重新安装系统,其实根本没有这个必要;

只要学会GRUB的命令行的用法,根本没有必要重装系统;

menu.lst位于/boot/grub目录中,也就是/boot/grub/menu.lst文件;

您可以用vi或您喜欢的编辑器来编辑他;

如果您不会用vi,还是去学习一下吧;

简单的用法怎么也得会,对不对?

毕竟这个文档不是讲vi的用法的;

有的弟兄会说,我没有menu.lst怎么办?

那就创建一个;

用下面的命令;

[root@localhost~]#touch/boot/grub/menu.lst

然后我们再做一个/boot/grub/menu.lst的链接/boot/grub/grub.conf

[root@localhost~]#cd/boot/grub

[root@localhost~]#ln-smenu.lstgrub.conf

现在我们来写GRUB的menu.lst了,因为/boot/grub/grub.conf是/boot/grub/menu.lst的链接文件,改哪个都行。

链接文件相当于Windows的快捷方式,这样可能能更好的理解;

1、menu.lst的写法之一;

首先我们看一下我的Fedora4.0中的/boot/grub/menu.lst的内容;

default=0

timeout=5

#splashimage=(hd0,6)/boot/grub/splash.xpm.gz

hiddenmenu

titleFedoraCore(2.6.11-1.1369_FC4)

root(hd0,6)

kernel/boot/vmlinuz-2.6.11-1.1369_FC4roroot=LABEL=/

initrd/boot/initrd-2.6.11-1.1369_FC4.img

titleWinXp

rootnoverify(hd0,0)

chainloader+1

default=0是默认启动哪个系统,从0开始;

每个操作系统的启动的定义都从title开始的,第一个title在GRUB的启动菜单上显示为0,第二个启动为1,以此类推;

注:

表示在开机后,GRUB画面出现几秒后开始以默认启动;

如果在启动时,移动上下键,则解除这一规则;

#splashimage=(hd0,6)/boot/grub/splash.xpm.gz注:

GRUB的背景画面,这个是可选项;

我不喜欢GRUB的背景画面,所以加#号注掉,也可以删除;

隐藏GRUB的启动菜单,这项也是可选的,也可以用#号注掉;

一般的情况下对Linux操作系统的启动,一般要包括四行;

title行;

root行;

kernel行;

initrd行;

1)在menu.lst中,通过root(hd[0-n],y)来指定/boot所在的分区;

titleXXXXX注:

title后面加一个空格,title是小写的,后面可以自己定义;

比如FC4,自己定义一个名字就行;

root(hd[0-n],y),在本例中,我们看到的是root(hd0,6),root(hd[0-n],y)表示的是/boot所在的分区;

有时我们安装Linux的时候,大多是不设置/boot的,这时/boot和/所在的同一个分区;

这个root(hd[0-n],y)很重要,因为/boot目录中虽然有grub目录,最为重要的是还有kernel和initrd文件,这是Linux能启动起来最为重要东西;

有的弟兄会问,root(hd[0-n],y)是怎么来的?

《在Linux系统中存储设备的两种表示方法》

2)在menu.lst中,kernel命令行的写法;

kernel一行,是通指定内核及Linux的/分区所在位置;

比如例子中是;

在这里以kernel起始,指定Linux的内核的文件所处的绝对路径;

因为内核是处在/boot目录中的,如果/boot是独立的一个分区,则需要把boot省略;

如果/boot是独立的分区,这行要写成:

kernel/vmlinuz-2.6.11-1.1369_FC4roroot=LABEL=/

因为/boot所处的分区已经在title下一行root(hd[0-n],y)中指定了,所以就无需要再指明内核处在哪个分区了;

另外Linux系统的硬盘分区的挂载配置文件在/etc/fstab,原理是通过mount/dev/hd[a-z]X/boot来进行的;

您可以对照着来理解;

ro表示只读;

root=LABEL=/来表示Linux的根所处的分区。

LABEL=/这是硬盘分区格式化为相应文件系统后所加的标签;

如果您不了解什么是标签,也可以直接以/dev/hd[a-z]X或者/dev/sd[a-z]X来表示;

就看您的Linux是根分区是在哪个分区了。

比如我的是在/dev/hda7,那这里就可以写成root=/dev/hda7;

如果查看系统运行所挂载的分区,请用df-lh来查看,就能明白是不是/boot是独立的分区,或者查看/etc/fstab也能知道;

[root@localhost~]#df-lh

容量已用可用已用%挂载点

/dev/hda711G9.2G1.2G90%/

/dev/shm236M0236M0%/dev/shm

在这个例子中,我们可以发现/boot并没有出现只有/dev/hda7,这表示/boot并不是独立的一个分区;

所有的东西都包含在/中;

于是我们在/boot中查看内核版本;

[root@localhost~]#ls/boot/vmlinuz*

/boot/vmlinuz-2.6.11-1.1369_FC4注:

看到内核vmlinuz所处的目录;

于是我们就可以这样kernel这行了;

kernel/boot/vmlinuz-2.6.11-1.1369_FC4roroot=/dev/hda7

3)initrd命令行的写法;

如果是/boot独立一个分区,initrd一行要把/boot中省略;

如果/boot不是处于一个分区,而是和Linux的/分区处于同一分区,不应该省略;

比如我们在2)中用的例子;

现在拿到这里,我们应该首先查看/boot中的initrd的文件名到底是什么;

[root@localhost~]#ls/boot/initrd*

/boot/initrd-2.6.11-1.1369_FC4.img

如果是通过df-lh得知或查看/etc/fstab也行,得知/boot是独立的分区;

这时initrd应该写成;

initrd/initrd-2.6.11-1.1369_FC4.img

如果是/boot不是独处一个分区,而是在/同一处一个分区,则要写成;

4)menu.lst第一种写法的总结和实践;

在这里,我们只说重要的,不重要的就一带而过了;

1]用fdisk-l;

df-lh;

more/etc/fstab来确认分区情况;

我们过fdisk-l;

df-lh;

more/etc/fstab来确认/boot所在的分区,及Linux的根分区所在位置;

比如我们确认/boot和Linux的/分区同处一个分区;

然后我们/etc/fstab中,查看/分所在的分区或分区标签是什么;

[root@localhost~]#more/etc/fstab

#Thiseditedbyfstab-sync-see'

manfstab-sync'

fordetails

LABEL=//ext3defaults11

/dev/devpts/dev/ptsdevptsgid=5,mode=62000

/dev/shm/dev/shmtmpfsdefaults00

/dev/proc/procprocdefaults00

/dev/sys/syssysfsdefaults00

LABEL=Ssdefaults00

/dev/hdc/media/cdrecorderautopamconsole,exec,noauto,managed00

经过上面的df-lh和more/etc/fstab的对照中得知,/boot并是独处一个分区,而是和/在同一个分区;

这个Linux系统安装在/dev/hda7上,文件系统(此分区)的标签为LABEL=/,/boot也是处于/dev/hda7,/dev/hda7也可以说是root(hd0,6);

2]查看内核vmlinuz的和initrd文件名的全称;

[root@localhost~]#ls-lh/boot/vmlinuz*

-rw-r--r--1rootroot1.6M2005-06-03/boot/vmlinuz-2.6.11-1.1369_FC4

[root@localhost~]#ls-lh/boot/initrd*

-rw-r--r--1rootroot1.1M11月2622:

30/boot/initrd-2.6.11-1.1369_FC4.img

3]开始写menu.lst;

我们根据上面所提到的,可以写成如下的样子;

titleFC4

也可以写成;

上面两个不同之处在于一指定Linux的根/所在的分区时,一个是用了文件系统的标签,另一个没有用标签;

2、menu.lst的写法之二,精简型;

本写法主要是把指定/boot所位于的所分区直接写入kernel指令行;

这样就省略了通过root(hd[0-n],y)来指定/boot所位于的分区;

1)第一种情况:

/boot和Linux的/根分区在同一个分区;

有前面的那么多的讲解,menu.lst写法之二就好理解多了;

也得分两种情况,咱们先把/boot并不是独处一个分区,而是和Linux的根分区处于同一个分区;

我们以4)menu.lst第一种方法的写法总结的实例为例子;

titleFC4x

kernel(hd0,6)/boot/vmlinuz-2.6.11-1.1369_FC4roroot=/dev/hda7

initrd(hd0,6)/boot/initrd-2.6.11-1.1369_FC4.img

titleFC4x注:

自己为这个Linux起个简单的名,以title开头,然后一个空格,后面就自己发挥吧,FC4或FC4x都行;

kernel空格(hd0,6)/boot/vmlinuz-2.6.11-1.1369_FC4空格ro空格root=/dev/hda7

kernel这行这样理解kernel(boot所在的分区)/boot/内核文件件全称roroot=Linux根所位于的分区或标签

initrd空格(hd0,6)/boot/initrd-2.6.11-1.1369_FC4.img

initrd这行可以这样理解initrd(/boot所在的分区)/boot/内核文件名全称

2)第二种情况:

/boot独立一个分区,和Linux的根分区不是同一个分区;

比如我们查看到df-lh得到的是

/dev/hda6200M120M80M60%/boot

/dev/hda711G9.2G1

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2