案例一:破解Linux系統密碼linux
1.啓動Linux 2.在grub菜單選擇上下鍵 3.按e 選擇kernel這行,在選擇e 4.在最後空格加上1,回車 5.按b鍵啓動 6.sh-3.2# passwd 修改密碼 7.sh-3.2# init 5
啓動Linux-->在grub菜單選擇上下鍵按e-->選擇kernel這行,在選擇e -->在最後空格加上1,回車-->按b鍵啓動。shell
進入單用戶模式,修改密碼。vim
步驟bash
步驟一:啓動Linux在grub菜單選擇上下鍵網絡
如圖-1所示,在此處按上下鍵中止在此界面(若是虛擬機老是很卡跳過此界面,可選擇「開機到BIOS」再按F10保存退出便可看見),按e進入編輯。加密
如圖-2所示,選擇kernel這行,在選擇e。spa
如圖-3所示,在最後空格加上1,回車。操作系統
如圖-4所示,按b鍵啓動。3d
如圖-5所示,執行passwd修改密碼便可。切換運行級別5。code
案例二:爲grub加密
1.在終端執行grub-md5-crypt會生成md5,加密字符串。 [root@svr5 /]# grub-md5-crypt Password: Retype password: $1$MWW7E$0iF8E8dCkAmJq0M27Aw5k. [root@svr5 /]# 2.將其加密字符串寫到,grub.conf配置文件。 [root@svr5 /]# vim /boot/grub/grub.conf ...... password --md5 $1$MWW7E$0iF8E8dCkAmJq0M27Aw5k. ##注意寫到title字段的上邊 title Red Hat Enterprise Linux (2.6.32-431.el6.x86_64) ...... 3.重啓再次進入在grub菜單選擇上下鍵,需先按「p」輸入密碼。敲回車! 4.按e 選擇kernel這行,在選擇e 5.在最後空格加上1,回車 6.按b鍵啓動 7.sh-3.2# passwd 修改密碼 8.sh-3.2# init 5
1.爲虛擬機添加一塊80GB的新磁盤 2.採用MBR模式分區,劃分一個1GB的新分區 3.將此分區格式化、掛載到 /mnt 下 4.MBR備份及破壞 5.備份磁盤/dev/sda的第1個扇區 6.備份文件保存到/mnt/sda.mbr.bak 7.清除/dev/sda前512個字節,關機重啓 8.進入光盤急救模式,進行恢復
本實驗的總體操做是利用dd命令備份,再進行還原。需注意備份文件要放在另外一硬盤。
修復時因MBR損壞,沒法引導開機,是經過光盤引導進入修復模式進行還原。
在修復模式下,系統當中的目錄是不容許掛載的。須要本身創建一個目錄掛載。
實現此案例須要按照以下步驟進行。
步驟一:爲虛擬機添加一塊80GB的新磁盤
採用MBR模式分區,劃分一個1GB的新分區,命令操做以下所示:
[root@svr5 ~]# ls /dev/sdb //是否識別新的硬盤sdb /dev/sdb [root@svr5 ~]# parted /dev/sdb mktable msdos 信息: You may need to update /etc/fstab. [root@svr5 ~]# parted /dev/sdb print Model: VMware, VMware Virtual S (scsi) Disk /dev/sdb: 85.9GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system 標誌 [root@svr5 ~]# parted /dev/sdb mkpart primary ext4 0 1G 警告: The resulting partition is not properly aligned for best performance. 忽略/Ignore/放棄/Cancel? i 信息: You may need to update /etc/fstab. [root@svr5 ~]# parted /dev/sdb print Model: VMware, VMware Virtual S (scsi) Disk /dev/sdb: 85.9GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system 標誌 1 512B 1000MB 1000MB primary [root@svr5 ~]# partx -a /dev/sdb BLKPG: Device or resource busy error adding partition 1 [root@svr5 ~]# ls /dev/sdb1 /dev/sdb1 [root@svr5 ~]#
將此分區格式化、掛載到 /mnt 下。
命令操做以下所示:
[root@svr5 ~]# mkfs.ext4 /dev/sdb1 …… [root@svr5 ~]# mount /dev/sdb1 /mnt/ [root@svr5 ~]# mount | grep /mnt/ /dev/sdb1 on /mnt type ext4 (rw) [root@svr5 ~]#
步驟二:MBR備份及破壞
分析:採用dd命令進行備份與破壞,把磁盤sda的前512個字節讀取並寫到一個文件裏,要注意的是要寫到mnt目錄裏。
備份磁盤/dev/sda的第1個扇區,命令操做以下所示:
[root@svr5 ~]# dd if=/dev/sda of=/mnt/sda.mbr.bak bs=1 count=512 記錄了512+0 的讀入 記錄了512+0 的寫出 512字節(512 B)已複製,0.00107661 秒,476 kB/秒 [root@svr5 ~]# ls -l /mnt/sda.mbr.bak -rw-r--r--. 1 root root 512 3月 3 15:51 /mnt/sda.mbr.bak [root@svr5 ~]#
破壞磁盤/dev/sda的第1個扇區,命令操做以下所示:
[root@svr5 ~]# dd if=/dev/zero of=/dev/sda bs=1 count=512 記錄了512+0 的讀入 記錄了512+0 的寫出 512字節(512 B)已複製,0.00382325 秒,134 kB/秒
關機,命令操做以下所示:
[root@svr5 ~]# init 0
步驟三:進入光盤急救模式,進行恢復
如圖-6所示,將光盤驅動的啓動時鏈接的勾去掉,單擊確認。
開機查看效果,如圖-7所示。
如圖-8所示,關閉虛擬機電源,進入光盤急救模式,進行恢復,將光盤驅動啓動時鏈接的勾打上,確保放入的是RHEL6.5的光盤,進入光盤修復模式。
如圖-9所示,開機選擇第三項「Rescue installed system」進入修復模式。
如圖-10所示,選擇語言,此模式只支持英文。默認便可,按回車鍵。
如圖-11所示,選擇鍵盤,默認便可,按回車鍵。
如圖-12所示,是否開啓網絡,按Tab鍵選擇「No」,按回車鍵。
如圖-13所示,簡單理解是說會嘗試尋找Linux系統分區,找到了會把它掛載/mnt/sysimage,按Tab鍵選擇「Continue」,按回車鍵。
如圖-14所示,沒有找到任何Linux分區,按回車鍵。
如圖-15所示,選擇start shell打開一個Shell環境,按回車鍵。
建立目錄/bak,並掛載。
命令操做以下所示:
bash-4.1# mkdir /bak bash-4.1# mount /dev/sdb1 /bak bash-4.1# dd if=/bak/sda.mbr.bak of=/dev/sda bash-4.1# reboot
刪除/boot/grub/grub.conf 文件
關機重啓,進行修復
進入系統後恢復或重寫/boot/grub/grub.conf 文件
刪除group.conf後,系統須要手動引導內核啓動和加載必要的驅動程序。進入系統後需重新建立和書寫group.conf配置文件。 手動引導內核的命令依次爲: grub> root (hd0,0) —— 找到/boot分區,此處爲第一塊磁盤的第一個分區。 grub> kernel /vmlinuz(Tab鍵) ro root=/dev/sda2 —— 指定內核及以只讀方式加載根分區。 grub> initrd /initramfs-(Tab鍵) —— 指定必要驅動程序。 grub> boot —— 啓動。
實現此案例須要按照以下步驟進行。
步驟一:刪除/boot/grub/grub.conf 文件
命令操做以下所示:
[root@svr5 ~]# rm -rf /boot/grub/grub.conf [root@svr5 /]# df –h //查看一下根分區是sda2,恢 復時會用到 Filesystem Size Used Avail Use% Mounted on /dev/sda2 97G 2.8G 89G 4% / tmpfs 491M 76K 491M 1% /dev/shm /dev/sda1 194M 34M 151M 19% /boot /dev/sda3 97G 188M 92G 1% /data /dev/sr0 3.6G 3.6G 0 100% /media/RHEL_6.5 x86_64 Disc 1 [root@svr5 ~]# init 6
如圖所示,系統停在grub>處沒法進行啓動。
步驟二:進入系統後恢復或重寫/boot/grub/grub.conf 文件
首先進入系統,手動輸入命令,此模式下支持Tab鍵。
命令操做如圖所示:
進入系統後恢復或重寫/boot/grub/grub.conf 文件,命令操做以下所示:
[root@svr5 /]# vim /boot/grub/grub.conf [root@svr5 /]# cat /boot/grub/grub.conf default=0 //時間截止默認進入第一個系統 timeout=20 //時間等待爲20秒鐘 title TARENA NSD Linux Server //選擇系統時,系統名稱 root (hd0,0) kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/sda2 //內核名稱複製粘貼 initrd /initramfs-2.6.32-431.el6.x86_64.img //驅動文件名複製粘貼 [root@svr5 /]# init 6
如圖所示,查看grub引導界面變化。
或者:用備份恢復系統grub啓動
1.作備份
[root@localhost ~]# mkdir /data [root@localhost ~]# mount /dev/sdb1 /data/ [root@localhost ~]# cp /boot/grub/grub.conf /data/ [root@localhost ~]# ls /data/ grub.conf lost+found
2.進入救援模式,用備份恢復grub引導啓動
3.關機,這個須要設置cdrom爲第一啓動項,放入系統盤進入救援模式
4.用備份恢復grub.conf引導文件
手寫恢復grub啓動
1.對 /boot/grub/grub.conf 進行手動編寫,注意:錯一點就進不去
進去輸入root (hd0, 按Tab鍵,出分區列表,找到啓動分區
2.成功進入系統後進入vim /boot/grub/grub.conf再次進行編寫
注:由於上1編寫是臨時的,因此在進入系統後要在/boot/grub/目錄下建立grub.conf文件 進行手寫變異,使其永久生效。
進入系統手寫grub格式:
default=0 //0表明啓動第一個內核 1表明啓動第二個 timeout=5 //選擇進入系統時間5秒 title Red Hat Enterprise Linux (2.6.18-348.el5) //系統名隨便起 root =(hd0,0) //指定 root在救援模式裏指定的啓動引導區 kernel /vmlinuz-2.6.18-348.el5 ro root=/boot/sda2 //內核 initrd /initrd-2.6.18-348.el5.img
問題
1. 查詢/etc/inittab文件是由哪一個軟件包產生的 2. 刪除/etc/inittab文件,重啓系統 3. 切換到運行級別3,進行修復
在RHEL6.5操做系統裏,若是刪除/etc/inittab文件,會默認進入第3運行級別。
修復的思路是,首先經過命令rpm -qf /etc/inittab,查看該文件是有那個包產生的,在從新將此安裝包強制安裝一遍。
實現此案例須要按照以下步驟進行。
步驟一:查詢/etc/inittab文件是由哪一個軟件包產生的
命令操做以下所示:
[root@svr5 ~]# rpm -qf /etc/initta initscripts-9.03.40-2.el6.x86_64 [root@svr5 ~]#
步驟二:刪除/etc/inittab文件,重啓系統
命令操做以下所示:
[root@svr5 ~]# rm -rf /etc/inittab [root@svr5 ~]# init 6
步驟三:切換到運行級別3,進行修復
分析: 注意安裝時要增強制才能夠。
命令操做以下所示:
[root@svr5 ~]# rpm -ivh --force /misc/cd/Packages/initscripts-9.03.40-2.el6.x86_64.rpm Preparing... ########################################### [100%] 1:initscripts ########################################### [100%] [root@svr5 ~]# ls /etc/inittab /etc/inittab [root@svr5 ~]#
問題
修改/etc/fstab中根分區的掛載設置
將根分區的UUID值故意寫錯
重啓系統,觀察錯誤現象
修復上述故障
方案
Linux在開機過程當中會有一些提示,你們遇到問題時要多去關注這些信息。
須要注意的一點是,在開機過程當中根分區是以只讀方式加載的,因此要想修改並保存,要本身手動以讀寫方式掛載根分區。
實現此案例須要按照以下步驟進行。
步驟一:修改/etc/fstab中根分區的掛載設置
將根分區的UUID值故意寫錯(錯誤不要太大,就將第一個字母故意改錯,修復時還有手動改回來)
重啓系統,觀察錯誤現象。
命令操做以下所示:
[root@svr5 ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Wed Jan 14 17:11:20 2015 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=fbc9bd53-e533-44dd-9236-55ab71559d87 / ext4 defaults 1 1 [root@svr5 ~]# vim /etc/fstab [root@svr5 ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Wed Jan 14 17:11:20 2015 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=rbc9bd53-e533-44dd-9236-55ab71559d87 / ext4 defaults 1 1 [root@svr5 ~]# init 6
如圖所示,系統開機界面。系統提示請輸入root的密碼進入修復。
步驟二:輸入root密碼
命令操做以下所示:
[root@svr5 ~]# mount -o remount,rw /dev/sda2 / [root@svr5 ~]# vim /etc/fstab [root@svr5 ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Wed Jan 14 17:11:20 2015 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=fbc9bd53-e533-44dd-9236-55ab71559d87 / ext4 defaults 1 1 [root@svr5 ~]#init 5
1、模擬/boot目錄損壞
# umount /boot //假設sda1對應/boot分區 # mkfs.ext4 /dev/sda1
2、以光盤啓動,進入救援模式
進入救援模式:
選擇語言:
選擇鍵盤:
救援方法:
設置網絡:
Resue:
選擇continue便可:
而後進入到shell選擇界面。咱們選擇開啓一個shell,以供咱們使用,完成系統修復。
進入shell以後,咱們就有獲得了一個修復咱們系統的平臺,正式開始修復工做
掛載sda1到/boot目錄
3、掛載光盤到/media目錄
4、強制安裝kernel包
5、安裝完kernel後,內核文件等已經安裝成功,可是沒有grub,還要繼續安裝grub
6、grub安裝完畢後,沒有生成配置文件,手工建立配置文件
7、更正/etc/fstab中boot目錄的UUID
8、退出兩次,選重啓
Exit
Exit
reboot