GRUB启动引导程序配置及命令行接口详解
一.版本
grub:Grand Unified Bootloader
grub 0.x:grub legacy
grub 1.x:grub2
二、grub legacy
三个过程
stage1:安装在mbr
stage1_5:存放在mbr之后的扇区
stage2:存放在磁盘分区(/boot/grub)
配置文件
/boot/grub/grub.conf、/etc/grub.conf
功用
stage2及内核等通常放置于一个基本磁盘分区
1.提供菜单、并提供交互式接口 •e:编辑模式、用于编辑菜单
c:命令模式、交互式接口
2.加载用户选择的内核或操作系统 •允许传递参数给内核
可隐藏此菜单
3.为菜单提供保护机制
为编辑菜单进行认证
识别设备
GRUB不区分IDE硬盘和SCSI硬盘,统一使用hdx来标识。其中x指定BISO硬盘编号,从零开始计数,而且通常计算机的IDE硬盘编号在SCSI硬盘前。Grub使用hd(X,Y)编号来识别计算机中某一硬盘的某一分区。
其中括号一定要用英文半角,且hd后逗号均无空格;
*其中hd(X,Y)的X是指计算机中的X块硬盘,编号从0开始,在BIOS中设置引导的第一块硬盘为0,其他的硬盘按照IDE的顺序排列,依次为1,2,3,...
hd(X,Y)中的Y指的是硬盘中划分出来的第几个分区。编号也是从0开始,其他的分区是1,2,3,,需要注意的是:0,1,2,3,是指硬盘中的主分区,如果是扩展分区,编号将从4开始,一直到最后一个扩展分区。
grub命令行接口
help:获取帮助列表
help KEYWORD:详细帮助信息
find (hd#,#)/PATH/TO/SOMEFILE:查找
kernel /PATH/TO/KERNEL_FILE:设定本次启动时用到的内核文件;额外还可以添加许多内核支持使用的cmdline参数
initrd /PATH/TO/INITRAMFS_FILE:设定为选定的内核提供额外文件的ramdisk
boot:引导启动选定的内核
手动在grub命令行接口启动系统
grub>root(hd#,#)grub所在的的根
grub>kernel /vmlinuz-VERSION-RELEASE ro root=/dev/DEVICE 设定本次启动用到的内核文件
grub>initrd /initrafs-VERSION-RELEASE.img
grub>boot 启动
三、查看配置文件/boot/grub/grub.conf
default=0 设定默认启动菜单项
timeout=5 菜单项等待选项时间为5s
splashimage=(hd0,0)/grub/splash.xpm.gz 指明菜单背景图片路径为
hiddenmenu 隐藏菜单
title CentOS (2.6.32-358.6.1.el6.x86_64) 定义菜单项
root (hd0,0) grub查找stage2及kernel文件所在设备分区,grub的根
kernel /vmlinuz-2.6.32-358.6.1.el6.x86_64 ro root=/dev/vg_have/lv_root rd_NO_LUKS LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 crashkernel=auto rhgb quiet 启动的内核
initrd /initramfs-2.6.32-358.6.1.el6.x86_64.img 内核匹配的ramfs文件