天天看點

某些系統檔案破壞後的修複方式密碼問題:

密碼問題:

 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密碼:

   重新開機進入CD光牒救援模式删除/boot/grub/grub.conf中的密碼

系統檔案人為破壞後的修複方式:

 實驗一:破壞MBR bootloader程式并恢複(1stage)

  1).破壞引導程式

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

  2).重新開機進入CD光牒救援模式

  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).重新開機進入CD光牒救援模式

   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/*
      

  進入CD光牒救援模式

   1).

#chroot /mnt/sysimage
      
#mount /dev/sr0 /mnt
      

    将CD光牒臨時挂載到/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`
      

     第一種方法是将CD光牒中的核心包進行安裝;第二種比較簡單,直接将CD光牒中的核心檔案vmlinuz複制過來,再用mkinitrd腳本生成initrmfs檔案

   4).恢複了核心檔案和initrmfs檔案後接着恢複grub目錄,方法同實驗實驗四:

#grub-install /dev/sda
      

     重新開機進入:

#grub>
#grub> kernel /vmlinuz root=/dev/sda2
 #注意:與實驗6不同的是,此階段從CD光牒複制過來的核心檔案隻有檔案名而無版本号
#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/目錄,方法同實驗五

    進入CD光牒救援模式

     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
      

  CD光牒救援模式

#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).重新開機再次進入CD光牒救援模式

#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
      

繼續閱讀