系統故障排除

 

 

linux破解密碼

 

案例一:破解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

 

步驟一:啓動Linuxgrub菜單選擇上下鍵網絡

 

如圖-1所示,在此處按上下鍵中止在此界面(若是虛擬機老是很卡跳過此界面,可選擇開機到BIOS」再按F10保存退出便可看見),按e進入編輯。加密

 

 

 

 如圖-2所示,選擇kernel這行,在選擇espa

 

 

 如圖-3所示,在最後空格加上1,回車。操作系統

 

 

如圖-4所示,按b鍵啓動。3d

 

 

 如圖-5所示,執行passwd修改密碼便可。切換運行級別5code

 

 

 

 

案例二:爲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

 

修復MBR扇區故障

 

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

 

修復GRUB引導故障

問題

 

刪除/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

 

/etc/inittab文件丟失

 

 

 問題

 

 

 

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

 

 

問題

 

 

 

修改/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

 

 恢復 /boot 目錄

 

RHEL6

 

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/fstabboot目錄的UUID

 

 

 

 

 

8、退出兩次,選重啓

 

Exit

Exit

reboot
相關文章
相關標籤/搜索