翻译了grub2官方手册的绝大部分内容,然后自己整理了一下。因为内容有点杂,所以章节安排上可能不是太合理,敬请谅解。
翻译了grub2官方手册的绝大部分内容,然后自己整理了一下。因为内容有点杂,所以章节安排上可能不是太合理,敬请谅解。
Linux学习笔记之 5 Linux GRUB启动管理器
1.GRUB简介
1.1grub与启动引导器
启动引导器是计算机启动过程中运行的第一个真正的软件,通常计算机启动时在通过BIOS自检后读取并运行硬盘的主引导扇中的启动引导器程序,启动引导器再负责加载启动硬盘分区中的操作系统。
1.2 grub的功能
- 提供了真正的命令行交互界面,能够使用户以最大灵活性使用各种参数引导操作系统和收集系统信息。
- 支持LBA模式
- GRUB能够访问ext2分区
2 安装GRUB
安装GRUB有两个层次的含义:
- 安装GRUB软件包
- 安装GRUB到MBR #grub-install /dev/hda
GRUB软件包的安装:
文件名:grub-0.93-4.i386.rpm
#rpm –q grub //查询
#rpm –ivh /mnt/cdrom/RedHat/RPMS/grub-0.93-4.i386.rpm//安装
3 GRUB的操纵界面
3.1 GRUB的启动菜单界面
作用:可以选择GRUB配置文件中预设的启动菜单项,从而实现硬盘中多个操作系统的切换引导。此外还可以进入菜单项编辑界面和GRUB命令行界面。
GRUB启动菜单按键:
- ↑↓在启动菜单项间移动
- Enter:启动当前的菜单项
- e:编辑当前的启动菜单项
- a:添加内核的启动参数
- c:进入GRUB的命令行模式
3.2 GRUB的启动菜单项编辑界面
在此模式下可以对GRUB配置文件中已经存在的启动项做进一步的调整. 例如:对现有行进行编辑、添加删除命令行。
GRUB启动菜单编辑界面按键:
- ↑↓选择菜单项中的行
- b:启动当前的菜单项
- e:编辑当前选中的行
- c:进入GRUB的命令行方式
- o:在当前行后面插入一行
- O:在当前行前面插入一行
- d:删除当前行
- Esc:返回GRUB启动菜单界面,取消对当前启动菜单项所做的任何修改
3.3 GRUB命令行界面
Guub命令行界面提供了方便友好的命令行交互方式,其特点包括:
- 提供在线帮助命令“help”,并且可以获得每条命令的详细帮助
- 可使用左右方向键编辑行命令
- 可以使用上下方向键滚动历史命令
- 可使用“tab”键补全命令
4 GRUB的配置文件
默认的配置文件在/boot/grub/grub.conf,在GRUB成功安装到硬盘主引导扇区后,只要编辑该文件,就可实现对GRUB的配置.无需重写grub到MBR.
GRUB配置文件中包括全局配置和菜单项配置两部分:
4.1 GRUB配置文件的全局命令
- 使用default命令设置GRUB的默认启动项
- 命令格式:default 菜单项序号
- 使用splashimage命令设置GRUB的启动界面
- 命令格式:splashimage 图象文件全路径名 //用于指定某一个文件作为启动菜单的背景图象
- 例:splashimage (hd0,0)/boot/grub/splash.xpm.gz
- 使用timeout命令设置菜单的启动延时
- 命令格式:#timeout 延时秒数
4.2 GRUB的菜单项的配置命令
title 菜单项名称 例:#title windows
4.3 配置linux的启动菜单项
GRUB对于不同的操作系统有不同的引导方式,对linux操作系统GRUB可以直接引导其内核并启动,典型的linux启动彩单配置为:
Title RedHat Linux(2.4.20-8)
root(dh0,0)
kernel/boot/vmlinuz-2.4.20-8 ro root=LABEL=/
initrd/boot/initrd-2.4.20-8.img
linux启动菜单项的配置命令:
- title:定义linux启动菜单项的名称
- root:设置GRUB的根设备(root)为linux内核所在的分区
- kernel:使用kernel命令后跟linux内核文件作为参数,加载linux的内核文件
- initrd:使用initrd命令加载镜像文件
4.4 配置windows的启动菜单项
GRUB不能够直接加载windows系统的内核文件进行引导,而是通过调用windows操作系统自身的启动引导器,通常为windows所在分区的引导扇区
典型的windows启动菜单项配置为:
title win2kp
map(hd0)(hd1)
map(hd1)(hd0)
root(hd1,0)
makeactive
chainloader 1
Windows启动菜单项配置命令:
- title:定义windows启动菜单项的名称
- map:使用map命令交换磁盘或分区在BIOS中的标志符,用于启动在第二个硬盘中的windows
- root:设置真实的windows分区为GRUB的根设备
- Makeactive:设置根设备为活动分区(针对windows不能从非活动分区启动)
- chainloader:使用chainloader命令调用windows分区的启动引导器引导windows系统
5 GRUB的安全设置
主要功能:
- 可以针对启动菜单设置全局口令
- 可对某菜单项使用全局口令
- 可对某菜单项设置独立口令
- 对所有的口令都可以使用MD5进行加密
5.1 设置全局口令琐定启动菜单
全局口令用于设置只允许用户选择启动菜单项进行启动,如进行其他操作需输入设置的全局口令.
- Password命令
命令格式:#password 口令字 //为GRUB 的启动菜单和菜单项设置口令
- 设置全局口令(设置GRUB的全局口令为12345)
password12345
解锁GRUB启动菜单:
- 在锁定的启动菜单中选者“p”
- 在 “password:”提示符后输入正确的口令,并按回车键确认
- 如口令输入正确,启动菜单解锁后恢复正常的状态
5.2使用全局口令锁定启动菜单项
锁定启动菜单项的步骤为:
- 设置GRUB全局口令
- 在菜单项配置中使用lock命令锁定菜单项
5.3设置独立的口令锁定启动菜单项
5.4使用MD5加密口令
6 GRUB的使用技巧
6.1配置GRUB重复上次启动项
- 在全局配置中使用default saved,用于指定默认启动项为上次保存值
- 在各菜单项配置命令的末尾使用savedefault命令,保存当前启动项为默认启动项
6.2制作GRUB启动软盘
- #mke2fs /dev/fd0
- #mount /mnt/floppy/
- #grub-install –root-directory=/mnt/floppy/`(fd0)`
- #umount /mnt/floppy/
- #reboot
6.3使用GRUB启动软盘恢复被覆盖的硬盘引导系统
- grub>root
- grub>find /boot/grub/grub.conf
- grub>root(hd0,0)
- grub>setup(hd0,0)
配置文件的位置和名称
GRUB 启动引导器的相关文件被缺省保存在“/boot/grub”目录中,其中 menu.lst 文件是 GRUB 的主配置文件,GRUB 在启动时就是根据该文件的配置内容显示启动菜单的。
# ls /boot/grub/
device.map grub.conf minix_stage1_5 stage2
e2fs_stage1_5 iso9660_stage1_5 reiserfs_stage1_5 ufs2_stage1_5 fat_stage1_5 jfs_stage1_5 splash.xpm.gz vstafs_stage1_5 ffs_stage1_5 menu.lst stage1 xfs_stage1_5
在 Red Hat 系列的 Linux 系统中(包括 CentOS)更习惯于使用文件名 grub.conf 来作为 GRUB 的配置文件。为了保持与其他系统的兼容性和文件的一致性,CentOS 分别在“/boot/grub”和“/etc”两个目录中建立了名为 grub.conf 的符号链接文件指向真正的配置文件“/boot/grub/menu.lst”。
# cd /boot/grub
# ls -l menu.lst grub.conf
-rw------- 1 root root 595 Mar 31 18:06 grub.conf
lrwxrwxrwx 1 root root 11 Mar 31 18:06 menu.lst -> ./grub.conf # ls -l /etc/grub.conf
lrwxrwxrwx 1 root root 22 Mar 31 18:06 /etc/grub.conf -> ../boot/grub/grub.conf
因此,无论直接编辑menu.lst文件,还是编辑相应目录中的grub.conf文件都可以达到修改GRUB配置的目的。
CentOS 5 中 GRUB 的缺省配置
CentOS 5 服务器方式缺省安装后,文件 menu.lst 已经进行了缺省的配置。
## 执行 cat 命令后显示 menu.lst 文件的缺省配置 # 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
menu.lst 文件中的内容可以分为三类:
本文由澳门新萄京官方网站发布于澳门新萄京官方网站,转载请注明出处:翻译和收拾官方手册,GRUB运行微处理器
关键词: