grub
CentOS 6启动流程:
POST —> Boot Sequence(BIOS) —> Boot Loader —>
Kernel(ramdisk) —> rootfs —> switchroot —> /sbin/init
—>(/etc/inittab, /etc/init/*.conf) —> 设定默认运行级别 —>
系统初始化脚本rc.sysinit —> 关闭或启动对应级别的服务 —> 启动终端
grub: GRand Unified Bootloader
grub 0.x: grub legacy
grub 1.x: grub2
grub legacy:
stage1: mbr
stage1_5: mbr之后的扇区,让stage1中的bootloader
能识别stage2所在的分区上的文件系统
stage2:磁盘分区(/boot/grub/)
配置文件:/boot/grub/grub.conf <— /etc/grub.conf
stage2及内核等通常放置于一个基本磁盘分区
功用:
(1) 提供启动菜单、并提供交互式接口
a:内核参数 e: 编辑模式,用于编辑菜单 c: 命令模式,交互式接口
(2) 加载用户选择的内核或操作系统
允许传递参数给内核 可隐藏启动菜单
(3) 为菜单提供了保护机制
为编辑启动菜单进行认证 为启用内核或操作系统进行认证
grub的命令行接口
help: 获取帮助列表
help KEYWORD: 详细帮助信息
find (hd#,#)/PATH/TO/SOMEFILE:
root (hd#,#) 设置下一启动设备所在位置(设置grub的根设备)
kernel /PATH/TO/KERNEL_FILE: 设定本次启动时用到的内核文件;额外还可添加许多内核支持使用的命令行参数
例如:max_loop=100 selinux=0 init=/path/to/initinitrd /PATH/TO/INITRAMFS_FILE: 设定为选定的内核提供额外文件ramdisk(必须与内核完全匹配);
boot: 引导启动选定的内
cat /proc/cmdline 内核参数
内核参数文档:/usr/share/doc/kernel-doc-2.6.32/Documentation/kernel-parameters.txt
手动在grub命令行接口启动系统:
grub > root (hd#,#) 设置grub根的设备所在位置
(hd#,#) hd#: 磁盘编号,用数字表示;从0开始编号 #: 分区编号,用数字表示; 从0开始编号 (hd0,0) 第一块硬盘,第一个分区grub > kernel /vmlinuz-VERSION-RELEASE roroot=/dev/DEVICE 内核文件所在位置
grub > initrd /initramfs-VERSION-RELEASE.img 设置内核的ramdisk文件
grub > boot
grub配置文件 grub.conf
default=# : 设定默认启动的菜单项;落单项(title)编号从0开始(第0个第1个。。。。)
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 : 启动选定的内核或操作系统时进行认证
grub加密
grub-md5-crypt命令
破解root口令:
启动系统时,设置其运行级别1
centos 6 进入单用户模式:
(1) 编辑grub菜单(选定要编辑的title,而后使用e命令);
(2) 在选定的kernel后附加1, s, S或single都可以;
(3) 在kernel所在行,键入“b”命令
centos 7进入单用户模式
以上方法对于centos 6也适用
说白了进入单用户也就是让系统的第一个启动程序不运行init程序,而是运行 /bin/bash
安装grub:
(1) grub-install
安装grub stage1和stage1_5到/dev/DISK磁盘上,并
复制GRUB相关文件到 DIR/boot目录下
grub-install —root-directory=DIR /dev/DISK
grub-install表示修复grub的各个阶段,此选项表示要指定boot这个目录在哪,如果是 / 的话可以不写(2) 进入系统自带的 grub 程序 (直接运行grub)
grub> root (hd#,#)
grub> setup (hd#)
原创文章,作者:qzx,如若转载,请注明出处:http://www.178linux.com/46914