grub(GRand Unified Bootloader)分为两代:
grub 0.x是grub legacy,grub的经典版本;
grub 1.x是grub2,grub的第二代。
stage 1:启动MBR中的bootloader;
stage 1.5:读取MBR之后的扇区,让stage1中的bootloader能识别stage 2所在的分区上的文件系统,加载文件系统的驱动;
stage 2:读取/boot/grub/grub.conf文件进行磁盘分区。
stage 2及内核等通常放置于一个基本磁盘分区。
(1)stage 2的作用:
1)提供菜单、并提供交互式接口;
e:编辑模式,用于编辑菜单;
c:命令模式,交互式接口;
2)加载用户选择的内核或操作系统,允许传递参数给内核,也可隐藏此菜单;
3)为菜单提供了保护机制,为编辑菜单进行认证,为启用内核或操作系统进行认证。
(2)stage 2阶段如何识别设备:(hd#,#),(hd0,0)
hd#:磁盘编号,用数字表示,从0开始编号;
#:分区编号,用数字表示,从0开始编号。
help
:获取帮助列表;
help KEYWORD
:详细帮助信息;
find (hd#,#)/PATH/TO/SOMEFILE
root (hd#,#)
kernel /PATH/TO/KERNEL_FILE
:设定本次启动时用到的内核文件,额外还可以添加许多内核支持使用的cmdline参数。
例如:init=/path/to/init,selinux=0,initrd /PATH/TO/INITRAMFS_FILE
:设定为选定的内核提供额外文件的ramdisk;
boot
: 引导启动选定的内核;
手动在grub命令行接口启动系统:
grub> root (hd#,#)
grub> kernel /vmlinuz-VERSION-RELEASE ro root=/dev/DEVICE
grub> initrd /initramfs-VERSION-RELEASE.img
grub> boot
配置项:
default=#
:设定默认启动的菜单项;菜单项(title)编号从0开始;
timeout=#
:指定菜单项等待选项选择的时长;
splashimage=(hd#,#)/PATH/TO/XPM_PIC_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
:启动选定的内核或操作系统时进行认证;
grub-md5-crypt
命令,生成要保护的密码串;
1)编辑grub菜单(选定要编辑的title,而后使用e命令);
2)在选定的kernel后附加1, s, S或single都可以;
3)在kernel所在行,键入“b”命令;
1)grub-install
grub-install --root-directory=ROOT /dev/DISK
2)grub
grub> root (hd#,#)
grub> setup (hd#)