GRUB启动界面:
按键 说明
↑↓ 使用上下箭头键,在启动菜单项间进行移动
enter 输入回车键启动当前的菜单项
e 选择“e” 键编辑当前的启动菜单项
a 选择“a” 键追加内核的启动参数
c 选择“c” 键进入GRUB的命令行方式
GRUB 菜单项编辑界面的按键:
按键 说明
↑↓ 使用上下箭头键,选择菜单项中的行
b 选择“b” 键启动当前的菜单项 键
e 选择“e” 键编辑当前选中的行 键
c 选择“c” 键进入GRUB的命令行方式 的
o 选择“o” 键在当前行后面插入一行 键
O 选择“O” 键当前行前面插入一行 键
d 选择“d” 键删除当前行 键
Esc 选择“Esc” 键返回 GRUB 启动菜单界面,取消对当前启动菜单项所做的任何修改
在 GRUB交互界面对启动菜单项进行的修改只会作用于本次启动,并不会将已修改的内容自动保存到系统中,因此如果需要永久更改启动项的配置,需要在 GRUB 的配置文件中进行修改。
GRUB 命令行操作界面下使用的常用命令及其功能:
命令 功能
boot 引导先前已经被指定并载入的操作系统或链式装载程序。
chainloader 将指定的文件作为一个链式装载程序载入,将启动控制权转交给另外的启动引导器。 为了获取在一个指定分区第一扇区内的文件,使用+1 作为文件名。
displaymem 显示当前内存的使用情况,这个信息是基于 BIOS 的。这个命令有助于确定系统在引导前有多少内存。
initrd 使用户能够指定一个在引导时可用的初始 RAM 盘。当内核为了完全引导而需要某些模块时,这是必需的。
install p 安装 GRUB 到系统的主引导记录。这个命令允许系统重启时出现 GRUB 接口。如果命令被执行,那么除了 GRUB 信息之外的其他用于引导其他操作系统的信息都将丢失。
kernel 当使用直接载入方式引导操作系统时,kernel 命令指定内核从 GRUB 的根文件系统中载入。其后可以跟 options 选项使在内核载入时传给内核。
GRUB启动引导器的相关文件被缺省保存在“/boot/grub” 目录中,其中 menu.lst 文件是 GRUB 的主配置文件,GRUB 在启动时就是根据该文件的配置内容显示启动菜单的。在 RedHat 系列的 Linux 系统中(包括 CentO S)更习惯于使用文件名 grub.conf 来作为 GRUB 的配置文件。为了保持与其他系统的兼容性和文件的一致性,CentOS 分别在“/boot/grub” 和“/etc” 两个目录中建立了名为grub.conf 的符号链接文件指向真正的配置文件“/boot/grub/menu.lst”。
GRUB缺省配置:
# cat /boot/grub/menu.lst
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVolRoot
# initrd /initrd-version.img
#boot=/dev/hda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-53.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-53.el5 ro root=/dev/VolGroup00/LogVolRoot
initrd /initrd-2.6.18-53.el5.img
grub.conf 中常使用的配置命令:
配置命令 功能
default < 菜单项序号> 设置启动菜单的默认启动项,菜单项序号参数其值从”0” 开始,即”0” 代表第1个菜单项,”1” 代表第2个菜单项等等。
timeout < 延时秒数> 设置GRUB 菜单的启动延时(以秒为单位),即经过该延时后 GRUB 将自动启动默认的菜单项。当 timeout 命令设置的延时秒数为负数或不设置 timeout 命令时,GRUB 启动菜单将取消启动延时功能,用户需手工选择要启动的菜单项。
title < 标题> 设置用来装载一个操作系统的一组特定命令的标题,标题将在 GRUB 启动菜单中显示。
splashimage < 图像文件全路名> 指定某文件作为启动菜单的背景图像,该文件必须是 xpm 格式的图像,可以是 gz 压缩文件。 压
root <GRUB 的设备名称> 设置 GRUB 的根分区(root),通常是文件系统的 boot 分区,即 Linux 内核所在的分区。
rootnoverify <GRUB的设备名称> 做 root 命令同样的事情,只是不挂装分区(用于启动 Windows 系统)。 kernel 用 kernel 命令后跟 Linux 内核文件作为参数,加载 Linux 的内核文件。
initrd 用 initrd 命令加载初始 RAM 磁盘镜像文件。 磁
map 映射磁盘或分区在 BIOS 中的标志符,用于启动在第二个硬盘中的Windows。 。
makeactive 设置根设备为活动分区(针对于Windows不能从非活动分区启动)。 不
chainloader 使用 chainloader 命令调用Windows分区的启动引导器引导 Windows 系统。
要完成对 Linux 操作系统的引导至少要有 title 、root、k e rne l、initrd 四条命令。对于不同的 L inux 操作系统(或同一系统的不同内核版本),需要根据内核文件实际的位置和名称进行启动行的配置,即 title 、root、kernel 和initrd 四条命令的命令参数需要具体设定。 下面是一个更新系统内核后的 GRUB 配置例子,可以选择启动不同的内核:
# 设置默认启动第一个启动项
default=0
# 设置 GRUB 菜单的启动延时为 5 秒
timeout=5
# 指定启动菜单的背景图像位于 /boot/grub/splash.xpm.gz
splashimage=(hd0,0)/grub/splash.xpm.gz
# 设置 GRUB 菜单为隐藏
hiddenmenu
# title 命令开始一个菜单项的配置
title CentOS (2.6.18-53.1.13.el5)
# 设置 GRUB 的根分区(即 /boot 分区)
root (hd0,0)
# 设置 Linux 内核及参数 内
kernel /vmlinuz-2.6.18-53.1.13.el5 ro root=/dev/VolGroup00/LogVolRoot
# 设置初始 RAM 磁盘镜像文件
initrd /initrd-2.6.18-53.1.13.el5.img
title CentOS (2.6.18-53.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-53.el5 ro root=/dev/VolGroup00/LogVolRoot
initrd /initrd-2.6.18-53.el5.img
W indows 的启动菜单配置经常会使用 m ap 、root、m ak e active 、chainloade r 等命令。
1 、Linux 和 W indows 分别安装在两块硬盘的情况:
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-53.el5)
root (hd0,0) kernel /vmlinuz-2.6.18-53.el5 ro root=/dev/VolGroup00/LogVolRoot
initrd /initrd-2.6.18-53.el5.img
title Windows
map (hd0) (hd1)
map (hd1) (hd0)
# 设置真实的 Windows 分区为 GRUB 的根设备。
rootnoverify (hd1,0)
# 设置根设备为活动分区(针对于 Windows 不能从非活动分区启动)
makeactive
# 调用 Windows 分区的引导记录引导 Windows 系统启动
chainloader +1
由于 Windows 系统自身只能安装到主硬盘(系统中的第一块硬盘)中的活动分区中进行引导启动,因此在配置行中需要使用两条 map 命令双方向的映射两块硬盘在 BIOS 中的标志符(目的是为了迷惑 Windows 系统),并使用make active 将 Windows 分区设置为活动分区,这样“chainloade r +1” 命令才能够使用 W indows 分区中的引导记录启动 Windows 系统。
2 、Linux 和 W indows 安装在同一块硬盘的情况:
下面是一个使用 GRUB 选择启动 W indows 或 CentOS 的 grub.conf 的另一个例子。在这个例子中,
Windows系统安装在硬盘的第一个主分区,Linux 的引导系统在磁盘的第一个逻辑分区上:
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-53.el5)
root (hd0,5)
kernel /vmlinuz-2.6.18-53.el5 ro root=/dev/VolGroup00/LogVolRoot
initrd /initrd-2.6.18-53.el5.img
title Windows
rootnoverify (hd0,0)
chainloader +1