收藏 分享(赏)

grub4dos命令解释.doc

上传人:ysd1539 文档编号:6732110 上传时间:2019-04-21 格式:DOC 页数:38 大小:83.50KB
下载 相关 举报
grub4dos命令解释.doc_第1页
第1页 / 共38页
grub4dos命令解释.doc_第2页
第2页 / 共38页
grub4dos命令解释.doc_第3页
第3页 / 共38页
grub4dos命令解释.doc_第4页
第4页 / 共38页
grub4dos命令解释.doc_第5页
第5页 / 共38页
点击查看更多>>
资源描述

1、grub4dos 命令解释一、菜单命令 菜单命令只能用于 grub 配置文件的全局配置部分,不能用在 grub命令行交互界面,菜单命令在配置文件中应放在其它命令之前。 1、default /设置默认启动的菜单项 2、fallback /设置启动某菜单项失败后反回的菜单项 3、hiddenmenu /隐藏菜单界面 4、timeout /设置菜单自动启动的延时时间 5、title /开始一个菜单项 二、常规命令 常规命令可以应该于配置文件和 grub 命令行交互界面,可使用的常规命令有 1、bootp /通过 bootp 初始化网络设备 2、color /设置菜单界面的颜色 3、device /指

2、定设备文件作为驱动器 4、dhcp /通过 DHCP 初始化网络设备 5、hide /隐藏某分区 6、ifconfig /手工配置网络设备 7、pager /改变内部页程序的状态 8、partnew /新建一个主分区 9、parttype /改变分区的类型 10、password 为菜单界面设置口令 11、rarp /通过 RARP 初始化网络设置 12、serial /设置串口设备 13、setkey /设置键盘映射 14、splashimage /设置 GRUB 启动时的背景图片文件 15、termainal /选择终端类型 16、tftpserver /指定 TFTP 服务器 17、un

3、hide /还原某隐藏分区 三、命令行和菜单项命令 命令行和菜单项命令可应该于 GRUB 配置文件的菜单项设置中,也可以用在 GRUB 命令交互界面。 1、bolcklist /显示某文件所在分区位置(block list notation) 2、boot /启动操作系统 3、cat /显示文件内容 4、chainloader /把启动控制权软交给另外的启动引导器 5、cmp /比较两个文件 6、configfile /加载已存在的 GRUB 配置文件 7、debug /设置为 debug 模式 8、displayapm /显示 APM BIOS 信息 9、displaymem /显示内存配置

4、 10、embed /嵌入 Stage 1.5 文件 11、find /查找包括某文件的所有设备 12、fstest /测试文件系统 13、geometry /显示某驱动器的物理信息 14、halt /停止计算机运行(软件关机) 15、help /显示 GRUB 的命令帮助信息 16、impsprobe /查询对称多处理器(SMP)的信息 17、initrd /加载 initrd 文件 18、install /安装 GRUB 19、ioprobe /查询某驱动器的输入输出(I/O)端口 20、kernel /引导操作系统内核 21、lock /锁定某 GRUB 导菜单项,使其输入密码后才可启动

5、 22、makeactive /激活某主分区 23、map /虚拟映射某驱动器 24、md5crypt /使用 MD5 加密口令 25、module /加载模块 26、modulenounzip /加载模块不进行解压 27、pause /暂停并等待按键 28、quit /退出 GRUB 29、reboot /重新启动计算机 30、read /读取内存中的内容 31、root /设置 GRUB 的 root 设备 32、rootnoverify /设备 GRUB 的 root 设备但不装载文件系统 33、savedefault /保存当前的启动菜单项为默认启动 34、setup /自动安装 GR

6、UB 35、testload /从文件系统中测试读取某文件 36、testvbe /测试 VESA BIOS EXTENSION 37、uppermem /强制设置主机上位内存的大小 38、vbeprobe /查询 VESA BIOS EXTENSION 信息 GNU 是程序开放协定,也就是一种反版权协定,可以不管他 Grub 是 Linux 操作系统自带的系统加载程序,也可以用在其他操作系统的加载上,比如 Windows,特点是可以管理和加载多个系统 Grub 出错了就需要手动用 grub 命令的形式加载系统 启动 windows 的命令是 代码: rootnoverify (hd0,0)

