grub命令以及启动详解

上传人:宝路 文档编号:2734779 上传时间:2017-07-27 格式:DOC 页数:43 大小:2.60MB
返回 下载 相关 举报
grub命令以及启动详解_第1页
第1页 / 共43页
grub命令以及启动详解_第2页
第2页 / 共43页
grub命令以及启动详解_第3页
第3页 / 共43页
grub命令以及启动详解_第4页
第4页 / 共43页
grub命令以及启动详解_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《grub命令以及启动详解》由会员分享,可在线阅读,更多相关《grub命令以及启动详解(43页珍藏版)》请在金锄头文库上搜索。

1、Grub 详解应樱家冢、Bluedata 以及其他兄弟的要求,这里谈一谈自己在配置 Grub 当中积累的点滴,不存在什么高深的使用技巧_,我自己也没有掌握, 实际上就是我们常用的功能整理了一下。如有错误和疑问,请大家指教!因为时间不够用,所以才这么迟的出来,希望两位兄弟谅解,同时感谢网络上曾经为了 linux 的事业不停奋斗而无私贡献的人们因为本文参考了他们的经验!1、一个 GRUB 配置文件2、解读 grub.conf 文件3、配置 grub4、GRUB 的交互性5、常见 grub 除错方法的思路1 一个 GRUB 配置文件基于本例的分区如下:hda 15Ghda1 8G / RED HAT

2、 LINUX8.0hda5 7G /homehdc 20Ghdc1 6.4G WinXPhdc5 6.4Ghdc6 6.4Ghdc7 6.4G#fdisk -l# Disk /dev/hdc: 255 heads, 63 sectors, 2434 cylindersUnits = cylinders of 16065 * 512 bytesDevice Boot Start End Blocks Id System/dev/hdc1 * 1 894 7181023+ b Win95 FAT32/dev/hdc2 895 2434 12370050 f Win95 Extd (LBA)/dev

3、/hdc5 895 1787 7172991 b Win95 FAT32/dev/hdc6 1788 2434 5196996 b Win95 FAT32Disk /dev/hda: 255 heads, 63 sectors, 1867 cylindersUnits = cylinders of 16065 * 512 bytesDevice Boot Start End Blocks Id System/dev/hda1 * 1 1020 8193118+ 83 Linux/dev/hda2 1021 1802 6281415 83 Linux/dev/hda3 1803 1867 522

4、112+ 82 Linux swapgrub.conf,这个文件位于;/boot/grub/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 /b

5、oot/vmlinuz-version ro root=/dev/hda1# initrd /boot/initrd-version.img#boot=/dev/hdadefault=0timeout=3splashimage=(hd0,0)/boot/grub/splash.xpm.gztitle Red Hat Linux (2.4.18-14)root (hd0,0)kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/initrd /boot/initrd-2.4.18-14.imgtitle Microsoft Windows XProot (h

6、d1,0)chainloader (hd1,0)+1makeactivemap (hd0) (hd1)map (hd1) (hd0)boot2 解读 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# a

7、ll 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,等等。

