grub

 CentOS 6启动流程:
POST --> Boot Sequence(BIOS) --> Boot Loader -->Kernel(ramdisk) --> rootfs --> switchroot --> /sbin/init --(/etc/inittab, /etc/init/*.conf) --> 设定默认运行级别 --> 系统初始化脚本rc.sysinit --> 关闭或启动对应级别的服务 --> 启动终端

1.grub安装

配置文件:/boot/grub/grub.conf <-- /etc/grub.conf
stage1 446字节 放bootloader启动相关程序
stage1.5 加载boot分区的文件系统
stage2及内核等通常放置于一个基本磁盘分区

(1) grub-install
安装grub stage1和stage1_5到/dev/DISK磁盘上,并复制GRUB相关文件到 DIR/boot目录下
grub-install --root-directory=DIR /dev/DISK
(2) grub
grub> root (hd#,#)
grub> setup (hd#)

2.功用:

 (1) 提供启动菜单、并提供交互式接口
      a:内核参数
      e: 编辑模式,用于编辑菜单
      c: 命令模式,交互式接口
(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: 引导启动选定的内核
 cat /proc/cmdline 内核参数
 内核参数文档:/usr/share/doc/kernel-doc-2.6.32/Documentation/kernel-parameters.txt

4.识别硬盘设备(hd#,#)

hd#: 磁盘编号,用数字表示;从0开始编号
#: 分区编号,用数字表示; 从0开始编号
(hd0,0) 第一块硬盘,第一个分区

  1. 手动在grub命令行接口启动系统
grub> root (hd#,#)
grub> kernel /vmlinuz-VERSION-RELEASE ro
root=/dev/DEVICE
grub> initrd /initramfs-VERSION-RELEASE.img
grub> boot
  1. 配置文件:/boot/grub/grub.conf
default=#: 设定默认启动的菜单项;落单项(title)编号从0开始
timeout=#:指定菜单项等待选项选择的时长
splashimage=(hd#,#)/PATH/XPM_FILE:菜单背景图片文件路径
hiddenmenu:隐藏菜单
password [--md5] STRING: 启动菜单编辑认证
title TITLE:定义菜单项“标题”, 可出现多次
root (hd#,#):查找stage2及kernel文件所在设备分区;为grub的根
kernel /PATH/TO/VMLINUZ_FILE [PARAMETERS]:启动的内核
initrd /PATH/TO/INITRAMFS_FILE: 内核匹配的ramfs文件
password [--md5|--encrypted ] STRING: 启动选定的内核或操作系统时进行认证

3.grub加密

 生成grub口令
 grub-md5-crypt
 grub-crypt
 破解root口令:
启动系统时,设置其运行级别1
 进入单用户模式:
(1) 编辑grub菜单(选定要编辑的title,而后使用e命令)
(2) 在选定的kernel后附加 1, s, S或single都可以
(3) 在kernel所在行,键入“b”命令

你可能感兴趣的:(grub)