天天看点

某些系统文件破坏后的修复方式口令问题:

口令问题:

 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
      

  3).

#chroot /mnt/sysimage
      
#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
      
#mount /dev/sr0 /mnt
      

    将光盘临时挂载到/mnt上

#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
      
#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
      

  光盘救援模式

#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
      

继续阅读