8、所以,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 的位置,也可以 splash /boot/logo/800x600x8.img)title Red Hat Linux (2.4.18

9、-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 (hd

10、1) (hd0)root (hd1,0) (注:这是指第二个硬盘 (从硬盘)上第一个分区 )chainloader (hd1,0)+1 (注:链式装入器,装入一个扇区的数据然后把引导 权交给它。详细说明如下)makeactiveboot(注 :在 Linux 中,当谈到 root 文件系统时,通常是指主 Linux 分区。但是,GRUB 有它自己的 root 分区定义。GRUB 的 root 分区是保存 Linux 内核的分区。这可能是您的正式 root 文件系统,也可能不是。我们讨论的是 GRUB,需要指定 GRUB 的 root 分区。进入 root 分区时,GRUB 将把这个分区安装成只

11、读型,这样就可以从该分区中装入 Linux 内核。GRUB 的一个很“酷” 的功能是它可以读取本机的 FAT、FFS 、minix、ext2 和 ReiserFS 分区.到目前为止,您可能会感到一点疑惑,因为 GRUB 所使用的硬盘分区命名约定与 Linux 使用的命名约定不同。在 Linux 中,第一个硬盘的第五个分区称作 hda5。而 GRUB 把这个分区称作 (hd0,4)。 GRUB 对硬盘和分区的编号都是从 0 开始计算。另外,硬盘和分区都用逗号分隔,整个表达式用括号括起。现在,可以发现如果要引导 Linux 硬盘 hda5,应输入 root (hd0,4) 。知道了内核在哪儿,还要

12、具体指出哪个文件是内核文件,这就是 kernel 的工作。kernel /boot/vmlinuz-2.4.18-14 ro root=LABEL=/说明/boot/vmlinuz-2.4.18-14 就是要载入的内核。后面的都是传递给内核的参数。root=LABEL=/ 就是 linux 的硬盘分区表示法,ro 是 readonly 的意思。initrd 用来初始的 linux image,并设置相应的参数。命令 map:当你有两块硬盘,一个无法从第二块硬盘启动的操作系统,例如Windowsxp,就可以使用 map 命令.你能够将 hd0 映射为 hd1,将 hd1 映射为 hd0。换句话说

13、,你可以虚拟的交换两个硬盘而启动所需要的操作系统 。命令形式如下:grub map (hd0) (hd1)grub map (hd1) (hd0)GRUB 使用了“链式装入器”(chainloader)。链式装入器从分区 (hd1,0) 的引导记录中装入 winxp 自己的引导装入器,然后引导它。这就是这种技术叫做链式装入的原因 - 它创建了一个从引导装入器到另一个的链。这种链式装入技术可以用于引导任何版本的 DOS 或 Windows。GRUB 的配置文件要简单就这么简单,如果你要更个性化一点,试一试把“color light-gray/blue ”加在 default 语句的下面3 配置

14、grubgrub 启动时会在/boot/grub/中寻找一个名字为 menu.lst 的配置文件,如果找不到此文件则不进入菜单模式而直接进入命令行模式。现在,我们来看一下如何在启动后进入各种操作系统,如何建立 menu.conf 文件。我们就从 GRUB 支持的启动过程开始。可以有两种方法来完成启动过程:A.通过调用内核本地启动B.连续启动或者将控制转给另一个引导器A 模式启动过程1配置跟设备或者告诉 GRUB 你的根文件系统。2告诉 GRUB 你的内核影像的位置,然后将参数传送给内核。3重新启动,试一下。为了启动 Linux,将内核以 bzImage 的文件名放在 /boot/目录中,跟文件

15、系统是/dev/hda1,或者 GRUB 中的(hd0,0) 。启动过程如下:1.root (hd0,0) This sets the root partition2.kernel /boot/bzImage root=/dev/hda1 This sets the kernelB 模式启动过程(这种模式假设当前的分区中安装了另一个启动管理器,例如LILO或者 NTLDR):1设置根分区但不要安装它2激活这个分区3配置需要启动的分区的第一个扇区4重新启动,看一下效果。我们在试试启动安装在/dev/hdc1 或者(hd1 ,0) 的 windows。启动 windows 的过程如下:1.root

16、noverify (hd1,0)2.makeactive3.chainloader +1 +1 sets the first sector of the current rootpartition4.boot transfers the control and quits GRUBmenu.conf 文件:它用于建立启动多操作系统时的菜单。建立 menu.conf 并不难。它使用简单的英语,就象你在这一节看到的那样。所有的菜单项目都以没有逗号分隔的“title TITLENAME”开头。你可以随意设置TITLENAME。设置 Linux 启动菜单步骤如下:1设置标题2设置根分区3设置内核的相应参数4启动一个菜单例子:title Red Hat Linux (2.4.18-14)root (hd0,0)kernel /boot/vmlinuz-2.4.18-14 ro root=LAB

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号