grub文件文件修复

首先我们先破坏一下grub文件

这里我们先查看一下电脑是哪块硬盘启动的

grub文件文件修复

这里我们就直接破坏硬盘的二进制数据,以达到grub的破坏。

要记住我们只能破坏前446字节,也就是bootloader。后面64字节是分区表。

我们可以查看一下前512字节的二进制文件

hexdump -C -n 512 /dev/sda

grub文件文件修复

先破坏
/boot/grub/stage1的前446字节也就是启动硬盘的前446字节

dd if=/dev/zero of=/dev/sda bs=1 count=446

破坏后再查看一下二进制文件

grub文件文件修复

 

由图中可以看出前面的字节已经全部变为0了,也就意味着grub已经被破坏了。

然后我们重启

reboot

如果mbr(系统的前512字节主引导记录 )出故障,系统启动的表现形态看不见。

如果能看的见启动 那就不是grub的问题。

启动后直接回自动进入光盘模式   然后进入救援模式

grub文件文件修复

 

然后会出现好多让选择的界面。针对这个问题,那些选择可以不用管,一直默认就行。

然后就会进入救援模式中,这里是关盘启动。

grub文件文件修复

我们可以查看出系统有的现在的救援模式也都有。

但是现在还不是自己系统真正的根,所以我么你要先切换到我们系统的根去。

我们系统真正的根再/mnt/sysimage/

chroot /mnt/sysimage/

grub文件文件修复

然后修复grub

  grub-install /dev/sda

grub文件文件修复

然后手动吧缓存写进磁盘里

sync

然后exit退出

重新启动。

grub文件文件修复

这时就意味着启动了

 

如果1阶段好好的  那就不会直接让光盘启动   1.5阶段弄出故障不提示光盘系启动 有一瞬间开机界面 但是系统一样起不来

破坏1.5阶段

 

grub文件文件修复

grub文件文件修复

这时我们用光盘启动进行修复。

重启

然后选择光盘启动更1阶段坏一样。

进入救援模式后先切根

chroot /mnt/sysimage/

然后再对gurb进行修复。

grub-install /dev/sda

然后手动吧缓存写进磁盘里

sync

然后exit退出

重新启动。

grub文件文件修复

启动看到这时就说明已经修复成功了。 

缺失grub.conf文件

 

 

grub文件文件修复

 

制作gurb文件  直接写出kernrl 三行就行 可以补全

grub文件文件修复

启动

也可以直接创建grub.conf文件

grub文件文件修复

 

 

缺失/sbin/init文件

错误显示

grub文件文件修复

 

e   d编辑

kernrl 那一行最后

init=/bin/bash

用bash启动 然后进行恢复

先把根重挂 

 munt 
-o  remount , root /

把移动的文件移动回去  重启

但是会出现错误

grub文件文件修复

原因:文件移动之后会发把标签属性发生变变

解决方法就绕过标签

启动时输入a

末尾加  selinux=0

然后ctrl+x重启

 

 

/boot/grub删除如何修复

这里我们直接把grub.文件全部删除

grub文件文件修复

然后查看一下,确认删除后重启电脑

grub文件文件修复

启动界面

这时说明系统已经起不来了。

我们只能进入救援模式进行启动。

我们产考前面的环节进入救援模式。

先切根

chroot /mnt/sysimage/

然后可以查看一下/boot/grub/文件是否已经被删除

grub文件文件修复

 

然后再  

grub-install

生成后gurb文件

grub文件文件修复

我们先查看问价是否已经生成

grub文件文件修复

由查询可以看出文件已经生成了,但是还缺少/grub/grun.conf文件

最后生成grub.conf文件夹

grub文件文件修复

完成后退出 重启完成

 

 

/boot删除如何修复

刚刚尝试了/boot/grub的修复,现在试一下/boot文件的修复

首先我们先删除/boot文件

rm-rf /boot

/boot的文件删不掉,但是/boot里面的文件已经全部都删除了

 

grub文件文件修复

挂载光盘

  mount /dev/sr0 /mnt

然后进入光盘查看一下

把光盘中的/isolinux/vmlinuz文件copy到/boot

cp vmlinuz /boot/

内核文件复制到/boot 中

把其他的文件生成

grub文件文件修复

生成intramfs.img文件

mkinitrd /boot/initramfs.img `ua=name -r`

生成这个文件是挂驱动的,如果没有这个文件根就挂不上去。

生成之后可以查看一下/boot文件下就有这两个文件了。

grub文件文件修复

然后再 生成grub文件

grub-install  /dev/sda

grub文件文件修复

最后生成grub.conf文件夹

完成后退出 重启完成

 

 

深入破坏

 

移走/etc/fstab 文件

mv /etc/fstab /root/

再删除/boot

rm -rf /boot

grub文件文件修复