7、makeactive chainloader +1 boot grub 发展史 从 Red Hat Linux 7.2 起,GRUB(GRand Unified Bootloader)取代LILO 成为了默认的启动装载程序。相信 LILO 对于大家来说都是很熟悉的。这次 Red Hat Linux 用 GRUB 代替 LILO,可见 GRUB 大有过人之处。不过,相对于 LILO 来说,大家对 GRUB 还是要陌生一些。本文将对 GRUB 的基本情况、术语、接口、命令以及配置文件做个介绍,希望对大家有所帮助。 一、GRUB 的概述 在 Red Hat linux 装载一个系统前,它必须由一个引

8、导装载程序(boot loader,启动管理程序)中的特定指令告诉它去引导系统。这个程序一般是位于系统的主硬盘驱动器或是其他知道如何去开始linux 内核的媒介驱动器上。 如果说一个 x86 系统只安装了 Red Hat Linux 而且只有一个版本的 linux 内核,那么通过引导装载程序开始 Red Hat Linux 的特定过程就不重要了。Red Hat Linux 安装程序允许用户快速方便地配置引导装载程序存放在主硬盘驱动的主引导记录中来引导操作系统。 然而,为了能从多个 linux 内核或其他操作系统引导,那么就很有必要了解 Red hat linux 用于提供必要的引导选项的方法,

9、以及理解引导的过程与如何去改变。 本文是讨论 GRUB,它是 Red Hat Linux 用来在 x86 系统上装载操作系统的默认方法。同时,本文也将详细介绍用于控制引导过程的各种命令和配置选项。 GRUB 的定义 GNU GRUB(GRand Unified Bootloader)是一个将引导装载程序安装到主引导记录的程序,主引导记录是位于一个硬盘开始的扇区。它允许位于主引导记录区中特定的指令来装载一个 GRUB 菜单或是GRUB 的命令环境。这使得用户能够开始操作系统的选择,在内核引导时传递特定指令给内核,或是在内核引导前确定一些系统参数(如可用的 RAM 大小) 。 x86 的引导过程

10、当一个 x86 机器启动后,系统 BIOS 开始检测系统参数,如内存的大小、日期和时间、磁盘设备、以及这些磁盘设备用于引导的顺序等。通常情况下,BIOS 都是被配置成首先检查软驱或光驱(或两者都检查) ,然后再尝试从硬盘引导。如果在这些可移动的设备中,没有找到可引导的介质,那么 BIOS 通常是转向第一块硬盘最初的几个扇区,寻找用于装载操作系统的指令。这些最初的扇区主引导记录开始装载一个预选择操作系统的过程,一个操作系统选项贩GRUB 菜单,或是一个执行特定选项的 GRUB 命令行接口。 装载 GRUB 和操作系统的过程,包括以下几个操作步骤: 1、装载基本的引导装载程序,这通常是第一步。基本

11、引导装载程序必须是位于主引导扇区中一个非常小的空间,少于 512 字节。因此,基本引导装载程序所做的唯一的事情就是装载第二引导装载程序。这主要是归结于在主引导扇区中没有足够的空间用于其他东西了。 2、装载第二引导装载程序,这通常称为第二步。这第二引导装载程序实际上是引出更高级的功能 ,以允许用户装载入一个特定的操作系统。在 GRUB 中,这步是让用户显示一个菜单或是输入命令。3、装载在一个特定分区上的操作系统,如 linux 内核。一旦GRUB 从它的命令行或是配置文件中,接到开始操作系统的正确指令,它就寻找必要的引导文件,然后把机器的控制权移交给操作系统。 注意 在一些文件系统以及文件系统的

12、配置中,可能需要一个 1.5 步的文件,用来连接基本引导程序与第二引导程序之间的差异。 举个例子来说,如果第二步中的引导装载程序文件位于一个使用了第一步引导装载程序所不能访问的文件系统的分区中,那么就可能需要指示第一步引导装载程序,从 1.5 步文件中载入附加的指令来读取第二步引导装载程序的文件。更多相关的信息,请参考GRUB 的信息页。 前面所提到的引导方法被称为直接装载。因为这种方法中使用的是直接装载操作系统的指令,没有用到任何在引导装载程序和操作系统主文件(如内核)之间的中间代码。然而,不同操作系统所采用的引导过程可能会与上面提到的有一些细微的不同。例如,微软的 DOS 和 Window

