Centos 6.9的启动
1.启动过程
启动流程详解图
注:此图来自网络
- 加载BIOS的硬件信息,获取第一个启动设备
- 读取第一个启动设备MBR的引导加载程序(grub)的启动信息
- 加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备
- 核心执行init程序,并获取默认的运行信息
- init程序执行/etc/rc.d/rc.sysinit文件
- 启动核心的外挂模块
- init执行运行的各个批处理文件(scripts)
- init执行/etc/rc.d/rc.local
- 执行/bin/login程序,等待用户登录
- 登录之后开始以Shell控制主机
2. GRUB启动和常见故障
1. stage1是引导扇区中引导程序(MNR的前446字节为引导程序),功能是用来装载stage1.5或stage2的。
这一阶段的常见故障一般为grub引导程序被破坏。具体表现:无法进入启动菜单,计算机提示找不到系统,如果计算机装载有光盘会直接进入系统安装界面。
恢复步骤:装载系统光盘,进入救援模式(Rescue installed system),如果/etc/fstab文件损坏救援模式是无法找到系统根的
选择第三项,这一步后面的两步是设置语言和键盘的默认即可。
image.png
这一步是设置网络的,直接选择NO。
image.png
这一步提示寻找系统的根,并把它挂载到/mnt/sysimage目录下,选择Continue。
image.png
提示根找到了并把他挂载到/mnt/sysimage目录下。想要切换到根的,执行chroot /mnt/sysimage。后面的直接按ok即可。
image.png
这里选择shell start shell,开启一个shell
image.png
进入命令行:执行
chroot /mnt/sysimage
切换到系统的根image.png
执行
grub-install /dev/sda
重新生成grub引导信息,/dev/sda系统安装的的硬盘,如果不知道可以先用df
查看。
- 然后,
exit
退出到救援模式,执行reboot
重启系统
注:如果重启之后出现SElinux字样并卡在那里,没有关系那是Linux系统的一种安全机制发现了系统有更改在扫描系统。
2. 因为stage2是放在文件系统中stage1不能识别文件系统格式,所以需要stage1.5来引导位于文件系统中的stage2。stage1.5的文件存放于/boot/grub目录下后缀为“1_5”的文件。实际上stage1加载1.5时是无法识别文件系统的也无法找到stage1.5的文件,所以在/boot/grub目录下的文件只是备份文件,在安装grub时安装程序就已经把stage1.5文件写入到硬盘中紧邻着MRB的32K空间中,紧邻着MBR的一段硬盘空间通常是空白的,grub就把1.5的文件写入到这里。这个地方没有文件系统,所以stage1可以直接加载1.5的文件。
- 故障通常表现为:黑屏和error 15和17
- 修复方法和grub1阶段的修复一样
3.stage2:grub能让用户加载内核、改变参数、修改选项,这些全都是stage2的功能。stage2可以去获取grub.conf以及menu.lst等文件的内容。
1. /boot/initramfs-2.6.32-696.el6.x86_64.img文件损坏的表现和修复方法:内核中的特性之一:使用缓冲和缓存来加速对磁盘上的文件访问,并加载相应的硬件驱动。
- 先把/boot/initramfs文件删除来模拟损坏
- 故障通常表现为进入启动菜单后黑屏。
- 救援方法,在救援模式下通过下面的这条命令来重新生成文件
mkinitrd /boot/initramfs-`uname -r`.img `uname -r`
image.png
2. grub.conf文件损坏的表现和修复方法
-
把文件删除模拟损坏
image.png - 在grub命令行了手动输入grub.conf文件中的内容临时启动,支持TAB补全。
- root (hd0,0) 表示第一块硬盘的第一个分区。可以利用TAB补全来查看有几个分区
- kernel 指定内核文件已只读的方式加载,指定系统分区
- initrd 指定/initramfs文件
- boot 运行,进入系统
3. 进入系统之后新建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文件
3. /boot/grub/目录被删除和修复方法
- 删除/grub目录模拟故障,故障表现:计算机黑屏提示error 15
-
在救援模式下重新安装grub软件包和重新生成grub文件,安装grub软件包需要先挂载光盘。最后还需要在grub目录下写一个grub.conf文件。
image.png
网友评论