Linux常見系統故障


Linux常見系統故障

1.修復MBR扇區故障

2.修復GRUB引導故障

3./etc/inittab文件丟失

4.遺忘root用戶密碼

5.修復文件系統

6.磁盤資源耗盡故障

一、修復MBR扇區故障

1.關機添加一塊硬盤,開機查看硬盤設備分區列表,是否存在/dev/sdb設備信息

  

2.對新硬盤分區

2.1新建一個主分區

  

2.2新建一個擴展分區

  

2.3新建兩個邏輯分區,然后保存

  

3.查看sdb中分區列表信息

fdisk -l /dev/sdb

  

4.格式化文件系統,這里暫時只格式化/dev/sdb1

mkfs -t ext4 /dev/sdb1

 

5.創建一個掛載點,掛載sdb1分區

mkdir /sdb1

mount /dev/sdb1 /sdb1

 

6.備份MBR扇區數據

dd if=/dev/sda of=/sdb1/sda.mbr.bak bs=512 count=1

  

7.模擬MBR被破壞的故障

dd if=/dev/zero of=/dev/sda bs=512 count=1

  

8.然后重啟系統,發現系統無法重啟

 

9.從備份文件中恢復MBR扇區

添加虛擬機與光盤的連接,重啟系統,自動進入如下界面,現在第三個(救援模式)

  

10.系統加載后,一直下一步,直到出現如下圖,選擇第一個

  

11.執行fdisk -l 能看到sdb1分區,看不到sda設備,因為sda設備的MBR被破壞(linux 系統的分區記錄存放在mbr中)

  

12.在急救模式下的虛擬磁盤中建立sdb1分區的掛載點目錄

mkdir  /sdb1

mount /dev/sdb1  /sdb1

dd if=/sdb1/sda.mbr.bak  of=/dev/sda bs=512 count=1

  

13.重啟系統,然后系統就能正常工作了

二、修復GRUB引導故障

1.備份grub.conf文件(建議備份到第2塊磁盤中)

mkdir  /backup

mount  /dev/sdb1  /backup

cp  /boot/grub/grub.conf  /backup/grub.conf.bak

  

2.模擬破環grub.conf文件

rm  -rf  /boot/grub/grub.conf

  

3.重啟系統,發現系統無法正常加載

  

4.進入救援模式,此時只能進入bios設置boot啟動順序,把光盤引導調整到前面,然后保存,此時系統會加載光盤

  

5.查看硬盤分區情況,此時可以看到兩個硬盤,因為grup配置文件損壞,但還是會成功加載分區記錄

  

6.在急救模式下的虛擬磁盤中建立sdb1分區的掛載點目錄,此時需要創建兩個掛載點,以及掛載sda1(grup文件所在分區)和sdb1(備份grup配置文件所在分區)

mkdir /backup(在急救模式下的虛擬磁盤中建立sdb1分區的掛載點目錄)

mkdir  /sda1(創建sda1分區的掛載點目錄)

mount  /dev/sdb1  /backup

mount  /dev/sda1  /sda1

cp  /backup/grub.conf.bak  /sda1/grub/grub.conf

  

7..重啟系統,然后系統就能正常工作了

三、/etc/inittab文件丟失

1.備份/etc/inittab文件

cp  /etc/inittab  /root/inittab.bak

  

2.模擬inittab文件丟失

rm  -rf  /etc/inittab

  

3.重啟系統進入文本命令模式,恢復inittab文件  #重新系統后,系統進入文本命令模式,因為運行級別配置文件(inittab)丟失

cp  /root/inittab.bak  /etc/inittab

   

4.重啟系統,然后系統就能正常進入圖形界面了

  

四、遺忘root用戶密碼

解決方法:引導進入單用戶模式,然后重設密碼

1.重啟系統,在引導界面按e鍵

  

2.在按e,進入然后選第二項

  

3.再按e進入,敲空格,輸入1,然后回車   #1代表單用戶模式

  

4.上一步,回車后又返回以前,按b,重新引導,然后就進入單用戶模式了,然后修改root用戶密碼

  

5.重啟系統,用修改過的密碼登錄

五、修復文件系統