13、s 操作系统在安装时,倾趋于完全重写主引导记录,而不是合并当前的主引导记录的配置。这将破坏掉其他操作系统保存在主引导记录中的所有信息,如 Red Hat Linux。微软操作系统,还有一些其他的专有操作系统,都是使用一种称为链式装载的引导方法来启动的。在这种方法中,主引导记录仅仅是简单地指向操作系统所在分区的第一个扇区。 GRUB 支持直接和链式装载的引导方法。GRUB 能用于几乎所有操作系统,绝大多数流行的文件系统,以及几乎所有的系统 BIOS 所能识别的硬盘。 GRUB 的特性 GRUB 包含许多特性,这使得 GRUB 比其他可用的引导装载程序更加优越。下面列出一些比较重要的特性: GRU

14、B 在 x86 机器上,提供一个真正基于命令行的,先于操作系统(pre-OS)的环境。它对于用确定的选项装载操作系统或收集系统信息方面,提供了最大程度的适应性。许多非 x86 的体系结构已经使用先于操作系统环璄许多年了,它提供控制系统如何从一个命令行引导。当 LILO 或其他 x86 引导装载程序使用了一些命令特性的时候,GRUB 已经包含了许多这方面的特性。 GRUB 支持逻辑块寻址(LBA)方式。LBA 将用于寻找驱动器上文件的地址转换工作置于驱动器的硬件中,它被用在许多 IDE 和所有的 SCSI 硬盘中。在使用 LBA 之前,硬盘驱动器遇到一个 1024 柱面的限制,即 BIOS 不能

15、找到在 1024 柱面后的文件(比如一个引导装载程序或是内核文件) 。只要系统 BIOS 能支持 LBA 模式(大多数都支持) ,那么 LBA 就允许 GRUB 超越 1024 柱面的限制,引导操作系统。GRUB 的配置能在每次系统引导时被读取。这就避免了用户每次改变引导选项时都要重写一次主引导记录。大多数的引导装载程序都不能很老道地读取配置文件,并使用它们来设置引导选项。比如说,用户必需改变一个 LILO 的配置文件,然后运行一个命令将新的配置数据重写回系统的主引导记录。这种方法比 GRUB 所采用 的方法更加危险,因为一个错误配置的主引导记录将让系统无法引导。在使用 GRUB 中,如果说配

16、置文件被错误配置并且引导,那它也仅仅简单地转到一个默认的命令行,允许用户手工输入命令来运行操作系统。除开更新系统引导的第一步、第二步、或是菜单配置文件的位置,主引导记录是不会被触及到的,而这种情况是很少发生的。 注意: 当 GRUB 的配置文件发生改变时,没有必要重新启动 GRUB。所有的改变都能被自动地检测到。如果 GRUB 被重新启动,那么用户将退回到命令行方式的 GRUB 外壳下。 安装 GRUB 如果在 Red Hat Linux 的安装过程中,GRUB 没有被安装,下面将说明如何安装它,并将它设为默认的引导装载程序。 注意:如果 LILO 已经被安装,并且是当前的系统引导装载程序,那

17、并没有必要为了使用 GRUB 而删除它。GRUB 一旦安装后,将做为系统默认的引导装载程序。 首先,获取最新可用的 GRUB 包。在 Red Hat Linux 安装光盘上的 GRUB 包也可以使用。 其次,在一个外壳提示下,运行命令/sbin/grub-install ,这里的是 GRUB 将要被安装的位置。比如说:/sbin/grub-install /dev/hda 最后,重新引导系统。GRUB 图形引导装载菜单将出现。 二、GRUB 的术语 在使用 GRUB 前,最重要的事情之一就是理解这个程序是如何引用设备的,如系统硬盘驱动器、分区等。对于配置 GRUB 实现多操作系统的引导,这方面

18、的信息是很重要的。 设备名称 系统的第一个硬盘驱动器被 GRUB 称为(hd0)。在它上面的第一个分区被称为(hd0,0),第二个硬盘驱动器上的第 5 个分区被称为(hd1,4)。通常使用 GRUB 时,文件系统习惯上采用下面的方式命名:(,) 在设备命名中,圆括号和逗号是很重要的。指出是一个硬盘(hd)还是一个软盘(fd)被指定。 是依照系统 BIOS 而确定的设备号,从 0 开始。基本 IDE 硬盘被标为 0,第二 IDE 硬盘被标为 1。这个排序大体上等同于 linux 内核用字母安排设备的顺序,只是在 hda 中的 a 变成了 0,hdb 中的 b 变为了 1,依次类推。 注意:GRU