/etc/fstab 中写的根挂载到哪,没有该文件救援模式无法自动挂载到根。

启动又是这个界面

所以大家可以看出只要是第二阶段出问题页面都是这个错误

grub文件文件修复

救援模式启动

会显示没有挂载根

查看硬盘

grub文件文件修复

 

尝试把/sd*也就是硬盘挂载一下,看看哪个是根。

然后常见/fstab文件挂载根

grub文件文件修复

这里我们查看一下sda因为他是启动盘

fdisk -l /dev/sda、

发现下面分好多。这时我们把每个都挂一遍看看哪个是根

我们先在/mnt下创建一个文件夹/tmp

mkdir /mnt/tmp

这样我们可以把这些分区都挂到这个文件查看。

先挂/sda1然后查看一下

mount /dev/sda1 /mnt/tmp/

grub文件文件修复

那我们再挂载sda2试一下

首先把刚刚的取消挂载才能挂载新的

umount /mnt/tmp
mount /dev/sda2 /mnt/tmp/

grub文件文件修复

可以sda2就是根分区

那我们就把根挂载上去。

既然sda2是根文件那么sda1就是/boot

这两个是开机启动的主要文件,这两个挂上机器基本就能启动。

等系统启动后再去修复其他的错误。

所以一起挂载

编辑/fstab

vi /mnt/tmp/etc/fstab

grub文件文件修复

先把挂件的挂载把系统修复起来。

完成后重启,重新进救援模式,先让光盘启动找到根再进行修复。

进入救援模式后先切根

chroot /mnt/sysimage/

 

然后挂载光盘

mount /dev/sr0 /mnt

grub文件文件修复

这里可以像上一个实验一样去复制vmlinuz这个文件。

当然也可以去安装kernel.

装载kernel

grub文件文件修复

 

也可以 通过文件复制到/boot但是安装的更完善

grub文件文件修复

然后再写gurb,conf文件

然后重启

即使gurb,conf文件写错了,也可以在启动界面中输入c手动添加更改

进入系统后 把其他的都挂载上

然后swapon -s启动 swapon空间

grub文件文件修复

 

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

(1)
phosphorphosphor
上一篇 2017-07-28 16:50
下一篇 2017-07-28 19:41

相关推荐

  • 硬链接和软链接的区别

    硬链接和软链接在文件系统实现上的区别决定了两者之间功能上的不同,也就是说硬链接和软链在文件系统上两者实现的方式不同,让其各自具有不同的功能和特色,也决定了各自的优点和缺点。接下同文件系统上创建硬链接和软链接看各自的特点。 一文件系统上创建硬链接 下面命令是在文件系统上创建一个硬链接: ~]# ln test /testdir/t…

    Linux干货 2016-10-29
  • 自制一个简易linux

    虚拟机添加一块新的硬盘(大小自定义) 在磁盘上创建一个基本分区作为/boot分区(大小200M足够) 再创建一个基本分区作为基本根分区(这里我指定给了5G大小) 然后给分区创建文件系统(注;swap分区要使用mkswap命令) ]# mkdir /mnt/boot 创建挂载点(因为grub只识别/boot目录,所以要创建boot目录) ]# mount /d…

    Linux干货 2016-09-21
  • 实验验证Linux系统环境下路由的最长掩码匹配原则

    实验验证Linux系统环境下路由的最长掩码匹配原则 实验环境拓扑如下 环境配置 HostA网卡配置 DEVICE=eth1 IPADDR=172.16.0.100 PREFIX=16 R1网卡配置 DEVICE=eth1 IPADDR=172.16.0.1 PREFIX=16 DEVICE=eth2 IPADDR=192.168.2.1 PREFIX=24 …

    2017-05-02
  • Linux命令的使用格式以及命令帮助信息的获取方式

    1.Linux系统上的命令使用格式 2.Linux系统程序文件存放位置 3.Linux获取命令的帮助信息 区分内部命令和外部命令 内部命令在系统启动时就调入内存,是常驻内存的,所以执行效率高。 外部命令是系统的软件功能,用户需要时才从硬盘中读入内存。 #type COMMAND 内部命令获取帮助信息:#help COMMAND 外部命令获取帮助信息…

    Linux干货 2016-10-29
  • 马哥教育网络班21期+第9周课程练习

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash  declare -i loginable=0 declare -i unloginable=0  &n…

    Linux干货 2016-09-07
  • rsync+inotify实现数据同步——单向传输

    实验环境:<从A主机推送数据到B主机[B主机可以有多个]> A主机:10.1.43.102 B主机:10.1.43.103 配置流程: —rsyncserver—- <B主机上配置> 1.vim /etc/rsyncd.conf(用户,目录,模块,虚拟用户及密码文件) vim /etc/rsyncd.…

    Linux干货 2016-10-27