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
    
  • 相关阅读:
    TextBox 只有下划线
    can't find web control library(web控件库)
    DropDownListSalesAC”有一个无效 SelectedValue,因为它不在项目列表中。
    IDE、SATA、SCSI、SAS、FC、SSD 硬盘类型
    如何打印1px表格
    CSS控制打印 分页
    Virtual Server could not open its emulated Ethernet switch driver. To fix this problem, reenable the Virtual Server Emulated Et
    Xml中SelectSingleNode方法中的xpath用法
    热带水果莫入冰箱?水果存放冰箱大法
    探索Asp.net的Postback机制
  • 原文地址:https://www.cnblogs.com/iuskye/p/6645630.html
Copyright © 2011-2022 走看看