美文网首页
CentOS 6的启动过程及GRUB常见故障

CentOS 6的启动过程及GRUB常见故障

作者: guo的学习笔记 | 来源:发表于2017-07-10 08:25 被阅读0次

    Centos 6.9的启动

    1.启动过程

    启动流程详解图

    image
    注:此图来自网络
    1. 加载BIOS的硬件信息,获取第一个启动设备
    2. 读取第一个启动设备MBR的引导加载程序(grub)的启动信息
    3. 加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备
    4. 核心执行init程序,并获取默认的运行信息
    5. init程序执行/etc/rc.d/rc.sysinit文件
    6. 启动核心的外挂模块
    7. init执行运行的各个批处理文件(scripts)
    8. init执行/etc/rc.d/rc.local
    9. 执行/bin/login程序,等待用户登录
    10. 登录之后开始以Shell控制主机

    2. GRUB启动和常见故障

    1. stage1是引导扇区中引导程序(MNR的前446字节为引导程序),功能是用来装载stage1.5或stage2的。

    这一阶段的常见故障一般为grub引导程序被破坏。具体表现:无法进入启动菜单,计算机提示找不到系统,如果计算机装载有光盘会直接进入系统安装界面。

    恢复步骤:装载系统光盘,进入救援模式(Rescue installed system),如果/etc/fstab文件损坏救援模式是无法找到系统根的

    image.png
    选择第三项,这一步后面的两步是设置语言和键盘的默认即可。
    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查看。
    1. 然后,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的文件。
    1. 故障通常表现为:黑屏和error 15和17
    2. 修复方法和grub1阶段的修复一样

    3.stage2:grub能让用户加载内核、改变参数、修改选项,这些全都是stage2的功能。stage2可以去获取grub.conf以及menu.lst等文件的内容。

    1. /boot/initramfs-2.6.32-696.el6.x86_64.img文件损坏的表现和修复方法:内核中的特性之一:使用缓冲和缓存来加速对磁盘上的文件访问,并加载相应的硬件驱动。
    1. 先把/boot/initramfs文件删除来模拟损坏
    2. 故障通常表现为进入启动菜单后黑屏。
    3. 救援方法,在救援模式下通过下面的这条命令来重新生成文件
    mkinitrd /boot/initramfs-`uname -r`.img `uname -r` 
    
    image.png
    2. grub.conf文件损坏的表现和修复方法
    1. 把文件删除模拟损坏


      image.png
    2. 在grub命令行了手动输入grub.conf文件中的内容临时启动,支持TAB补全。
    J{E{7$NMLBVE2{SB$IDHTA1.png
    • 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文件
    image.png
    3. /boot/grub/目录被删除和修复方法
    1. 删除/grub目录模拟故障,故障表现:计算机黑屏提示error 15
    2. 在救援模式下重新安装grub软件包和重新生成grub文件,安装grub软件包需要先挂载光盘。最后还需要在grub目录下写一个grub.conf文件。


      image.png

    相关文章

      网友评论

          本文标题:CentOS 6的启动过程及GRUB常见故障

          本文链接:https://www.haomeiwen.com/subject/veqehxtx.html