第三章 Linux引导装载程序GRUB
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通常使用GRUB时,文件系统习惯上采用下面的方式命名: ( ,)
在设备命名中,圆括号和逗号是很重要的。指出是一个硬盘 (hd)还是一个软盘(fd)被指定。
依照系统BIOS而确定的设备号,从0开始。基本IDE硬盘被标为 0,第二IDE硬盘被标为1。这个排序大体上等同于linux内核用 字母安排设备的顺序,只是在hda中的a变成了0,hdb中的b变 为了1,依次类推。
注意:GRUB用于设备的命名系统是从0开始,而不是1。
分区的编号也是从0开始。虽然大多数的分区可以用数字指定 ,但是如果系统使用的是BSD分区,那么它们还是用字母来指 定,如a或c。
GRUB在命名设备和分区时,使用下面的规则: 系统使用IDE硬盘或SCSI硬盘,都没有关系。所有的硬盘都是 用hd开始。软盘用fd开头。 当指定整个硬盘,不考虑它的分区时,简单地将逗号和分区编 号取消即可。当告诉GRUB配置一个特定硬盘的主引导扇区时, 这一点很重要。比如,(hd0)指定第一个设备,(hd3)指定第四 个设备。
Biblioteka Baidu
GRUB的定义
GNU GRUB(GRand Unified Bootloader)是一个将引导装载程序 安装到主引导记录的程序,主引导记录是位于一个硬盘开始的 扇区。它允许位于主引导记录区中特定的指令来装载一个GRUB 菜单或是GRUB的命令环境。这使得用户能够开始操作系统的选 择,在内核引导时传递特定指令给内核,或是在内核引导前确 定一些系统参数(如可用的RAM大小)。
这些最初的扇区-主引导记录-开始装载一个预选择操作系统 的过程,一个操作系统选项GRUB菜单,或是一个执行特定选项 的GRUB命令行接口。
装载GRUB和操作系统的过程,包括以下几个操作步骤: 1、装载基本的引导装载程序,这通常是第一步。基本引导装载程序必须 是位于主引导扇区中一个非常小的空间,少于512字节。因此,基本引 导装载程序所做的唯一的事情就是装载第二引导装载程序。这主要是 归结于在主引导扇区中没有足够的空间用于其它东西了。 2、装载第二引导装载程序,这通常称为第二步。这第二引导装载程序实 际上是引出更高级的功能 ,以允许用户装载入一个特定的操作系统 。在GRUB中,这步是让用户显示一个菜单或是输入命令。 3、装载在一个特定分区上的操作系统,如linux内核。一旦GRUB从它的 命令行或是配置文件中,接到开始操作系统的正确指令,它就寻找必 要的引导文件,然后把机器的控制权移交给操作系统。
在命令行模式下可以打入命令直接执行,例如你可以敲入poweroff 关闭计算机。按Tab键可以列出所有支持的命令。
GRUB的接口
GRUB主要有三个强大的接口,它们提供了不同级别的功能。每 个接口都允许用户引导操作系统,甚至可以在处于GRUB环境下 的接口之间移动。
菜单接口
如果GRUB是由Red Hat Linux的安装程序自动配置的,那么它 默认的显示接口是菜单接口。在系统第一次启动后,一个操作 系统或内核的菜单(事先已经用它们各自的引导命令配置好) 将一个按名称排列的列表保存在这个接口中。使用箭头键选择 一个非默认选项,然后按回车键来引导它。 如果不是这样,一个计时器可能已经被设置,那么GRUB将启动 装载那个默认的选项。 在菜单接口上,按[e]键,对高亮菜单项中的命令进行编辑。 按[c]键载入一个命令行接口。
x86的引导过程
当一个x86机器启动后,系统BIOS开始检测系统参数,如内存 的大小、日期和时间、磁盘设备、以及这些磁盘设备用于引导 的顺序等。 通常情况下,BIOS都是被配置成首先检查软驱或光驱(或两者 都检查),然后再尝试从硬盘引导。如果在这些可移动的设备 中,没有找到可引导的介质,那么BIOS通常是转向第一块硬盘 最初的几个扇区,寻找用于装载操作系统的指令。
菜单项目编辑器接口
在引导装载菜单中按[e]键,就进入了菜单项目编辑器。用于 项目的GRUB命令就显示在这里。在引导操作系统前,用户可以 更改这些命令,添加(加在当前行后面,用[o]键;加在当前行 前,用[0]),编辑(用[e]键),删除(用[d]键)。 在所有的改变都完成后,用[b]键来执行这些命令,并引导操 作系统。[Esc]键来放弃这些修改,将重新入标准的菜单接口 。[c]键用来载入命令行接口。
grub的特点
两种执行模式 grub不但可以通过配置文件进行例行的引导,还可以在选择引导 前动态改变引导时的参数,还可以动态加载各种设备。例如你在 Linux下编译了一个新的核心,但不能确定它能不能工作,你就可 以在引导时动态改变grub的参数,尝试装载这个新的核心进行使用 。Grub的命令行有非常强大的功能,而且支持如bash或doskey一样 的历史功能,你可以用上下键来寻找以前的命令。 菜单式选择 在lilo下,你需要手工输入操作系统的名字来引导不同的操作系 统。而grub使用一个菜单来选择不同的系统进行引导。你还可以自 己配置各种参数,如延迟时间,默认操作系统等。
第三章
引导装载程序GRUB
本章目标 了解GRUB引导装载程序作用 了解如何安装GRUB 掌握手动启动GRUB的方法
从Red Hat Linux 7.2起,GRUB(GRand Unified Bootloader) 取代LILO成为了默认的启动装载程序。 GRUB,它是Red Hat Linux用来在x86系统上装载操作系统的默 认方法。
如果一个系统有多个驱动设备,知道由BIOS确定的驱动器顺序 就很重要了。如果系统只有IDE或SCSI驱动器,那是相当简单 的。但是如果有多个驱动器混合时,这就变得令人混乱了。
GRUB的根文件系统
GRUB的根文件系统与Linux的根文件系统是没有关系的。 GRUB的根文件系统是用于一个特定设备的根分区。GRUB使用这 个信息来挂入(mount)这个设备并从它上面载入文件。
开机
安装了grub开机后会出现一个菜单,列出所有的启动选项。如果设 置了启动画面则会显示启动画面,按Esc键则可以取消启动画面显 示菜单选项。在菜单下面详细列出如按e是编辑启动命令,按c是使 用命令行等。用上下键可以选择菜单项,按回车启动所选项。按e 键可以编辑所选项的启动命令,可以用这个功能临时改变你的系统 的启动参数。按c键则进入命令行模式。
displaymem - 显示当前内存的使用情况,这个信息是基于BIOS 的。这个命令有助于确定系统在引导前有多少内存。
initrd - 使用户能够指定一个在引导时可用的初始RAM盘。当内 核为了完全引导而需要某些模块时,这是必需的。 install p - 安装GRUB到系统的主引导记录。这个命令允许系统 重启时出现GRUB接口。
警告:install命令将覆盖主引导扇区中的其它信息。如果命令被 执行,那么除了GRUB信息之外的其它用于引导其它操作系统的信息 都将丢失。在执行这条命令前,确定你对它有正确的了解。
这条命令可以用几种不同的方式进行配置。然而,它都要求指定。 表示一个设备,分区和文件,在那里可以找到第一个引导装载程序 的映象,比如(hd0,0)/grub/stage1。另外,也指定了第一步引导 装载程序应该被安装的硬盘,如(hd0)。 选项告诉第一步引导装载程序第二步引导装载程序位于什么地方, 例如(hd0,0)/grub/stage2。p选项告诉install命令菜单配置文件 被指定在部分,比如说(hd0,0)/grub/grub.conf。
箭头键,[Home],[End],[Delete]键与bash shell中一样用法 。
GRUB的命令
GRUB包含了许多不同的命令,它们可以在命令行接口中以交互 的方式执行。其中的一些命令能接在命令名后面的选项,这些 选项用空格隔开。
boot - 引导先前已经被指定并载入的操作系统或链式装载程序 。 chainloader - 将指定的文件作为一个链式装载程序载入。为了 获取在一个指定分区第一扇区内的文件,使用+1作为文件名。
命令行接口
命令行是GRUB最基本的接口,但它也是被授予了最大控制能力 的接口。 在命令行接口中,输入任何相关的GRUB命令,再回车就可以执 行了。这个接口的功能有点类似于shell的功能,比如[Tab]键 完成,前后文提示,输入命令时的[Ctrl]键组合,如[Ctrl][a]移到行的开头,[Ctrl]-[e]移到行的结尾。
安装grub
如果已经安装了Linux则grub是默认安装的。
设备名称
GRUB 所使用的硬盘/分区命名约定与 Linux 使用的命名约定不同。 在 Linux 中,第一个硬盘的第五个分区称作 “hda5”。而 GRUB 把这 个分区称作 “(hd0,4)”。
系统的第一个硬盘驱动器被GRUB称为(hd0)。在它上面的第一 个分区被称为(hd0,0),第二个硬盘驱动器上的第5个分区被称 为(hd1,4)。
kernel - 当使用直接载入方式引导操作系统时,kernel命令指定 内核从GRUB的根文件系统中载入。options选项是跟在kernel命令 后面,在内核载入时传给内核。
在Red Hat Linux中,一个kernel命令的例子看起来象下面的形式 : kernel /vmlinuz root=/dev/hda5 上面这行表明了vmlinuz文件是从GRUB的根文件系统载入的,如 (hd0,0)。同时,一个选项也被传给了内核。它指出当Linux内核载 入时,内核的根文件系统应该是位于hda5,第一个IDE硬盘的第五 个分区。如果有必要的话,多个选项可以被放在这个选项后面。
grub的特点
grub可以代替lilo来完成对Linux的引导,特别适用于linux与其 它操作系统共存情况,与lilo相比,它有以下特点:
支持大硬盘 现在大多数Linux发行版本的lilo都有同样的一个问题:根分区 (/boot分区)不能分在超过1024柱面的地方,一般是在8.4G左右的地方 ,否则lilo不能安装,或者安装后不能正确引导系统。而grub就不会 出现这种情况,只要安装时你的大硬盘是在LBA模式下,grub就可以引 导根分区在8G以外的操作系统。 支持开机画面 grub支持在引导开机的同时显示一个开机画面。对于玩家来说,这 样可以制作自己的个性化开机画面;对于PC厂商,这样可以在开机时 显示电脑的一些信息和厂商的标志等。grub支持 640x480,800x600,1024x768各种模式的开机画面,而且可以自动侦测 选择最佳模式,与Windows那320x400的开机画面不可同日而语。
前面所提到的引导方法被称为直接装载。 这种方法中使用的是直接装载操作系统的指令,没有用到任何 在引导装载程序和操作系统主文件(如内核)之间的中间代码 。然而,不同操作系统所采用的引导过程可能会与上面提到的 有一些细微的不同。
GRUB多重启动管理器
grub 是一个多重启动管理器。grub是GRand Unified Bootloader的缩 写,它可以在多个操作系统共存时选择引导哪个系统。 它可以引导的操作系统包括 Linux,FreeBSD,Solaris,NetBSD,BeOSi,OS/2,Windows95/98,Windows NT,Windows2000。 它可以载入操作系统的内核和初始化操作系统(如Linux,FreeBSD),或 者把引导权交给操作系统(如Windows 98)来完成引导。
在Red Hat Linux中,一旦GRUB载入它自己的包含Linux内核的 根分区,那么kernel命令就可以将内核文件的位置作为一个选 项来执行。一旦Linux内核引导,它就设置自己的根文件系统 ,此时的根文件系统就是大多数人用来与Linux联系的了。
最初的GRUB根文件系统以及它的挂入都被去掉,它们仅存在于 用来引导内核文件。
在设备命名中,圆括号和逗号是很重要的。指出是一个硬盘 (hd)还是一个软盘(fd)被指定。
依照系统BIOS而确定的设备号,从0开始。基本IDE硬盘被标为 0,第二IDE硬盘被标为1。这个排序大体上等同于linux内核用 字母安排设备的顺序,只是在hda中的a变成了0,hdb中的b变 为了1,依次类推。
注意:GRUB用于设备的命名系统是从0开始,而不是1。
分区的编号也是从0开始。虽然大多数的分区可以用数字指定 ,但是如果系统使用的是BSD分区,那么它们还是用字母来指 定,如a或c。
GRUB在命名设备和分区时,使用下面的规则: 系统使用IDE硬盘或SCSI硬盘,都没有关系。所有的硬盘都是 用hd开始。软盘用fd开头。 当指定整个硬盘,不考虑它的分区时,简单地将逗号和分区编 号取消即可。当告诉GRUB配置一个特定硬盘的主引导扇区时, 这一点很重要。比如,(hd0)指定第一个设备,(hd3)指定第四 个设备。
Biblioteka Baidu
GRUB的定义
GNU GRUB(GRand Unified Bootloader)是一个将引导装载程序 安装到主引导记录的程序,主引导记录是位于一个硬盘开始的 扇区。它允许位于主引导记录区中特定的指令来装载一个GRUB 菜单或是GRUB的命令环境。这使得用户能够开始操作系统的选 择,在内核引导时传递特定指令给内核,或是在内核引导前确 定一些系统参数(如可用的RAM大小)。
这些最初的扇区-主引导记录-开始装载一个预选择操作系统 的过程,一个操作系统选项GRUB菜单,或是一个执行特定选项 的GRUB命令行接口。
装载GRUB和操作系统的过程,包括以下几个操作步骤: 1、装载基本的引导装载程序,这通常是第一步。基本引导装载程序必须 是位于主引导扇区中一个非常小的空间,少于512字节。因此,基本引 导装载程序所做的唯一的事情就是装载第二引导装载程序。这主要是 归结于在主引导扇区中没有足够的空间用于其它东西了。 2、装载第二引导装载程序,这通常称为第二步。这第二引导装载程序实 际上是引出更高级的功能 ,以允许用户装载入一个特定的操作系统 。在GRUB中,这步是让用户显示一个菜单或是输入命令。 3、装载在一个特定分区上的操作系统,如linux内核。一旦GRUB从它的 命令行或是配置文件中,接到开始操作系统的正确指令,它就寻找必 要的引导文件,然后把机器的控制权移交给操作系统。
在命令行模式下可以打入命令直接执行,例如你可以敲入poweroff 关闭计算机。按Tab键可以列出所有支持的命令。
GRUB的接口
GRUB主要有三个强大的接口,它们提供了不同级别的功能。每 个接口都允许用户引导操作系统,甚至可以在处于GRUB环境下 的接口之间移动。
菜单接口
如果GRUB是由Red Hat Linux的安装程序自动配置的,那么它 默认的显示接口是菜单接口。在系统第一次启动后,一个操作 系统或内核的菜单(事先已经用它们各自的引导命令配置好) 将一个按名称排列的列表保存在这个接口中。使用箭头键选择 一个非默认选项,然后按回车键来引导它。 如果不是这样,一个计时器可能已经被设置,那么GRUB将启动 装载那个默认的选项。 在菜单接口上,按[e]键,对高亮菜单项中的命令进行编辑。 按[c]键载入一个命令行接口。
x86的引导过程
当一个x86机器启动后,系统BIOS开始检测系统参数,如内存 的大小、日期和时间、磁盘设备、以及这些磁盘设备用于引导 的顺序等。 通常情况下,BIOS都是被配置成首先检查软驱或光驱(或两者 都检查),然后再尝试从硬盘引导。如果在这些可移动的设备 中,没有找到可引导的介质,那么BIOS通常是转向第一块硬盘 最初的几个扇区,寻找用于装载操作系统的指令。
菜单项目编辑器接口
在引导装载菜单中按[e]键,就进入了菜单项目编辑器。用于 项目的GRUB命令就显示在这里。在引导操作系统前,用户可以 更改这些命令,添加(加在当前行后面,用[o]键;加在当前行 前,用[0]),编辑(用[e]键),删除(用[d]键)。 在所有的改变都完成后,用[b]键来执行这些命令,并引导操 作系统。[Esc]键来放弃这些修改,将重新入标准的菜单接口 。[c]键用来载入命令行接口。
grub的特点
两种执行模式 grub不但可以通过配置文件进行例行的引导,还可以在选择引导 前动态改变引导时的参数,还可以动态加载各种设备。例如你在 Linux下编译了一个新的核心,但不能确定它能不能工作,你就可 以在引导时动态改变grub的参数,尝试装载这个新的核心进行使用 。Grub的命令行有非常强大的功能,而且支持如bash或doskey一样 的历史功能,你可以用上下键来寻找以前的命令。 菜单式选择 在lilo下,你需要手工输入操作系统的名字来引导不同的操作系 统。而grub使用一个菜单来选择不同的系统进行引导。你还可以自 己配置各种参数,如延迟时间,默认操作系统等。
第三章
引导装载程序GRUB
本章目标 了解GRUB引导装载程序作用 了解如何安装GRUB 掌握手动启动GRUB的方法
从Red Hat Linux 7.2起,GRUB(GRand Unified Bootloader) 取代LILO成为了默认的启动装载程序。 GRUB,它是Red Hat Linux用来在x86系统上装载操作系统的默 认方法。
如果一个系统有多个驱动设备,知道由BIOS确定的驱动器顺序 就很重要了。如果系统只有IDE或SCSI驱动器,那是相当简单 的。但是如果有多个驱动器混合时,这就变得令人混乱了。
GRUB的根文件系统
GRUB的根文件系统与Linux的根文件系统是没有关系的。 GRUB的根文件系统是用于一个特定设备的根分区。GRUB使用这 个信息来挂入(mount)这个设备并从它上面载入文件。
开机
安装了grub开机后会出现一个菜单,列出所有的启动选项。如果设 置了启动画面则会显示启动画面,按Esc键则可以取消启动画面显 示菜单选项。在菜单下面详细列出如按e是编辑启动命令,按c是使 用命令行等。用上下键可以选择菜单项,按回车启动所选项。按e 键可以编辑所选项的启动命令,可以用这个功能临时改变你的系统 的启动参数。按c键则进入命令行模式。
displaymem - 显示当前内存的使用情况,这个信息是基于BIOS 的。这个命令有助于确定系统在引导前有多少内存。
initrd - 使用户能够指定一个在引导时可用的初始RAM盘。当内 核为了完全引导而需要某些模块时,这是必需的。 install p - 安装GRUB到系统的主引导记录。这个命令允许系统 重启时出现GRUB接口。
警告:install命令将覆盖主引导扇区中的其它信息。如果命令被 执行,那么除了GRUB信息之外的其它用于引导其它操作系统的信息 都将丢失。在执行这条命令前,确定你对它有正确的了解。
这条命令可以用几种不同的方式进行配置。然而,它都要求指定。 表示一个设备,分区和文件,在那里可以找到第一个引导装载程序 的映象,比如(hd0,0)/grub/stage1。另外,也指定了第一步引导 装载程序应该被安装的硬盘,如(hd0)。 选项告诉第一步引导装载程序第二步引导装载程序位于什么地方, 例如(hd0,0)/grub/stage2。p选项告诉install命令菜单配置文件 被指定在部分,比如说(hd0,0)/grub/grub.conf。
箭头键,[Home],[End],[Delete]键与bash shell中一样用法 。
GRUB的命令
GRUB包含了许多不同的命令,它们可以在命令行接口中以交互 的方式执行。其中的一些命令能接在命令名后面的选项,这些 选项用空格隔开。
boot - 引导先前已经被指定并载入的操作系统或链式装载程序 。 chainloader - 将指定的文件作为一个链式装载程序载入。为了 获取在一个指定分区第一扇区内的文件,使用+1作为文件名。
命令行接口
命令行是GRUB最基本的接口,但它也是被授予了最大控制能力 的接口。 在命令行接口中,输入任何相关的GRUB命令,再回车就可以执 行了。这个接口的功能有点类似于shell的功能,比如[Tab]键 完成,前后文提示,输入命令时的[Ctrl]键组合,如[Ctrl][a]移到行的开头,[Ctrl]-[e]移到行的结尾。
安装grub
如果已经安装了Linux则grub是默认安装的。
设备名称
GRUB 所使用的硬盘/分区命名约定与 Linux 使用的命名约定不同。 在 Linux 中,第一个硬盘的第五个分区称作 “hda5”。而 GRUB 把这 个分区称作 “(hd0,4)”。
系统的第一个硬盘驱动器被GRUB称为(hd0)。在它上面的第一 个分区被称为(hd0,0),第二个硬盘驱动器上的第5个分区被称 为(hd1,4)。
kernel - 当使用直接载入方式引导操作系统时,kernel命令指定 内核从GRUB的根文件系统中载入。options选项是跟在kernel命令 后面,在内核载入时传给内核。
在Red Hat Linux中,一个kernel命令的例子看起来象下面的形式 : kernel /vmlinuz root=/dev/hda5 上面这行表明了vmlinuz文件是从GRUB的根文件系统载入的,如 (hd0,0)。同时,一个选项也被传给了内核。它指出当Linux内核载 入时,内核的根文件系统应该是位于hda5,第一个IDE硬盘的第五 个分区。如果有必要的话,多个选项可以被放在这个选项后面。
grub的特点
grub可以代替lilo来完成对Linux的引导,特别适用于linux与其 它操作系统共存情况,与lilo相比,它有以下特点:
支持大硬盘 现在大多数Linux发行版本的lilo都有同样的一个问题:根分区 (/boot分区)不能分在超过1024柱面的地方,一般是在8.4G左右的地方 ,否则lilo不能安装,或者安装后不能正确引导系统。而grub就不会 出现这种情况,只要安装时你的大硬盘是在LBA模式下,grub就可以引 导根分区在8G以外的操作系统。 支持开机画面 grub支持在引导开机的同时显示一个开机画面。对于玩家来说,这 样可以制作自己的个性化开机画面;对于PC厂商,这样可以在开机时 显示电脑的一些信息和厂商的标志等。grub支持 640x480,800x600,1024x768各种模式的开机画面,而且可以自动侦测 选择最佳模式,与Windows那320x400的开机画面不可同日而语。
前面所提到的引导方法被称为直接装载。 这种方法中使用的是直接装载操作系统的指令,没有用到任何 在引导装载程序和操作系统主文件(如内核)之间的中间代码 。然而,不同操作系统所采用的引导过程可能会与上面提到的 有一些细微的不同。
GRUB多重启动管理器
grub 是一个多重启动管理器。grub是GRand Unified Bootloader的缩 写,它可以在多个操作系统共存时选择引导哪个系统。 它可以引导的操作系统包括 Linux,FreeBSD,Solaris,NetBSD,BeOSi,OS/2,Windows95/98,Windows NT,Windows2000。 它可以载入操作系统的内核和初始化操作系统(如Linux,FreeBSD),或 者把引导权交给操作系统(如Windows 98)来完成引导。
在Red Hat Linux中,一旦GRUB载入它自己的包含Linux内核的 根分区,那么kernel命令就可以将内核文件的位置作为一个选 项来执行。一旦Linux内核引导,它就设置自己的根文件系统 ,此时的根文件系统就是大多数人用来与Linux联系的了。
最初的GRUB根文件系统以及它的挂入都被去掉,它们仅存在于 用来引导内核文件。