19、B 用于设备的命名系统是从 0 开始,而不是 1。这常常是 GRUB 新手们常犯的最普遍的错误。 指在一块硬盘上一个分区的编号。类似于,分区的编号也是从0 开始。虽然大多数的分区可以用数字指定,但是如果系统使用的是 BSD 分区,那么它们还是用字母来指定,如 a 或 c。 GRUB 在命名设备和分区时,使用下面的规则: 系统使用 IDE 硬盘或 SCSI 硬盘,都没有关系。所有的硬盘都是用 hd 开始。软盘用 fd 开头。 当指定整个硬盘,不考虑它的分区时,简单地将逗号和分区编号取消即可。当告诉 GRUB 配置一个特定硬盘的主引导扇区时,这一点很重要。比如,(hd0)指定第一个设备,(hd3)

20、指定第四个设备。如果一个系统有多个驱动设备,知道由 BIOS 确定的驱动器顺序就很重要了。如果系统只有 IDE 或 SCSI 驱动器,那是相当简单的。但是如果有多个驱动器混合时,这就变得令人混乱了。 文件名称 当在 GRUB 中输入包括文件的命令时,比如在多操作系统中使用一个菜单列表,文件名必须直接在设备和分区后指定。一个绝对文件名的格式如下: (,)/path/to/file 大多数的时候,用户可以通过在分区上的目录路径后加上文件名来指定文件。这种方法是直接了当的。 另外,我们也可以将不在文件系统中出现的文件指定给 GRUB,比如在一个分区最初几块扇区中的链式引导装载程序。为了指定这些文件,

21、需要提供一个块列表(blocklist),由它来一块一块地告诉GRUB 文件在分区中的位置。当一个文件是由几个不同的块组合在一起时,需要有一个特殊的方式来写块列表。每个文件片断的位置由一个块的偏移量以及从偏移点起始的块数来描述,这些片断以一个逗号分界(comma-delimited)的顺序组织在一起。 考虑下面的块列表: 0+50,100+25,200+1 上面这个块列表告诉 GRUB 使用一个文件,这个文件起始于分区的第一块,使用了第 0 块到第 49 块,第 99 块到 124 块,以及第199 块。 当使用 GRUB 装载诸如微软 Windows 这样采用链式装载方式的操作系统时,知道如

22、何写块列表是相当有用的。如果从第 0 块开始,那么可以省略块的偏移量。作为一个例子,当链式装载文件在第一硬盘的第一个分区时,可以使用下面的命名: (hd0,0)+1 下面给出一个带类似块列表名称的 chainloader 命令。它是在设置正确的设备和分区作为根后,在 GRUB 命令行中给出的。 chainloader +1 GRUB 的根文件系统 一些用户常困惑于 GRUB 中根文件系统(root filesystem)这一术语的用法。GRUB 的根文件系统与 Linux 的根文件系统是没有关系的,这一点需要记住。 GRUB 的根文件系统是用于一个特定设备的根分区。GRUB 使用这个信息来挂入

23、(mount)这个设备并从它上面载入文件。 在 Red Hat Linux 中,一旦 GRUB 载入它自己的包含 Linux 内核的根分区,那么 kernel 命令就可以将内核文件的位置作为一个选项来执行。一旦 Linux 内核引导,它就设定自己的根文件系统,此时的根文件系统就是大多数人用来与 Linux 联系的了。最初的 GRUB 根文件系统以及它的挂入都被去掉,它们仅存在于用来引导内核文件。关于根和内核命令的更多信息,可以参考后面的命令部分。 三、GRUB 的接口 GRUB 主要有三个强大的接口,它们提供了不同级别的功能。每个接口都允许用户引导操作系统,甚至可以在处于 GRUB 环境下的接

24、口之间移动。 菜单接口 如果 GRUB 是由 Red Hat Linux 的安装程序自动配置的,那么它默认的显示接口是菜单接口。在系统第一次启动后,一个操作系统或内核的菜单(事先已经用它们各自的引导命令配置好)将一个按名称排列的列表保存在这个接口中。使用箭头键选择一个非默认选项,然后按回车键来引导它。如果不是这样,一个记时器可能已经被设置,那么 GRUB 将启动装载那个默认的选项。 在菜单接口上,按e键,对高亮菜单项中的命令进行编辑。按c键载入一个命令行接口。 菜单项目编辑器接口 在引导装载菜单中按e键,就进入了菜单项目编辑器。用于项目的 GRUB 命令就显示在这里。在引导操作系统前,用户可以

