美文网首页
grub文件文件修复

grub文件文件修复

作者: clickdiff | 来源:发表于2017-10-12 10:28 被阅读0次

    首先我们先破坏一下grub文件
    这里我们先查看一下电脑是哪块硬盘启动的



    这里我们就直接破坏硬盘的二进制数据,以达到grub的破坏。
    要记住我们只能破坏前446字节,也就是bootloader。后面64字节是分区表。
    我们可以查看一下前512字节的二进制文件

    hexdump -C -n 512 /dev/sda


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

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

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


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

    reboot

    如果mbr(系统的前512字节主引导记录 )出故障,系统启动的表现形态看不见。
    如果能看的见启动 那就不是grub的问题。
    启动后直接回自动进入光盘模式 然后进入救援模式


    然后会出现好多让选择的界面。针对这个问题,那些选择可以不用管,一直默认就行。
    然后就会进入救援模式中,这里是关盘启动。



    我们可以查看出系统有的现在的救援模式也都有。
    但是现在还不是自己系统真正的根,所以我么你要先切换到我们系统的根去。
    我们系统真正的根再/mnt/sysimage/

    chroot /mnt/sysimage/


    然后修复grub

    grub-install /dev/sda


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

    sync

    然后exit退出
    重新启动。



    这时就意味着启动了

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

    破坏1.5阶段



    这时我们用光盘启动进行修复。
    重启
    然后选择光盘启动更1阶段坏一样。
    进入救援模式后先切根

    chroot /mnt/sysimage/

    然后再对gurb进行修复。

    grub-install /dev/sda

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

    sync

    然后exit退出
    重新启动。



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

    缺失grub.conf文件

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



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


    缺失/sbin/init文件

    错误显示


    e d编辑
    kernrl 那一行最后

    init=/bin/bash

    用bash启动 然后进行恢复
    先把根重挂
    munt -o remount , root /
    把移动的文件移动回去 重启
    但是会出现错误



    原因:文件移动之后会发把标签属性发生变变
    解决方法就绕过标签
    启动时输入a
    末尾加 selinux=0
    然后ctrl+x重启

    /boot/grub删除如何修复

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



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



    启动界面
    这时说明系统已经起不来了。

    我们只能进入救援模式进行启动。
    我们产考前面的环节进入救援模式。
    先切根

    chroot /mnt/sysimage/

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


    然后再
    grub-install

    生成后gurb文件



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



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

    完成后退出 重启完成

    /boot删除如何修复

    刚刚尝试了/boot/grub的修复,现在试一下/boot文件的修复
    首先我们先删除/boot文件

    rm-rf /boot

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


    挂载光盘

    mount /dev/sr0 /mnt

    然后进入光盘查看一下
    把光盘中的/isolinux/vmlinuz文件copy到/boot

    cp vmlinuz /boot/

    内核文件复制到/boot 中
    把其他的文件生成



    生成intramfs.img文件

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

    生成这个文件是挂驱动的,如果没有这个文件根就挂不上去。
    生成之后可以查看一下/boot文件下就有这两个文件了。



    然后再 生成grub文件

    grub-install /dev/sda


    最后生成grub.conf文件夹
    完成后退出 重启完成

    深入破坏

    移走/etc/fstab 文件

    mv /etc/fstab /root/

    再删除/boot

    rm -rf /boot


    /etc/fstab 中写的根挂载到哪,没有该文件救援模式无法自动挂载到根。
    启动又是这个界面
    所以大家可以看出只要是第二阶段出问题页面都是这个错误



    救援模式启动
    会显示没有挂载根
    查看硬盘


    尝试把/sd*也就是硬盘挂载一下,看看哪个是根。
    然后常见/fstab文件挂载根



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

    fdisk -l /dev/sda、

    发现下面分好多。这时我们把每个都挂一遍看看哪个是根
    我们先在/mnt下创建一个文件夹/tmp

    mkdir /mnt/tmp

    这样我们可以把这些分区都挂到这个文件查看。
    先挂/sda1然后查看一下

    mount /dev/sda1 /mnt/tmp/


    那我们再挂载sda2试一下
    首先把刚刚的取消挂载才能挂载新的

    umount /mnt/tmpmount /dev/sda2 /mnt/tmp/


    可以sda2就是根分区
    那我们就把根挂载上去。
    既然sda2是根文件那么sda1就是/boot
    这两个是开机启动的主要文件,这两个挂上机器基本就能启动。
    等系统启动后再去修复其他的错误。
    所以一起挂载
    编辑/fstab

    vi /mnt/tmp/etc/fstab


    先把挂件的挂载把系统修复起来。
    完成后重启,重新进救援模式,先让光盘启动找到根再进行修复。
    进入救援模式后先切根

    chroot /mnt/sysimage/

    然后挂载光盘

    mount /dev/sr0 /mnt


    这里可以像上一个实验一样去复制vmlinuz这个文件。
    当然也可以去安装kernel.
    装载kernel


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



    然后再写gurb,conf文件
    然后重启
    即使gurb,conf文件写错了,也可以在启动界面中输入c手动添加更改
    进入系统后 把其他的都挂载上
    然后swapon -s启动 swapon空间


    相关文章

      网友评论

          本文标题:grub文件文件修复

          本文链接:https://www.haomeiwen.com/subject/apolyxtx.html