一.grub相关知识详解
(1)grub:GRand Unified Bootloader
grub 0.x :grub legacy
grub 1.x : grub2
grub legacy:
stage1:mbr的bootloader阶段
stage1_5:mbr之后的扇区,让stage1的bootloader能够识别stage2所在分区的文件系统
stage2:磁盘分区(/boot/grub/)
配置文件:/etc/grub.conf-->/boot/grub/grub.conf
stage2阶段经常放置于一个独立的分区
(2)功用
<1>提供启动菜单、并提供交互式接口
a:内核参数
c:命令模式,交互式借口
e:编辑模式,用来编辑菜单
<2>加载用户选择的内核或操作系统
允许传递参数给内核
可隐藏启动菜单
<3>为菜单提供保护机制
为编辑启动菜单提供保护机制
为启用内核或操作系统提供保护机制
(3)grub的命令行接口
help:获取帮助列表
help KEYWORD:获取帮助信息
find (hd#,#)/PATH/TO/SOMEFILE:
root (hd#,#)
kernel /PATH/TO/KERNEL_FILE:设定本次启动时用到的内核文件;额外还可添加许多内核支持的cmdline参数。如:max_loop=100,selinux=0,init=/path/to/init
initrd/PATH/TO/INITRAMFS_FILE: 设定为选定的内核提供额外文件的ramdisk;
boot: 引导启动选定的内核
(4)cat /proc/cmdline查看内核参数
内核参数文档:/usr/share/doc/kernel-doc-2.6.32/Documentation/kernel-parameters.txt
需要安装kernel-doc支持
(5)识别硬盘文件
(hd#,#)
hd#:磁盘编号,从0开始
#:分区编号,从0开始
(6)安装grub
<1> grub-install
安装grub stage1和stage1_5到/dev/DISK磁盘上,并复制GRUB相关文件到DIR/boot目录下(此时是stage2的部分阶段,是/boot/grub下的所有文件(除了/boot/grub/grub.conf文件))
grub-install --root-directory=DIR /dev/DISK
<2> grub(依赖/boot/grub/下的stage类文件)
grub> root (hd#,#)
grub> setup (hd#)
(7)grub配置文件详解
配置文件:/boot/grub/grub.conf
default=#: 设定默认启动的菜单项;落单项(title)编号从0开始
timeout=#:指定菜单项等待选项选择的时长
splashimage=(hd#,#)/PATH/TO/XPM_FILE:菜单背景图片文件路径
hiddenmenu:隐藏菜单
password [--md5] STRING: 启动菜单编辑认证
title TITLE:定义菜单项“标题”, 可出现多次
root (hd#,#):grub查找stage2及kernel文件所在设备分区;为grub“根”
kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]:启动的内核
initrd/PATH/TO/INITRAMFS_FILE: 内核匹配的ramfs文件
password [--md5] STRING: 启动选定的内核或操作系统时进行认证
(8)grub-md5-crypt加密密码