25、更改这些命令,添加(加在当前行后面,用o键;加在当前行前,用0),编辑(用e键),删除(用d键)。 在所有的改变都完成后,用b键来执行这些命令,并引导操作系统。Esc键来放弃这些修改,将重新入标准的菜单接口。c键用来载入命令行接口。 命令行接口 命令行是 GRUB 最基本的接口,但它也是被授予了最大控制能力的接口。在命令行接口中,输入任何相关的 GRUB 命令,再回车就可以执行了。这个接口的功能有点类似于 shell 的功能,比如Tab键完成,前后文提示,输入命令时的Ctrl键组合,如Ctrl-a移到行的开头,Ctrl-e移到行的结尾。另外,箭头键,Home,End,Delete键与 bash

26、 shell 中一样用法。 接口使用的顺序 当 GRUB 环境开始载入第二步引导装载程序时,它寻找自己的配置文件。当找到配置文件后,它使用这个配置文件建立一个要载入的操作系统的菜单列表, 然后显示引导菜单接口。 如果配置文件没有被找到,或者如果配置文件不能读取,那么GRUB 将载入命令行接口,以允许用户手工输入必要的命令来启动操作系统。 如果配置文件不是正确的,那么 GRUB 将显示出错误,并请求输入。这点是很有帮助的,因为用户将能够看到问题发生在文件中的什么地方,并修复它。按下任意键,重新载入菜单接口,根据 GRUB报告的错误,编辑菜单选项并纠正问题。如果这个修正失败了,那么错误将被报告,且

27、 GRUB 将再次开始。 四、GRUB 的命令 GRUB 包含了许多不同的命令,它们可以在命令行接口中以交互的方式执行。其中的一些命令能接在命令名后面的选项,这些选项用空格隔开。 下面的列表给出了最有用的一些命令: boot - 引导先前已经被指定并载入的操作系统或链式装载程序。 chainloader - 将指定的文件作为一个链式装载程序载入。为了获取在一个指定分区第一扇区内的文件,使用+1 作为文件名。 displaymem - 显示当前内存的使用情况,这个信息是基于BIOS 的。这个命令有助于确定系统在引导前有多少内存。 initrd - 使用户能够指定一个在引导时可用的初始 RAM 盘

28、。当内核为了完全引导而需要某些模块时,这是必需的。 install p - 安装 GRUB 到系统的主引导记录。这个命令允许系统重启时出现 GRUB 接口。 警告:install 命令将覆盖主引导扇区中的其他信息。如果命令被执行,那么除了 GRUB 信息之外的其他用于引导其他操作系统的信息都将丢失。在执行这条命令前,确定你对它有正确的了解。 这条命令可以用几种不同的方式进行配置。然而,它都要求指定。表示一个设备,分区和文件,在那里可以找到第一个引导装载程序的映象,比如(hd0,0)/grub/stage1。另外,也指定了第一步引导装载程序应该被安装的硬盘,如(hd0)。 选项告诉第一步引导装载

29、程序第二步引导装载程序位于什么地方,例如(hd0,0)/grub/stage2。p 选项告诉 install 命令菜单配置文件被指定在部分,比如说(hd0,0)/grub/grub.conf。 kernel - 当使用直接载入方式引导操作系统时,kernel 命令指定内核从 GRUB 的根文件系统中载入。options 选项是跟在kernel 命令后面,在内核载入时传给内核。 在 Red Hat Linux 中,一个 kernel 命令的例子看起来象下面的形式: kernel /vmlinuz root=/dev/hda5 上面这行表明了 vmlinuz 文件是从 GRUB 的根文件系统载入的

30、,如(hd0,0)。同时,一个选项也被传给了内核。它指出当 Linux 内核载入时,内核的根文件系统应该是位于 hda5,第一个 IDE 硬盘的第五个分区。如果有必要的话,多个选项可以被放在这个选项后面。 root - 将 GRUB 的根分区设置成特定的设备和分区,比如说(hd0,0)。并挂入这个分区,这样文件可以被读取。 rootnoverify - 做 root 命令同样的事情,只是不挂入分区。除上面所述外,还有更多的命令可用。输入 info grub,得到一个所有命令的完全列表。 五、GRUB 的菜单配置文件 配置文件在 GRUB 菜单接口中,创建用于引导操作系统的列表。配置文件可以允许