故障原因:

              非正常關機、突然斷電、設備讀寫失誤等

              文件系統的超級塊(super-block)信息被破壞

故障現象

              無法向分區中讀取或寫入數據

              啟動后提示“Give root password for maintenance” (啟動硬盤super-block被破壞)

解決辦法:

根據提示輸入root口令,進入修復狀態

使用fsck命令進行修復

1. 模擬對/dev/sdb1分區的破壞操作

 dd if=/dev/zero of=/dev/sdb1 bs=512 count=4

   

2. 檢查是否能掛載該分區

  

3.上圖提示報錯,沒有指定文件類型,那我們就添加文件類型,但是添加文件類型還是報錯,從下圖的報錯信息中可以看出,真正的原因是因為superblock(超級塊出現問題)

  

4. 對/dev/sdb1分區進行修復

fsck –y -t ext4 /dev/sdb1

  

5.再次掛載該分區 無錯誤提示,修復成功

  

六、磁盤資源耗盡故障

故障原因:

磁盤空間已被大量的數據占滿,空間耗盡

雖然還有可用空間,但文件數i節點耗盡

故障現象:

無法寫入新的文件,提示“… : 設備上沒有空間”

部分程序無法運行,甚至系統無法啟動

解決思路:

清理磁盤空間,刪除無用、冗余的文件

轉移或刪除占用大量i節點的瑣碎文件

進入單用戶模式、急救模式進行修復

為用戶設置磁盤配額

1.這里只測試文件節點耗盡

2.寫一個while 死循環,一直創建空文件,這里以/boot/test為例

i=1

while [ 1 ]

do

 cd /boot/test

 touch "$i".txt

 let "i++"

done

3.沒有運行腳本之前的/boot/test目錄下的節點數

  

4.運行完腳本之后/boot/test目錄下的節點數已經用完,但是磁盤還有剩余空間

  

5.此時在向/boot/test寫入數據,會提示失敗,雖然還有空間剩余,這是因為Linux的安全存儲機制,只要節點數或者空間任何一個使用完,都不能再進行寫入數據

  

6.解決辦法,刪除占用大量i節點的瑣碎文件

這里刪除/boot/test目錄下的所有文件,然后在寫入數據測試

rm -fr   /boot/test/*

  

7.磁盤配額

7.1. 磁盤限額需要安裝quota軟件包 yum install -y quota

7.2. 啟用文件系統的配額支持(添加usrquota、grpquota掛載參數)

mkdir /sdb1

chmod 777 /sdb1(為/sdb1授權) 

  

  

注:第一個字段為被掛載的分區,第二個字段為掛載的目錄,第三個字段是被掛載的分區的文件系統類型,后面的幾個字段是支持quota的參數。各字段用空格分隔

reboot重啟系統(或mount -a讀取/etc/fstab文件,使重新掛載生效),重啟進入文本編輯界面按回車

7.3

mount  | tail -1(查看是否掛載成功)mount(查看是否掛載成功)

mount | grep /dev/sdb1

/dev/sdb1 on /sdb1 type ext4 (rw,usrquota,grpquota)

ls  /sdb1

lost+found

   

7.4檢測磁盤配額並創建配額文件 

quotacheck  -ugcv  /dev/sdb1

ls -l /sdb1/aquota.*(查看是否生成配額文件)

  

7.5編輯用戶和組帳號的配額設置(edquota命令)

edquota -u 用戶名(編輯用戶配額)

edquota -g 組名(編輯組配額)

例如:新建用戶和組

  

edquota -u zhangsan  編輯用戶配額

edquota -g students   編輯組配額

  

  

啟用、關閉文件系統的配額功能(quotaon、quotaoff命令)

quotaon  -ugv /sdb1

  

普通用戶對設置配額的分區(掛載目錄)具有寫入權限

chmod  777  /sdb1

切換到啟用配額的用戶身份su  -  zhangsan

切換到設置配額的分區(掛載目錄)cd  /sdb1

 

創建指定數量的文件:使用touch命令,或cp命令

  

創建指定容量的文件:使用dd命令,或cp命令

rm  -rf  *.txt

  

關閉文件系統配額功能

 

 

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM