-
grub legacy
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#,#)
-
kernel /PATH/TO/KERNEL_FILE: 设定本次启动时用 到的内核文件;额外还可添加许多内核支持使用的cmdline参数 例如:max_loop=100 selinux=0 init=/path/to/init
-
initrd /PATH/TO/INITRAMFS_FILE: 设定为选定的 内核提供额外文件的ramdisk;
-
boot: 引导启动选定的内核
-
识别硬盘设备: (hd#,#)
-
hd#: 磁盘编号,用数字表示;从0开始编号
-
#: 分区编号,用数字表示; 从0开始编号
-
(hd0,0) 第一块硬盘,第一个分区
-
手动在grub命令行接口启动系统:
-
grub> kernel (hd#,#)/vmlinuz-VERSION-RELEASE root=/dev/DEVICE
-
grub> initrd (hd#,#)/initramfs-VERSION-RELEASE.img
-
grub boot
-
grub legacy配置文件
-
配置文件:/boot/grub/grub.conf
-
default=#: 设定默认启动的菜单项;落单项(title)编号从0开始
-
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
-
进入单用户模式:
-
(1) 编辑grub菜单(选定要编辑的title,而后使用e命令);
-
(2) 在选定的kernel后附加 1, s, S或single都可以;
-
(3) 在kernel所在行,键入“b”命令
-
安装grub:
-
(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#)
系统启动第1阶段被破坏修复过程
-
为了模拟系统启动第一阶段被破坏,首先破坏第一阶段MBR
-
进入救援模式恢复系统
-
切换根目录
-
调用grub工具
-
修复完成后重启
系统启动第1.5阶段被破坏修复过程
-
光盘引导进入救援模式
-
使用交互式命令grub恢复系统
grub
root (hd0,0)
setup (hd0)
修复结束
系统启动第2阶段被破坏修复过程
-
切换根目录并修复
-
修复完成
-
重新写一份启动文件
grub> initrd (hd0,0)/initramfs-2.6.32-642.e16.x86_64.img
grub> boot
修复完了在重复一遍,进入系统中写一份启动文件
修复完成
总结:其实把这三个启动流程完全消化,就可以应对大多数系统不能启动的排错了,系统不能启动大多是建立在这三种情况之上的,如果把这三种情况掌握并加上自己懂得的linux系统相关知识,活学活用,基本就可以解决系统不能启动的问题。
原创文章,作者:502795641,如若转载,请注明出处:http://www.178linux.com/46196
评论列表(1条)
总结的很详细,能看出来有具体操作过,实验也顺利的解决了,但是标题是不是要仔细斟酌一下呢。