31、用户选择执行事先设置好的一组命令。这些命令既包括前面给出的命令,也包括一些只用于配置文件的命令。 配置文件的专用命令 下面这些命令只用于 GRUB 的菜单配置文件: color - 设定在菜单中使用的颜色,一种是作为前景色,一种作为背景色。可以简单地使用颜色名称,如 red/black。比如: color red/black green/blue default - 默认项目的标题名称。如果菜单接口超时,那它将被载入。 fallback - 当这个命令被使用时,如果第一次尝试失败,那么这个项目的标题名称将被试用。 hiddenmenu - 这个命令被使用时,它不显示 GRUB 菜单接口,在超时

32、时间过期后载入默认项。用户通过按Esc键,可以看到标准的 GRUB 菜单。 password - 这个命令被使用时,它可以防止不知道口令的用户编辑菜单的项目。 作为附加选项,可以在后面指定一个后备的菜单配置文件。因此,如果口令被知道,GRUB 将重新启动第二步的引导装载程序,并使用这个后备的配置文件来建立菜单。如果这个后备文件不在命令中指出,那么知道口令的用户能够编辑当前的配置文件。 timeout - 这个命令设定了在 GRUB 载入由 default 命令指定的项目前的时间间隔,以秒为单位。 splashimage - 它指定在 GRUB 引导时所使用的屏幕图像的位置。 title - 设

33、定用来装载一个操作系统的一组特定命令的标题。字符#用来在菜单配置文件放置注释。 配置文件的结构 设置 GRUB 菜单接口全局参数的命令被放在文件的顶部,接下来的是用于各个操作系统引导的不同项目。 一个非常基本的用于引导 Red Hat Linux 或 Microsoft Windows 2000 的 GRUB 菜单配置文件可能如下所示: default=linux timeout=10 color=green/black light-gray/blue # section to load linux title linux root (hd0,1) kernel /vmlinuz root=/

34、dev/hda5 boot # section to load Windows 2000 title windows rootnoverify (hd0,0) chainloader +1 这个文件告诉 GRUB 建立一个以 Red Hat Linux 为默认操作系统的菜单,设定 10 秒后自动引导。这里给出了 2 个部分,每个部分对应于一个操作系统项目,每个部分都包含了指向操作系统硬盘分区表的命令。 在下面的附加资料中,将列出如何使用 GRUB 引导多种操作系统的参考资料。 六、GRUB 的附加资料 这个部分只是对 GRUB 以及它的许多选项作一个介绍。如果想要更多的了解 GRUB 是如何工

35、作的、如何在其他任务中配置它来引导非Linux 操作系统,可以参考下面列出的一些资料。 安装文档 /usr/share/doc/grub-0.90 - /usr/share/doc/grub-0.90是 GRUB 文档在系统上的目录。 在一个 shell 提示下,输入 man grub 命令可以查看 GRUB 的手册,它包括一个装载 GRUB shell 时所使用的选项的列表。 在一个 shell 提示下,使用 info grub 命令可以得到 GRUB的 info 页,它包括一个指南,一个用户参考手册,一个程序员参考手册,以及一个关于 GRUB 和它自己用法的 FAQ 文档。 有用的一些站点

36、 http:/www.gnu.org/software/grub - GNU GRUB 项目的主页。这个站点包含了 GRUB 发展状态的信息以及一个 FAQ。 http:/www.uruk.org/orig-grub - 在这个项目被脱管到自由软件基金会进一步发展前的最初的 GRUB 文档。 http:/ - 研究 GRUB 各种不同的用法,包括引导非 Linux操作系统。 http:/ - 一篇介绍性的文章,讨论在一个系统上 GRUB 配置,包括 GRUB 命令行选项的概述。1 首先要了解的几个概念 1.1 启动管理器 启动管理器是存储在磁盘开始扇区中的一段程序,例如,硬盘的MBR(Mast

37、er Boot Record),在系统完成启动测试后,如果系统是从MBR 启动,则 BIOS(Basic Input/Output System)将控制传送给MBR。然后存储在 MBR 中的这段程序将运行。这段程序被称为启动管理器。它的任务就是将控制传送给操作系统,完成启动过程有许多可用的启动管理器,包括 GNU GRUB (Grand Unified Boot Loader),Bootmanager, LILO (LInux LOader), NTLDR (boot loader for Windows NT systems),等等等. 1.2 什么是 GRUB? grub 是一个多重启动管

