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