17.3centos6开机文件破坏实验

    基于第11centos6启动流程的破换实验
实验1.删除/boot/grub/下处grub.conf以外的所有文件
实验2.grubstage1阶段的破坏
实验3.grub stage1_5阶段破解(1.5)
实验4.grub stage2阶段即grub.conf文件删除破坏
实验5.删除整个/boot/*所有文件,即rm -rf /boot/*
实验6.删除/etc/fstab,/boot/*所有文件
实验7.基于根文件系统在逻辑卷上的删除的恢复实验


实验1:
    删除/boot/grub/中除grub.conf以外的所有文件
    启动不受影响,原因在于删除的这些文件都是安装生成的备份,重要的stage1阶段磁盘的前446字节(即grub1仍存在),而grubstage1_5阶段也在磁盘的bootloader也即grubstage1后续的分区里。grubstage2阶段grub.conf又没有删除,故而系统可以起来


实验2:centos6   
    grub stage1阶段破坏
    破坏硬盘的前446字节,即破坏grub的stage1阶段,将不可启动。
    dd if=/dev/zero of=/dev/sda bs=1 count=446
    把光盘镜像挂载上去,直接重启,由于主引导bootloader被破坏,直接进入图1,图2后,等待操作
    修复过程:
    1.进入rescue
    2.chroot /mnt/sysimage
    3.grub-install /dev/sda
    4.sync   以防万一,同步一下数据到磁盘
    5.exit    退出硬盘根系统
    6.exit    退出光盘根系统
    4.reboot  选择字符界面的reboot选项,点击ok重启
    建议关闭selinux
        方法有3:
            a.vim /etc/selinux/config
                SELINUX=disabled
            b.vim /boot/grub/grub.conf 在内核参数后写selinux=0
            c.启动时,修改单次的Grub内核参数后写selinux=0


实验3:centos6
    破坏stage1.5
    dd if=/dev/zero of=/dev/sda bs=1 count=10240 seek=512
    重启进入图1,图3表示硬盘有启动能力的,只不过进不去/boot,/boot的文件系统驱动被删除。也即1.5阶段被删除
    恢复
    1.进入rescue
    2.grub
        root (hd0,0)  root此时表示/boot
        setup (hd0)   需要使用/boot/grub/stage1,stage1_5,stage2下的数据恢复磁盘上的grubstage1_5。若这些文件都在,同实验2一样,同样可以修复grubstage1阶段磁盘bootloader上446字节被损坏的数据
    3.恢复后,如果留下/boot/grub.conf即实验1。再重启,系统会报错。如图4。进入resuce,使用实验2的步骤即可恢复



实验4:centos6
    破坏grubstage2阶段启动菜单
    删除/boot/grub/grub.conf并恢复
    [root@centos6 grub ]#ls
    device.map     ffs_stage1_5      jfs_stage1_5    reiserfs_stage1_5  stage2           xfs_stage1_5
    e2fs_stage1_5  grub.conf         menu.lst        splash.xpm.gz      ufs2_stage1_5
    fat_stage1_5   iso9660_stage1_5  minix_stage1_5  stage1             vstafs_stage1_5


    如下
    [root@centos6 grub ]#cat grub.conf
    # grub.conf generated by anaconda
    #
    # Note that you do not have to rerun grub after making changes to this file
    # NOTICE:  You have a /boot partition.  This means that
    #          all kernel and initrd paths are relative to /boot/, eg.
    #          root (hd0,0)
    #          kernel /vmlinuz-version ro root=/dev/sda2
    #          initrd /initrd-[generic-]version.img
    #boot=/dev/sda
    default=0
    timeout=5
    splashimage=(hd0,0)/grub/splash.xpm.gz
    hiddenmenu
    title CentOS 6 (2.6.32-696.el6.x86_64)
        root (hd0,0)                  #root表示/boot的根,(hd0,0)就是/boot
        kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=8ce26687-4441-42c9-bb9d-014bbff1ccb2 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
        initrd /initramfs-2.6.32-696.el6.x86_64.img
    title CentoS 66(yingbaobao)
        kernel (hd0,0)/vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=8ce26687-4441-42c9-bb9d-014bbff1ccb2  rd rhgb quiet selinux=0
        initrd (hd0,0)/initramfs-2.6.32-696.el6.x86_64.img

    [root@centos6 grub ]#

    删除/boot/grub/grub.conf并恢复 即进入救援模式,把grub.conf手动创建并填写启动必须内容,具体见实验5编辑grub.conf。上述还手动创建了一个启动菜单,启动界面如图5



实验5:删除整个/boot/*  
    开机删除 rm -rf /boot/* 关机  故障如图6
    1.进入rescue
    2.chroot /mnt/sysimage
    3.grub-install /dev/sda   创建grub1,1.5等其它文件(不包含grub2)
    4.mount /dev/cdrom /media
    5.cp /media/isolinux/vmlinuz /boot/
            也可以cp /media/Packages/kernel-2.6.32-696.el6.x86_64.rpm /app/
                   rpm2cpio kernel-2.6.32-696.el6.x86_64.rpm |cpio -id   解压到/app/boot
                   cp boot/vmlinuz-2.6.32-696.el6.x86_64 /boot/
            也可以rpm -ivh /mnt/sysimage/media/Packages/kernel-2.6.32-696.el6.x86.64.rpm --root=/mnt/sysimage/ --force  光盘所在根运行此命令
            或者chroot /mnt/sysimage下运行
                  rpm -ivh /media/Pacekages/kernel-2.6.32-696.el6.x86.64.rpm --root=/ --force #即可,生成initramfs和vmlinuz,之后grub-install,编辑grub.conf  
    6.mkinitrd /boot/initramfs-2.6.32-696.el6.x86_64.img $(uname -r) 第5步若用rpm,会生成initramfs
      或者mkinitrd /boot/initramfs-`uname -r`.img `uname -r`
    7.vim /boot/grub/grub.conf
        default=0
        timeout=5
        title redhat
        root (hd0,0)      r!ls /boot/vmlinuz tab键补齐
        kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=bfd90cd4-8516-4a60-8f1a-f7c3511a6b3f rhgb quiet
        initrd /initramfs-2.6.32-696.el6.x86_64.img
    8.exit;reboot



实验6:删除/etc/fstab,删除/etc/init/rcS.conf,删除/etc/rc.d/rc.sysinit,删除/boot/*下的所有文件
       如图7此时chroot /mnt/sysimage会报错,分区已经被破坏,chroot无法识别根
     救援环境没有lsblk命令
     fdisk -l
     mkdir /mnt/rootfs
     mount /dev/sda1-* /mnt/rootfs  一个一个挂载后,ls /mnt/rootfs命令,看是否有/boot等目录,有即是根分区    blkid查看文件系统类型,vi /mnt/rootfs/etc/fstab  扩展模式:r!blkid

    1.进入rescue   
    2.编写/etc/fstab
        UUID=b6d6d6ca-8f04-43a3-84a4-d34d2b2f50d1 /boot  ext4   defaults 0 2
        UUID=bfd90cd4-8516-4a60-8f1a-f7c3511a6b3f /      ext4    defaults 0 1
        UUID=50950a59-83cb-4688-80ec-d9883019fcce /app   ext4    defaults 0 0
        UUID=5a1ff0b5-5c19-42e3-8b6a-65e7d332ee0c swap   swap   defaults 0 0
    3.重新进入Rescue
    4.chroot /mnt/sysimage
    5.grub-install /dev/sda
    6.恢复内核文件及ramdisk。
            方法1:从其他机器拷配置网络,命令scp ip:/boot/ramdisk .
            方法2:从光盘中恢复,步骤见上
    7.vim /boot/grub/grub.conf
                default=0
                timeout=5
                title redhat
                root (hd0,0)
                kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=bfd90cd4-8516-4a60-8f1a-f7c3511a6b3f rhgb quiet
                initrd /initramfs-2.6.32-696.el6.x86_64.img
    8.rpm -qf /etc/init/rcS.conf  rpm -qf /etc/rc.d/rc.sysinit
    9.mount /dev/cdrom /media
      cp /media/Packages/initscripts-9.03.58-1.el6.centos.x86_64.rpm  /app
      rpm2cpio initscripts-9.03.58-1.el6.centos.x86_64.rpm  |cpio -id
      cp etc/init/rcS.conf /etc/init
      cp etc/rc.d/rc.sysinit /etc/rc.d
    10.reboot




实验7:
    基于根所在的文件系统在LVM上的恢复
    将/etc/fstab及/boot下的所有文件删除
    1.进入rescue
    2.lvscan;vgchange -ay
    3.同上




实验8:===centos6启动图片更换
[root@centos6 grub ]#pwd
/boot/grub
[root@centos6 grub ]#ls
device.map     ffs_stage1_5      jfs_stage1_5    reiserfs_stage1_5  stage2        xfs_stage1_5
e2fs_stage1_5  grub.conf         menu.lst        splash.xpm.gz      ufs2_stage1_5
fat_stage1_5   iso9660_stage1_5  minix_stage1_5  stage1             vstafs_stage1_5
[root@centos6 app ]#mv /boot/grub/splash.xpm.gz .
[root@centos6 app ]#gunzip splash.xpm.gz ;ls
splash.xpm
[root@centos6 app ]#
图片格式为png,需要用linux工具图片处理工具转换格式
[root@centos6 yum.repos.d ]#yum install ImageMagick
[root@centos6 yum.repos.d ]#rpm -ql ImageMagick  查询操作命令
/usr/bin/convert
*****省略****

[root@centos6 app ]#ls
splash.xpm  untitled.png  yingbaobao.xpm
[root@centos6 app ]#head yingbaobao.xpm
/* XPM */
static char *yingbaobao[] = {
/* columns rows colors chars-per-pixel */
"640 480 14 1 ",
"  c #251B17",
". c #502C26",
"X c #5E463A",
"o c #463E40",
"O c #6C5950",
"+ c #AE1E26",
[root@centos6 app ]#gzip yingbaobao.xpm
[root@centos6 app ]#ls
splash.xpm  untitled.png  yingbaobao.xpm.gz
[root@centos6 app ]#mv yingbaobao.xpm.gz /boot/grub/
修改/boot/grub/grub.conf如下

splashimage=(hd0,0)/grub/yingbaobao.xpm.gz



                            开机更换图片实验

=========================================
图片

                                    图1

                                    图2

                                        图3

                                                图4

                                        图5

                                            图6

                                图7


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值