Chinaunix首页 | 论坛 | 博客
  • 博客访问: 62506
  • 博文数量: 33
  • 博客积分: 1510
  • 博客等级: 上尉
  • 技术积分: 312
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-08 18:20
文章分类

全部博文(33)

文章存档

2011年(1)

2010年(2)

2009年(30)

我的朋友

分类: LINUX

2009-02-11 09:25:37

2 解读grub.conf文件

我们将来看看grub.conf文件内语句,(:...)内的东西是我们的解读内容.
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You do not have a /boot partition. This means that
# all kernel and initrd paths are relative to /, eg.
# root (hd0,0)
# kernel /boot/vmlinuz-version ro root=/dev/hda1
# initrd /boot/initrd-version.img
#boot=/dev/hda (
:以上以符号井"#"开头的行表示被注释掉,没有任何意义)
default=0 (
:默认的操作系统就是由default控制的。default后加一个数字n,表明是第 n1个。需要注意的是,GRUB中,计数是从0开始的,第一个硬盘是hd0,第一 个软驱是fd0,等等。所以,default 0 表示默认的操作系统在这儿是 Red Hat Linux (2.4.18-14)如果你修改成1就是WinXP)
timeout=3 (
:timeout表示默认等待的时间,这儿是3秒钟。超过3秒,用户还没有作出选 择的话,系统将自动选择默认的操作系统;当然你可以改成任何你乐意的时间)
splashimage=(hd0,0)/boot/grub/splash.xpm.gz (
:指定开机画面文件splash.xpm.gz的位置)
title Red Hat Linux (2.4.18-14) (
:表示Red Hat Linux的菜单项)
root (hd0,0) (
:表示第一个硬盘第一个分区,这里的root和系 统内的root不是一码!详细如下说明)
kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/ (
:指定内核的位置,详细说明如下 )
initrd /boot/initrd-2.4.18-14.img (
:初始化)
title Microsoft Windows XP (
:表示Microsoft Windows XP的菜单项)
map (hd0) (hd1) (
:map是命令,详细如下)
map (hd1) (hd0)
root (hd1,0) (
:这是指第二个硬盘(从硬盘)上第一个分区)
chainloader (hd1,0)+1 (
:链式装入器,装入一个扇区的数据然后把引导 权交给它。详细说明如下)
makeactive
boot

(
: Linux 中,当谈到 "root" 文件系统时,通常是指主 Linux 分区。但是,GRUB 有它自己的 root 分区定义。GRUB root 分区是保存 Linux 内核的分区。这可能是您的正式 root 文件系统,也可能不是。我们讨论的是 GRUB,需要指定 GRUB root 分区。进入 root 分区时,GRUB 将把这个分区安装成只读型,这样就可以从该分区中装入 Linux 内核。GRUB 的一个很的功能是它可以读取本机的 FATFFSminixext2 ReiserFS 分区.到目前为止,您可能会感到一点疑惑,因为 GRUB 所使用的硬盘/分区命名约定与 Linux 使用的命名约定不同。在Linux 中,第一个硬盘的第五个分区称作 "hda5"。而 GRUB 把这个分区称作 "(hd0,4)"GRUB 对硬盘和分区的编号都是从 0 开始计算。另外,硬盘和分区都用逗号分隔,整个表达式用括号括起。现在,可以发现如果要引导 Linux 硬盘 hda5,应输入 "root (hd0,4)"
知道了内核在哪儿,还要具体指出哪个文件是内核文件,这就是kernel的工作。
kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/
说明/boot/vmlinuz-2.4.18-14就是要载入的内核。后面的都是传递给内核的参数。root=LABEL=/就是linux的硬盘分区表示法,roreadonly的意思。initrd用来初始的linux image,并设置相应的参数。
命令map:当你有两块硬盘,一个无法从第二块硬盘启动的操作系统,例如Windowsxp,就可以使用map命令.你能唤玥d0映射为hd1,将hd1映射为hd0。换句话说,你可以虚拟的交换两个硬盘而启动所需要的操作系统 。命令形式如下:
grub> map (hd0) (hd1)
grub> map (hd1) (hd0)
GRUB
使用了链式装入器”(chainloader)。链式装入器从分区 (hd1,0) 的引导记录中装入winxp自己的引导装入器,然后引导它。这就是这种技术叫做链式装入的原因 -- 它创建了一个从引导装入器到另一个的链。这种链式装入技术可以用于引导任何版本的 DOS Windows
GRUB
的配置文件要简单就这么简单,如果你要更个性化一点,试一试把“color light-gray/blue ”加在default语句的下面,下一次启动GRUB时,看看有什么变化,再试一试“color light-blue/red",惊喜吗? 有趣吧! )

3
如何使用grub?

3.1
安装
你可以从 下载GRUB的源代码。
得到文件grub-0.5.96.1.tar.gz,所以这样做:
# tar -xvzf grub-0.5.96.1.tar.gz
这个命令将解开的文件和目录放在一个名为grub-0.5.96.1的目录中。现在运行如
下命令:
#cd grub-0.5.96.1
# ./configure
如果你想定制GRUB,使之包含流行的文件系统和对网卡的支持,或者删除你不需要的网卡,可以运行如下命令:
# ./configure --help
这个命令将输出所有的命令选项。现在可以使用—enable—disable选项增加或
删除对特定网卡的支持。(注意:GRUB支持网络启动)
为了开始编译过程,键入如下命令:
# make
阅读(380) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~