Linux常見系統故障 1.修複MBR扇區故障 2.修複GRUB引導故障 3./etc/inittab文件丟失 4.遺忘root用戶密碼 5.修複文件系統 6.磁碟資源耗盡故障 一、修複MBR扇區故障 1.關機添加一塊硬碟,開機查看硬碟設備分區列表,是否存在/dev/sdb設備信息 2.對新硬碟分區 ...
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
關閉文件系統配額功能