QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1155|回复: 3

GRUB简介及实用操作

[复制链接]
发表于 2007-2-7 15:10:56 | 显示全部楼层 |阅读模式
注:这篇文章的版权由作者岳光([email protected])所有,任何人不得在未经作者允许的情况下利用此文章获取商业利益.这篇文章可以在非商业目的下任意的传播或复制或引用,但如要修改需经作者允许.

一、简介

grub是一段特殊的程序它能运行在LINUX下,也能驻留主引导纪录从而在开机时启动各个操作系统。这个软件的独到之处在于它不但能提供菜单式引导界面而且具有一定的交互功能,如果引导出问题,如重装操作系统、硬盘分区变化等,可以直接在进入操作系统前作必要的调整,可以避免许多麻烦。grub对各种文件系统都有支持,如果安装在软盘或优盘上可以解决诸多的机器无法引导或某个操作系统无法引导类问题,如果结合VMWare功能就更强大了。本文仅介绍GRUB的基本使用思路及一些实用操作,如果灵活应用,应该可以解决大部分引导问题。

二、GRUB的界面及组织结构

在LINUX操作系统下,GRUB程序在/boot/grub目录下,其中grub.conf是GRUB的配置文件,在shell中键入grub即可进入grub的交互程序,如果你把grub装入主引导纪录开机时会显示菜单,按c键也可进入交互程序,不过这时的交互程序是独立于系统运行的。

三、GRUB的基本命令及引导系统的过程

进入grub交互程序后就可手动完成引导操作系统的过程,命令如下

(1)root (hd0,3)

该命令指定grub当前的工作目录,以后对文件的载入操作都是针对这个位置进行的。注意:root后要有空格。逗号前的项表示设备,如hd0表第零号硬盘也即linux下的hda,fd0表示第零号软驱。注意,grub下边号从零开始。逗号后面的数字表示分区。如hda5 用root (hd0,4)表示。其实这里并不困难,输入root (后按tab 键grub会自动列出设备名供你参考,输入root (hd0,也可按tab. 这里tab键的作用与bash下的相同且适用于所有grub命令。

(2)kernel /boot/vmlinuz root=/dev/hda5

kernel 命令用于将内核装入内存并提供内核参数,如上面命令,是把root所指定的位置下boot/目录下的vmlinuz文件作为内核装入内存,并传递内核参数root=/dev/hda5 表示init(也即/分区所在)所在的位置的分区。

(3)initrd /boot/image.img

initrd命令用于将镜像文件载入内存。使用方法如kernel命令,但一般不写参数。

(4)boot

boot命令告知grub开始引导操作系统,执行后grub将运行载入的内核,并将控制权交给内核。至此操作系统开始启动,grub使命完成。

以上命令读者如果结合自己机器的实际情况运行,可初步体会到GRUB的工作方式。但是,系统引导只有在开机自检后GRUB中才能成功(此时还未进入操作系统),在LINUX下是不能引导其他操作系统的。这就需要将GRUB装载到主引导记录上(见下文)。

如需引导WINDOWS则不需要以上全部命令,只需执行root()后,chainloader +1,后boot即可。

四、将grub的安装在引导记录上

grub如果不能装在引导记录上,几乎等同于废物。下面介绍如何将grub装入引导纪录。首先,在linux下进入grub(或在开机时,如果grub已经装到硬盘MBR或软盘MBR上)。

然后,用root命令设定当前目录为grub所在的分区(一般linux下运行的grub在/boot/grub下,找该目录所在的设备即可)。运行setup命令如,setup (hd0,5)表示将grub装到hda5的主导记录上,setup (hd0)则表示将grub装到hda的主引导记录上。

至此,grub已经安装到了你的硬盘引导记录上,可以引导你的系统了。开机即入引导界面后,按c 可进入grub命令交互界面。

五、开机菜单的制作

GRUB支持开机菜单,这须要修改/boot/grub/grub.conf文件中的内容。读者可根据注释和参照文件中已有的命令进行修改。

grub.conf的结构很简单。#后是注释,开头的几行是一些对菜单整体的配置命令,如设置自动引导时间,屏幕背景等。接下来以title分段的几行是对菜单中的引导项的设置,其中的命令正是上面介绍的命令,只不过不需要boot命令,grub会自动执行该命令。

如果你的grub装在了主引导记录上,一般修改完grub.conf后重起即可体现修改结果,如果没有变化或引导错误,可通过setup()命令重新安装。(如果开机时因grub.conf有误而不能进入菜单,一样可以使用交互程序。)

六、总结和几点提示

grub就是这样一个程序,在正常情况下可以为你提供一个开机菜单,在系统结构改变时可以帮助你轻松引导,grub在交互界面中提供了丰富而强大的命令,支持多种操作系统,是你必不可少的工具!

如果你忘记了grub命令或其格式,键入help或按tab键即可。

如果你的grub没有装在主引导记录上在linux下运行grub后执行root setup exit.

如果你需要启动菜单,请修改grub.conf文件。

如果你要以防不测,可以将grub安装在软盘或优盘的引导记录上,以随时引导机器。

如果你要制作启动盘,当然要用grub为引导工具。
发表于 2007-2-7 18:39:07 | 显示全部楼层
您这文章实在不值得用来获取什么商业利益。
grub是一段特殊的程序它能运行在LINUX下,也能驻留主引导纪录从而在开机时启动各个操作系统。

看这句就知道了。
回复

使用道具 举报

 楼主| 发表于 2007-2-8 22:52:13 | 显示全部楼层
看来这篇文章是遗笑大方之家了,有什么不当之处还请指教。
至于版权声明,我见有的文章有,觉得有趣遍也加了,不知此类声明应如何写。
谢谢赐教。
回复

使用道具 举报

发表于 2007-2-9 11:48:05 | 显示全部楼层
唉,那天上网看了一堆文章窝了一肚子火。钱是好东西,可也不能到哪儿都是钱啊。就别说假化肥毒大米什么的了,也别说学者教授什么的不干正事儿了,更不敢说权贵们的坏话了。可就是在网上发个贴,还一开头就是商业利益,什么事儿啊这都。论坛不就是大伙儿交流互相学习的地方吗,跟平常说话一样,还什么未经许可不得转载违者必究,真拿自个儿当回事儿啊还。再说有一些文章的质量实在是不怎么样,还有脸提钱呢。

抱歉了,不是针对你。我那天一看这篇文章的开头就看不下去了。

你说的 grub 的用法还是挺不错的,不会用的人也能上手了。不过好像,你对 grub 是怎么工作的还不怎么清楚呢吧。Grub 其实一点也不特殊,Linux 下边的 grub 程序跟硬盘第一条磁道里边的程序跟本就是两回事。还有你用的驻留这个词,这也太不专业了。那个菜单的文件是 menu.lst,好几年前我用的那个 redhat 给 menu.lst 做了个链接是 grub.conf,别的发行版里不一定有的。启动盘里用 grub,也不一定合适,除了它还有好多引导程序呢,比如 lilo、syslinux、isolinux、loadlin.exe,各有各的用处,或者直接把内核放在启动盘的最前面也行。不是有人把内核直接烧到 BIOS 里边去吗,那就没引导程序什么事了。

其实在网上发贴,一定要字斟句酌,一不留神说错一点,不知道要误导多少人呢。要是我的话,我绝对不敢提版权和商业利益,只能说欢迎大家一起修改润色,欢迎转载,希望能帮助更多的人。尊重作者的劳动,转载时注明作者和出处,修改时提一下原文是应该的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-27 05:04 , Processed in 0.042689 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表