破坏grub实验之一

1、删除grub stage1阶段

[root@centos6 ~]# dd if=/dev/zero of=/dev/sda bs=446 count=1
1+0 records in
1+0 records out
446 bytes (446 B) copied, 0.000518378 s, 860 kB/s
[root@centos6 ~]# hexdump -C -n 446  /dev/sda
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001b0  00 00 00 00 00 00 00 00  00 00 00 00 00 00        |..............|
000001be
[root@centos6 ~]# hexdump -C -n 446 -v /dev/sda

破坏grub实验之一 blob.png

 

重启机器

此时可以看到系统会直接进入到光盘启动界面

这里我们选择修复系统

破坏grub实验之一

blob.png

 

然后进入到shell提示符

执行如下命令

sh-4.1# chroot /mnt/sysimage
sh-4.1# grub-install /dev/sda
sh-4.1# exit
sh-4.1# exit

重启系统,至此已经修复完成

注意:会在如下界面停留很长时间,属于正常情况

破坏grub实验之一

blob.png

 

2、删除grub start1.5阶段

[root@centos6 ~]# dd if=/dev/zero of=/dev/sda bs=512 count=2 seek=1 //破坏1.5阶段
[root@centos6 ~]# hexdump -C -n 1024 -v /dev/sda

破坏grub实验之一blob.png

 

重启修复:

此时开机界面会一直黑屏,我们需要选择光盘启动,进入紧急救援模式

破坏grub实验之一

blob.png

 

进入救援模式后,修复方式和破坏grub stage1阶段一样

3、直接删除grub目录

[root@centos6 ~]# rm -rf /boot/grub/

重启;修复

出现如下错误提示

破坏grub实验之一

blob.png

 

重新启动,选择光盘引导,进入紧急救援模式

前几个步骤和前面一样

sh-4.1# chroot /mnt/sysimage
sh-4.1# grub-install /dev/sda
sh-4.1# ls /boot/grub 
... ....

此时grub目录已经出现

为grub提供配置文件

sh-4.1# vim /boot/grub/grub.conf

破坏grub实验之一blob.png

 

sh-4.1# exit
sh-4.1# exit

此时系统便能正常启动

一个简单说明:

[root@centos6 ~]# cd /boot/grub/
[root@centos6 grub]# mv *1_5 /root //将1_5的备份文件剪切到其他路径下
[root@centos6 grub]# grub
grub> root (hd0,0)
grub> setup (hd0)
grub> quit
[root@centos6 grub]# ls
device.map  grub.conf  stage1  stage2  //此时grub路径下仍没有1_5阶段的文件,说明grub命令的修复要依靠state1_5的备份文件
而grub-install则不是
[root@centos6 grub]# grub-install /dev/sda
[root@centos6 grub]# ls
//此时会出现stage1_5的备份文件
说明grub命令的恢复要依靠grub的备份文件,备份文件没有则会恢复失败

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

(0)
sixijiesixijie
上一篇 2016-09-19 17:25
下一篇 2016-09-19 20:35

相关推荐

  • N25-第八周博客作业

    1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态; 在线的主机使用绿色显示;不在线的主使用红色显示; #!/bin/bash # ping探测主机在线状态 for i in `seq 254`;do if ping -c 1 172.16.0.$i &> /dev/null;th…

    Linux干货 2017-02-23
  • java基础篇—内存分析

    Java的并发采用的是共享内存模型(而非消息传递模型),线程之间共享程序的公共状态,线程之间通过写-读内存中的公共状态来隐式进行通信。多个线程之间是不能直接传递数据交互的,它们之间的交互只能通过共享变量来实现 同步是显式进行的。程序员必须显式指定某个方法或某段代码需要在线程之间互斥执行。 1、多线程通信 1.1 内存模型 Java线程之间的通信由Java内存…

    Linux干货 2015-03-16
  • 网络管理之网络配置与网络组

    网络属性配置 回顾: TCP/IP协议栈:物理层,数据链路层,网络层,传输层,应用层,     链路数据层:以太网帧     网络层:IP报文      传输层:TCP,UDP     应用…

    Linux干货 2016-09-06
  • ​学会用各种姿势备份MySQL数据库

                学会用各种姿势备份MySQL数据库 前言 为什么需要备份数据? 数据的备份类型 MySQL备份数据的方式 备份需要考虑的问题 设计合适的备份策略 实战演练 使用cp进行备份 使用mysqldump+复制BINARY …

    Linux干货 2016-04-27
  • shell脚本编程2

    shell脚本编程2   今天继续学习了shell脚本编程,续之前写的脚本编程1。上次主要学了编程的基础,脚本格式,变量类型及变量的使用,条件测试,数字运算并且进行了部分练习,因为这部分逻辑思维能力要求不是很高,因此记忆起来难度不是特别大。   从今天开始便进入了流程控制以及函数、数组、高级字符串操作、高级变量等内容的学习,总体来说难度和…

    Linux干货 2016-08-16
  • DNS域名系统

    【本文导航】DNS域名系统DNS域名系统DNS解析类型DNS查询类型DNS服务器类型资源记录   SOA记录   NS记录   MX记录   A记录与泛域名   PTR记录   CNAME记录   AAAA记录子域区域传…

    Linux干货 2016-12-26

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-23 11:32

    文章操作新强,有时候,我们就需要自己模拟破坏实验环境来形成自己的工作经验哦。建议多做一些实验。