Cenos 5和Centos 6 启动流程和故障恢复

Posted 2号

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cenos 5和Centos 6 启动流程和故障恢复相关的知识,希望对你有一定的参考价值。

Cenos 5和Centos 6 启动流程和故障恢复

掌握Linux启动的过程是很重要的,可以让我们在系统故障时进行排查,判断是具体哪个阶段出现问题,从而修复,而不是只能重装系统。

 我们需要了解几个相关名词及其含义

 inux 内核英文叫kernel,提供进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能。 

核心文件: /boot/vmlinuz-VERSION-release 


ramdisk:辅助的伪根系统 


CentOS 5: /boot/initrd-VERSION-release.img 


CentOS 6,7: /boot/initramfs-VERSION-rel5ase.img 


模块文件: /lib/modules/VERSION-release5 

Centos6 启动如下几步:

一:第一阶段:硬件引导启动

              1.加载 加载Bios的硬件信息,获取第一个启动设备 POST: Power-On-Self-Test,加电自检,是BIOS功能的一个主要部分。负责完成对CPU、主板、内存、键盘、 CD-ROM光驱等硬件情况的检测。 
               2.读取第一个启动设备MBR的引导加载程序(grub)的启动信息。 
 MBR总共512字节,前446byte 是bootloader ,之后64byte是硬盘分区表,最后两个字节是55AA 。 bootloader 是第一阶段启动项

                                bootloader 作用:

                                 1.提供启动菜单

                                 2.加载内核

                                 3.将引导转交给其他的Boot Loader

二:第二阶段:Grub启动引导阶段

 

三:第三阶段:内核引导阶段

 探测可识别到的所有硬件设备

 加载硬件驱动程序(可能借助于ramdisk加载驱动)

 以只读方式挂载根文件系统

 运行用户空间的第一个应用程序:/sbin/init

四:第四阶段:init初始化

Init程序的类型

         1)SysV: init, CentOS 5之前

配置文件:/etc/inittab

          2)Upstart: init,CentOS6

配置文件:/etc/inittab, /etc/init/*.conf

           3)Systemd:systemd, CentOS 7

配置文件:/usr/lib/systemd/system  /etc/systemd/system

 

Centos 5:运行级别:为系统运行或维护等目的而设定;0-6:7个级别

0:关机

1:单用户模式(root自动登录),single,维护模式

2:多用户模式,启动网络功能,但不会启动NFS;维护模式

3:多用户模式,正常模式;文本界面

4:预留级别;可同3级别

5:多用户模式,正常模式;图形界面

6:重启 默认级别:3,5

切换级别:init# 查看级别:runlevel;who -r

 

4.1 init程序执行/etc/rc.d/rc.sysinit文件 


4.2 启动核心的外挂模块 


4.3 init执行运行的各个批处理文件(scripts) 


4.4 init执行/etc/rc.d/rc.local 


4.5 执行/bin/login程序,等待用户登录

五:系统启动

  系统完后启动

启动故障分析

  1:模拟删除MBR表

 

dd if=/dev/zero of=/dev/sda bs=1 count=512 将MBR表清空

 

重启

此时我们不能进入到系统中,因为没有了Stage1的引导。

修复:重启进入救援模式

通过命令 chroot /mnt/sysimage 切换到真正根目录下。

 

  然后执行grub-install /dev/sda    等待完后后 重启 ,就恢复了

 

这种方法同样适用于1.5阶段故障

 

 

2 。模拟删除整个/boot分区

我们先看看分区下的文件

 

 

 里面除了grub 文件夹外的文件都是安装kernel 时候自动生成的。 当整个boot 分区丢失后,我们同样先进入救援模式,同样先执行 

chroot /mnt/sysimage 命令切换到平时的根目录下

,然后挂载光盘,之后安装光盘里的内核文件,

命令rpm -ivh /mnt/Packages/kernel-2.6.32-696.e16x86_64.rpm –force

 

然后我们在grub 文件夹下新建grub.conf 文件 

[root@Centos6.9 boot]#cat grub/grub.conf 
root (hd0,0) 写明/boot分区的位置 hd0 表示第一个硬盘,0 表示第一个分区。 
default=0 0表示默认启动 
timeout=5 表示5秒后自动运行 
title linux1 一个名称,叫什么无所谓,但是要有 
kernel /vmlinuz-2.6.32-696.el6.x86_64 root=/dev/sda2 
initrd /initramfs-2.6.32-696.el6.x86_64.img 

做完之后退出,然后重启机器就可以正常恢复了!

以上是关于Cenos 5和Centos 6 启动流程和故障恢复的主要内容,如果未能解决你的问题,请参考以下文章

CenOS/Fedora系统启动的整个流程——符合多数linux系统

#yyds干货盘点#Linux启动流程和故障排错

CentOS 5和6的启动流程

CenOs6.5配置本地yum源

CentOS 6.6 系统剪裁

CentOS 6.6 系统剪裁