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
關閉檔案系統配額功能