zoukankan      html  css  js  c++  java
  • 某些系统文件破坏后的修复方式

    口令问题:

     1.重设CentOS5和CentOS6的root口令
      当我们忘记root口令而无法进入系统时,可以使用下面的方法重设root口令:
       开机出现进度条时快速按任意键,按a键进入编辑状态,此时输入1、S、s或者single等都可进入单用户模式,进入之后输入:

    #passwd root
    


         输入两边密码后重启即可
     2.为grub菜单加密防止单用户操作(此口令仅对进入单用户模式有效)

    #vim /boot/grub/grub.conf
    


       title 前写入:password PASSWORD
        其中PASSWORD的生成有以下3种方法:
         1).明文:直接写明文密码
         2).md5加密:

    #grub-md5-crypt
    


          输入密码产生md5值,将这个md5值写进title前:

    password --md5 $1$f52CF/$TzksbVRC.dahPpfRN4h3C0
    


         3).sha512加密:

    #grub-crypt
    


          输入密码产生sha512值,将这个值写进title前:

    password --encrypted $6$50YpSTdKKyWyZNO1$n1dYZeSqNszNwnqJxS5siwJFDThxXmRRPWmtsCA37QUd08/nkWz8Y4pSULpWCgvDop/9hyFVzcj8Sbd24bg0q/
    


      破解grub密码:
       重启进入光盘救援模式删除/boot/grub/grub.conf中的密码


    系统文件人为破坏后的修复方式:

     实验一:破坏MBR bootloader程序并恢复(1stage)
      1).破坏引导程序

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


      2).重启进入光盘救援模式
      3).切根

    #chroot /mnt/sysimage
    


      4). 法一:
       安装grub stage1和stage1_5到/dev/DISK磁盘上,并复制GRUB相关文件到/boot目录下

    #grub-install --root-directory=DIR /dev/sda   (如果已经切换到根下可省略--root-directory=DIR)
    


       法二:
       切根后输入:

    #grub
    #grub> root (hd0,0)
    #grub> setup (hd0)
    #grub> quit
    


      5).重启
     实验二:破坏1.5stage并修复
      1).破坏1.5stage程序

    #dd if=/dev/zero of=/dev/sda bs=1 count=10240 seek=512
    


      2).重启进入光盘救援模式
      3).

    #chroot /mnt/sysimage
    


      4). 法一:

    #grub-install /dev/sda
    


       法二:

    #grub
    #grub> root (hd0,0)
    #grub> setup (hd0)
    #grub> quit
    


      5).重启 
     实验三:破坏或者删除grub.conf后的恢复
      1).重启系统后系统会进入grub>
       之后输入以下即可:

    #grub> kernel /vmlinuz-2.6.32-642.el6.x86_64 root=/dev/sda2
    #grub> initrd /initramfs-2.6.32-642.el6.x86_64.img
    #grub> boot
    


         在上述步骤中由于vmlinuz-2.6.32-642.el6.x86_64和initramfs-2.6.32-642.el6.x86_64.img并没有被破坏,所以输入时可补全
      2).重启成功后在/boot/grub/下编辑grub.conf:

    #vi /boot/grub/grub.conf
    default=0
    timeout=3
    title linux    #title后可任意填写
    root (hd0,0)   #此项可以不写,默认是在首块磁盘里查找
    kernel /vmlinuz-2.6.32-642.el6.x86_64 root=/dev/sda2
    initrd /initramfs-2.6.32-642.el6.x86_64.img
    


     实验四:破坏或者删除/boot/grub目录并恢复

    #rm -rf /boot/grub
    


      此实验类似于实验二破坏1.5stage阶段,恢复方法同实验二
       1).重启进入光盘救援模式
       2).

    #chroot /mnt/sysimage
    


       3).

    #grub-install /dev/sda
    


        重启进入:

    #grub>
    #grub> kernel /vmlinuz-2.6.32-642.el6.x86_64 root=/dev/sda2
    #grub> initrd /initramfs-2.6.32-642.el6.x86_64.img
    #grub> boot
    


        重启系统,编辑/boot/grub/grub.conf

    #vi /boot/grub/grub.conf
    default=0
    timeout=3
    title linux    #title后可任意填写
    root (hd0,0)   #此项可以不写,默认是在首块磁盘里查找
    kernel /vmlinuz-2.6.32-642.el6.x86_64 root=/dev/sda2
    initrd /initramfs-2.6.32-642.el6.x86_64.img
    


     实验五:破坏或者删除/boot目录下的所有文件

    #rm -rf /boot/*
    


      进入光盘救援模式
       1).

    #chroot /mnt/sysimage
    


       2).

    #mount /dev/sr0 /mnt
    


        将光盘临时挂载到/mnt上
       3).

    #rpm -ivh /mnt/Packages/kernel-2.6.32-642.el6.x86_64.rpm --force|replacepkgs    或者:
    #cp /mnt/isolinux/vmlinuz /boot/
    #mkinitrd /boot/initrmfs-`uname -r`.img `uname -r`
    


         第一种方法是将光盘中的内核包进行安装;第二种比较简单,直接将光盘中的内核文件vmlinuz复制过来,再用mkinitrd脚本生成initrmfs文件
       4).恢复了内核文件和initrmfs文件后接着恢复grub目录,方法同实验实验四:

    #grub-install /dev/sda
    


         重启进入:

    #grub>
    #grub> kernel /vmlinuz root=/dev/sda2
     #注意:与实验6不同的是,此阶段从光盘复制过来的内核文件只有文件名而无版本号
    #grub> initrd /initramfs-2.6.32-642.el6.x86_64.img
    #grub> boot
    


        重启系统,编辑/boot/grub/grub.conf

    #vi /boot/grub/grub.conf
    default=0
    timeout=3
    title linux    #title后可任意填写
    root (hd0,0)   #此项可以不写,默认是在首块磁盘里查找
    kernel /vmlinuz-2.6.32-642.el6.x86_64 root=/dev/sda2
    initrd /initramfs-2.6.32-642.el6.x86_64.img
    


     实验六:当系统安装在分区上时同时删除/boot/* /etc/fstab并恢复

    #rm -rf /boot/* /etc/fstab
    


      进入光盘救援模式
       1).恢复fstab文件

    #fdisk -l                                                   #查看哪个分区最有可能挂载在根上
    #mkdir /mnt/root                                               #建立一个挂载根分区的临时目录
    #mount /dev/sda2 /mnt/root                                         #假设此前sda2是挂载在根上的,将sda2挂载到临时目录上
    #ls /mnt/root                                                 #再次查看并确认,如果没有看到根下的那些目录可尝试将sda3,sda4分别挂载,直到成功为止
    


        挂载成功后编辑fatab文件

    #vi /mnt/root/etc/fstab
     /dev/sda2 /  ext4 defaults 0
     /dev/sda1 /boot  ext4 defaults 0
    #reboot
    


         之后重启即可
       2).接下来恢复/boot/目录,方法同实验五
        进入光盘救援模式
         1).

    #chroot /mnt/sysimage
    


         2).

    #mount /dev/sr0 /mnt
    


         3).

    #rpm -ivh /mnt/Packages/kernel-2.6.32-642.el6.x86_64.rpm --force|replacepkgs 两个选项二选一
    


          或者:

    #cp /mnt/isolinux/vmlinuz /boot/
    #mkinitrd /boot/initrmfs-`uname -r`.img `uname -r`
    


         4).恢复了内核文件和initrmfs文件后接着恢复grub目录,方法同实验四:

    #grub-install /dev/sda
    


           重启进入:

    #grub>
    #grub> kernel /vmlinuz root=/dev/sda2
     #注意:在3)中如果是安装内核rpm包方式,vmlinuz是可以补全版本号的,而用复制isolinux/vmlinuz的方式时,内核文件只有文件名而无版本号
    #grub> initrd /initramfs-2.6.32-642.el6.x86_64.img
    #grub> boot
    


          恢复grub目录后,方法同三:
           启动成功后在/boot/grub/下编辑grub.conf:

    #vi /boot/grub/grub.conf
     default=0
     timeout=3
     title linux
     root (hd0,0)   #此项可以不写,默认实在首块磁盘里查找
     kernel /vmlinuz-2.6.32-642.el6.x86_64 root=/dev/sda2
     initrd /initramfs-2.6.32-642.el6.x86_64.img
    


     实验七:当系统安装在逻辑卷上时同时删除/boot/*、/etc/fstab并恢复

    #rm -rf /boot/* /etc/fstab
    


      光盘救援模式
       1).恢复fstab文件

    #fdisk -l                                                        #查看根最有可能的挂载逻辑卷
    #lvs
    #lvdisplay                                                        #列出所有逻辑卷 #vgchange -ay                                                      #激活所有卷组 #mount /dev/vg0/root /mnt/sysimage                                         #将根挂载在根目录上 #ls /mnt/sysimage                                                   #查看根上的文件


        接下来编辑fstab文件

    #vim /mnt/sysimage/etc/fstab
      /dev/vg0/root /  ext4 defaults 0 0
      /dev/vg0/var /var  ext4 defaults 0 0
      /dev/vg0/usr /usr  ext4 defaults 0 0
      /dev/vg0/swap swap  swap defaults 0 0
      /dev/sda1 /boot ext4 defaults 0 0
    #reboot
    


       2).重启再次进入光盘救援模式

    #chroot /mnt/sysimage
    #grub-install /dev/sda
    #rpm -ivh /mnt/cdrom/Package/kernel-2.6.32-642.el6.x86_64.rpm
    


        或者

    #cp /mnt/isolinux/vmlinuz /boot/
    #mkinitrd /boot/initramfs-`uname -r`.img `uname -r`
    


        重启系统进入:

    #grub>
    #grub> kernel /vmlinuz root=/dev/sda2
    #grub> initrd /initramfs-2.6.32-642.el6.x86_64.img
    #grub> boot
    


        重启系统后编辑grub.conf文件
       3).编辑grub.conf文件

    #vi /boot/grub/grub.conf
     default=0
     timeout=3
     title mageinux
     kernel /vmlinuz root=/dev/sda2
     initrd /initramfs.img
    
  • 相关阅读:
    正则表达式去掉文件路径中的特殊字符
    用MD5加密字符串
    FTP响应码
    简述MD5校验文件
    SQLServer存储过程帮助类
    MySql数据库帮助类:DbHelperMySQL
    SQLServer数据库帮助类:DbHelperSQL
    基于Window10搭建android开发环境
    Ubuntu14.04搭建Android O编译环境
    Sublime text 3搭建Python开发环境及常用插件安装
  • 原文地址:https://www.cnblogs.com/iuskye/p/6645630.html
Copyright © 2011-2022 走看看