新闻中心

EEPW首页>嵌入式系统>设计应用> 教你如何学习GRUB

教你如何学习GRUB

作者: 时间:2016-09-12 来源:网络 收藏

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 分区。但是,有它自己的 root 分区定义。的 root 分区是保存 Linux 内核的分区。这可能是您的正式 root 文件系统,也可能不是。我们讨论的是,需要指定 GRUB 的 root 分区。进入 root 分区时,GRUB 将把这个分区安装成只读型,这样就可以从该分区中装入 Linux 内核。GRUB 的一个很“酷”的功能是它可以读取本机的 FAT、FFS、minix、ext2 和 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=/就是的硬盘分区表示法,ro是readonly的意思。initrd用来初始的image,并设置相应的参数。

命令map:当你有两块硬盘,一个无法从第二块硬盘启动的操作系统,例如Windowsxp,就可以使用map命令.你能够将hd0映射为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 安装

你可以从ftp://alpha.gnu.org/pub/gnu/grub 下载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

# make install

至此你已经为安装GRUB真正做好了准备。

将GRUB的相关文件保存在诸如/boot/grub的目录中是一个好主意。为此,按如下步骤:

1.默认状态下,GRUB所有文件将安装在/usr/share/grub/i386-pc(或者在

/usr/local/share/grub/i386-pc目录下,这只取决于你的shell变量的设置。)

2.建立一个叫做/boot/grub的目录,然后拷贝下列文件到这个目录:

stage1 stage2 * stage1 5

稍候将解释这些文件。同时也要把GRUB(可能在/usr/sbin或者/usr/local/sbin

目录下)拷贝到/boot/grub目录下。

安装GRUB可以分为三个单独的步骤:

1.将“stage1”安装到MBR中。

2.设置“stage2”的地址或者位置。

3.设置一个菜单或选项,用来决定启动哪一个操作系统。

使用下面的命令开始安装GRUB。

#cd /boot/grub

# ./grub

这个命令根据BIOS的设置检测硬件设备,同时产生一些输出信息。这会花较长的时间。

end_request: I/O error, dev 02:00 (floppy), sector 0

GRUB version 0.5.96.1 (640K lower / 3072K upper memory)

TAB键可列出可能的命令列表。其它情况下TAB会列出设备或文件名。类似下面的提示会出现:

grub>

现在,假设你将Linux安装在了第一块硬盘的第一个分区中或者/dev/hda1中。记住GRUB的命名规则,将上面的名字改为(hd0,0)。键入下面的命令:

grub> install (hd0,0)/boot/grub/stage1 (hd0) (hd0,0)/boot/grub/stage2

p (hd0,0)/boot/grub/menu.conf

现在分析一下这个命令的细节。

install

一个内置的命令,它告诉GRUB将(hd0,0)/boot/grub/stage1安装到hd0的主引导纪录中。

(hd0,0)/boot/grub/stage2



关键词:GRUBlinux

评论


相关推荐

技术专区

关闭