38、理器。grub 是 GRand Unified Bootloader的缩写,它可以在多个操作系统共存时选择引导哪个系统。它可以引导的操作系统包括: Linux,FreeBSD,Solaris,NetBSD,BeOSi,OS/2,Windows95/98,Windows NT,Windows2000,WinXP。它可以载入操作系统的内核和初始化操作系统(如 Linux,FreeBSD) ,或者把引导权交给操作系统(如Windows 98)来完成引导。 1.3 GRUB 的特点 特别适用于 linux 与其它操作系统共存情况。 支持大硬盘 现在大多数 Linux 发行版本的 lilo 都有同样的一

39、个问题:根分区(/boot 分区)不能分在超过 1024 柱面的地方,一般是在8.4G 左右的地方,否则 lilo 不能安装,或者安装后不能正确引导系统。而 grub 就不会出现这种情况,只要安装时你的大硬盘是在LBA 模式下,grub 就可以引导根分区在 8G 以外的操作系统。 支持开机画面 grub 支持在引导开机的同时显示一个开机画面。对于玩家来说,这样可以制作自己的个性化开机画面;对于 PC 厂商,这样可以在开机时显示电脑的一些信息和厂商的标志等。grub 支持640x480,800x600,1024x768 各种模式的开机画面,而且可以自动侦测选择最佳模式,与 Windows 那 3

40、20x400 的开机画面不可同日而语。两种执行模式 grub 不但可以通过配置文件进行例行的引导,还可以在选择引导前动态改变引导时的参数,还可以动态加载各种设备。例如你在 Linux 下编译了一个新的核心,但不能确定它能不能工作,你就可以在引导时动态改变 grub 的参数,尝试装载这个新的核心进行使用。Grub 的命令行有非常强大的功能,而且支持如 bash 或doskey 一样的历史功能,你可以用上下键来寻找以前的命令。 菜单式选择 grub 使用一个菜单来选择不同的系统进行引导。你还可以自己配置各种参数,如延迟时间,默认操作系统等。 分区大小改变后不必重新配置 grub 是通过文件系统直接

41、把核心读取到内存,因此只要操作系统核心的路径没有改变,grub 就可以引导系统。 除此之外,Grub 还有许多非常强大的功能。例如支持多种外部设备,动态装载操作系统内核,甚至可以通过网络装载操作系统核心。Grub 支持多种文件系统,支持多种可执行文件格式,支持自动解压,可以引导不支持多重引导的操作系统,支持网络启动等。 1.4 MBR 和第一扇区 你可以简单的理解为 MBR 是整个硬盘的物理第一位置,而第一扇区是硬盘的物理第二位置. 1.5 一个 GRUB 配置文件 基于本例的分区如下: hda 15G hda1 8G / RED HAT LINUX8.0 hda5 7G /home hdc

42、20G hdc1 6.4G WinXP hdc5 6.4G hdc6 6.4G hdc7 6.4G #fdisk -l # Disk /dev/hdc: 255 heads, 63 sectors, 2434 cylinders Units = cylinders of 16065 * 512 bytes Device Boot Start End Blocks Id System /dev/hdc1 * 1 894 7181023+ b Win95 FAT32 /dev/hdc2 895 2434 12370050 f Win95 Extd (LBA) /dev/hdc5 895 1787

43、7172991 b Win95 FAT32 /dev/hdc6 1788 2434 5196996 b Win95 FAT32 Disk /dev/hda: 255 heads, 63 sectors, 1867 cylinders Units = cylinders of 16065 * 512 bytes Device Boot Start End Blocks Id System /dev/hda1 * 1 1020 8193118+ 83 Linux /dev/hda2 1021 1802 6281415 83 Linux /dev/hda3 1803 1867 522112+ 82

44、Linux swap grub.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 /

45、boot/vmlinuz-version ro root=/dev/hda1 # initrd /boot/initrd-version.img #boot=/dev/hda default=0 timeout=3 splashimage=(hd0,0)/boot/grub/splash.xpm.gz title 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.img title Microsoft Window

46、s XP map (hd0) (hd1) map (hd1) (hd0) root (hd1,0) chainloader (hd1,0)+1 makeactive boot 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 partit

47、ion. 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 开

48、始的,第一个硬盘是 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)

49、 (注:表示 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) (注:这是指第二个硬盘(从硬盘)上第一个分区) chainload

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报