一、GRUB(Boot loader) 二、Grub的命令行接口 三、/etc/grub/grub 四、进入单用户模式 五、Grub损坏,修复 六、救援模式 七、ramdisk文件的管理和initrd 八、grub2详解
一、GRUB(Boot loader)
Grub:GRand Unified Bootloader
Grub 0.x:grub legacy
Grub 1.x:grub2
grub legacy:
stage:mbr
stage1_5:mbr之后的扇区中,让stage1中的bootloader能识别stage2所在的分区上的fs
//提供stage2的文件系统所需的驱动
stage2:磁盘分区之上的,提供选择界面,供用户选择os
stage2及内核等通常放置于一个基本磁盘分区
配置文件:/boot/grub/grub.conf链接文件:/etc/grub.conf
功用:
1.提供菜单,并提供交互式接口
e:编辑模式,用于编辑菜单
c:命令模式,交互式接口
root (hd0,0) //CentOS7的,有时需要set root=
kernel /vmlinuz-x86_64 ro root=/dev/mapper/vg0-root
initrd /intramfs*.img
boot //开机即可
CentOS7:
insmod gzio
insmod part_msdos
insmod xfs
set root=(hd0,msdos1)/Centos7如何使用
linux16 /vmlinuz-3.*.x86_64 root=/dev/mapper/centos-root ro //linux取代grub的kernel
//注意vmlinuz前面的 / 不能去掉
initrd16 /initramfs-*.img
boot //重新启动即可
注意:linux16 root=/dev/mapper/centos-root 必须指定,否则会出错
指定root文件路径
2.加载用户选择的内核或OS
允许传递参数给内核
可隐蔽此菜单
3.为菜单提供了保护机制
为编辑菜单进行认证
为启用内核或os系统进行认证
二、Grub的命令行接口
help:获取帮助列表
help root //查看root的帮助信息,设置grub的根设备
//此时os尚未启动,但是grub有自己的fs驱动可以直接访问
//但是grub的fs驱动是有限的,不可能太大,因此不能识别软fs,raid,lvm等
help KEYWORD:详细帮助信息
//boot是可以不单独分区的,根fs如果使用基本分区的话
//但是根fs,必须能够被grub识别才可以
//如果root直接指定根所在分区,boot文件也放在跟分区中也是可以的
//这时grub root需要指定根所在分区,并能够识别该分区
如何标识设备:
(hd#,#) //第#块磁盘的,第#个分区
(hd0,0) //
find (hd#,#)/vmlinuz-
root DEVICE //设置根设备 root (hd0,0)
kernel /PATH/TO/KERNEL_FILE //vmlinuz:z标识压缩存放,设定本次启动时用到的内核文件
//额外内核支持的很多参数
init=/paht/to/init
selinux=0
root=/dev/mapper/centos-root //根文件系统所在
ro 只读
quiet 静默模式
initrd /PATH/TO/INITRAMFS_FILE //设定为选定的内核提供的额外的文件的ramdisk
boot :引导启动选定的内核
grub2命令行:
set root=
set timeout=
ls (hd1,1)/
search -f /ntldr
boot启动
linux16 指定内核文件<