Linux常见系统故障
Linux常見系統(tǒng)故障
1.修復MBR扇區(qū)故障
2.修復GRUB引導故障
3./etc/inittab文件丟失
4.遺忘root用戶密碼
5.修復文件系統(tǒng)
6.磁盤資源耗盡故障
一、修復MBR扇區(qū)故障
1.關機添加一塊硬盤,開機查看硬盤設備分區(qū)列表,是否存在/dev/sdb設備信息
2.對新硬盤分區(qū)
2.1新建一個主分區(qū)
2.2新建一個擴展分區(qū)
2.3新建兩個邏輯分區(qū),然后保存
3.查看sdb中分區(qū)列表信息
fdisk -l /dev/sdb
4.格式化文件系統(tǒng),這里暫時只格式化/dev/sdb1
mkfs -t ext4 /dev/sdb1
5.創(chuàng)建一個掛載點,掛載sdb1分區(qū)
mkdir /sdb1
mount /dev/sdb1 /sdb1
6.備份MBR扇區(qū)數(shù)據(jù)
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.然后重啟系統(tǒng),發(fā)現(xiàn)系統(tǒng)無法重啟
9.從備份文件中恢復MBR扇區(qū)
添加虛擬機與光盤的連接,重啟系統(tǒng),自動進入如下界面,現(xiàn)在第三個(救援模式)
10.系統(tǒng)加載后,一直下一步,直到出現(xiàn)如下圖,選擇第一個
11.執(zhí)行fdisk -l 能看到sdb1分區(qū),看不到sda設備,因為sda設備的MBR被破壞(linux 系統(tǒng)的分區(qū)記錄存放在mbr中)
12.在急救模式下的虛擬磁盤中建立sdb1分區(qū)的掛載點目錄
mkdir /sdb1
mount /dev/sdb1 /sdb1
dd if=/sdb1/sda.mbr.bak of=/dev/sda bs=512 count=1
13.重啟系統(tǒng),然后系統(tǒng)就能正常工作了
二、修復GRUB引導故障
1.備份grub.conf文件(建議備份到第2塊磁盤中)
mkdir /backup
mount /dev/sdb1 /backup
cp /boot/grub/grub.conf /backup/grub.conf.bak
2.模擬破環(huán)grub.conf文件
rm -rf /boot/grub/grub.conf
3.重啟系統(tǒng),發(fā)現(xiàn)系統(tǒng)無法正常加載
4.進入救援模式,此時只能進入bios設置boot啟動順序,把光盤引導調整到前面,然后保存,此時系統(tǒng)會加載光盤
5.查看硬盤分區(qū)情況,此時可以看到兩個硬盤,因為grup配置文件損壞,但還是會成功加載分區(qū)記錄
6.在急救模式下的虛擬磁盤中建立sdb1分區(qū)的掛載點目錄,此時需要創(chuàng)建兩個掛載點,以及掛載sda1(grup文件所在分區(qū))和sdb1(備份grup配置文件所在分區(qū))
mkdir /backup(在急救模式下的虛擬磁盤中建立sdb1分區(qū)的掛載點目錄)
mkdir /sda1(創(chuàng)建sda1分區(qū)的掛載點目錄)
mount /dev/sdb1 /backup
mount /dev/sda1 /sda1
cp /backup/grub.conf.bak /sda1/grub/grub.conf
7..重啟系統(tǒng),然后系統(tǒng)就能正常工作了
三、/etc/inittab文件丟失
1.備份/etc/inittab文件
cp /etc/inittab /root/inittab.bak
2.模擬inittab文件丟失
rm -rf /etc/inittab
3.重啟系統(tǒng)進入文本命令模式,恢復inittab文件 #重新系統(tǒng)后,系統(tǒng)進入文本命令模式,因為運行級別配置文件(inittab)丟失
cp /root/inittab.bak /etc/inittab
4.重啟系統(tǒng),然后系統(tǒng)就能正常進入圖形界面了
四、遺忘root用戶密碼
解決方法:引導進入單用戶模式,然后重設密碼
1.重啟系統(tǒng),在引導界面按e鍵
2.在按e,進入然后選第二項
3.再按e進入,敲空格,輸入1,然后回車 #1代表單用戶模式
4.上一步,回車后又返回以前,按b,重新引導,然后就進入單用戶模式了,然后修改root用戶密碼
5.重啟系統(tǒng),用修改過的密碼登錄
五、修復文件系統(tǒng)
故障原因:
非正常關機、突然斷電、設備讀寫失誤等
文件系統(tǒng)的超級塊(super-block)信息被破壞
故障現(xiàn)象
無法向分區(qū)中讀取或寫入數(shù)據(jù)
啟動后提示“Give root password for maintenance” (啟動硬盤super-block被破壞)
解決辦法:
根據(jù)提示輸入root口令,進入修復狀態(tài)
使用fsck命令進行修復
1. 模擬對/dev/sdb1分區(qū)的破壞操作
dd if=/dev/zero of=/dev/sdb1 bs=512 count=4
2.檢查是否能掛載該分區(qū)
3.上圖提示報錯,沒有指定文件類型,那我們就添加文件類型,但是添加文件類型還是報錯,從下圖的報錯信息中可以看出,真正的原因是因為superblock(超級塊出現(xiàn)問題)
4.對/dev/sdb1分區(qū)進行修復
fsck –y -t ext4 /dev/sdb1
5.再次掛載該分區(qū) 無錯誤提示,修復成功
六、磁盤資源耗盡故障
故障原因:
磁盤空間已被大量的數(shù)據(jù)占滿,空間耗盡
雖然還有可用空間,但文件數(shù)i節(jié)點耗盡
故障現(xiàn)象:
無法寫入新的文件,提示“… : 設備上沒有空間”
部分程序無法運行,甚至系統(tǒng)無法啟動
解決思路:
清理磁盤空間,刪除無用、冗余的文件
轉移或刪除占用大量i節(jié)點的瑣碎文件
進入單用戶模式、急救模式進行修復
為用戶設置磁盤配額
1.這里只測試文件節(jié)點耗盡
2.寫一個while 死循環(huán),一直創(chuàng)建空文件,這里以/boot/test為例
i=1
while [ 1 ]
do
cd /boot/test
touch "$i".txt
let "i++"
done
3.沒有運行腳本之前的/boot/test目錄下的節(jié)點數(shù)
4.運行完腳本之后/boot/test目錄下的節(jié)點數(shù)已經(jīng)用完,但是磁盤還有剩余空間
5.此時在向/boot/test寫入數(shù)據(jù),會提示失敗,雖然還有空間剩余,這是因為Linux的安全存儲機制,只要節(jié)點數(shù)或者空間任何一個使用完,都不能再進行寫入數(shù)據(jù)
6.解決辦法,刪除占用大量i節(jié)點的瑣碎文件
這里刪除/boot/test目錄下的所有文件,然后在寫入數(shù)據(jù)測試
rm -fr /boot/test/*
7.磁盤配額
7.1. 磁盤限額需要安裝quota軟件包 yum install -y quota
7.2. 啟用文件系統(tǒng)的配額支持(添加usrquota、grpquota掛載參數(shù))
mkdir /sdb1
chmod 777 /sdb1(為/sdb1授權)
注:第一個字段為被掛載的分區(qū),第二個字段為掛載的目錄,第三個字段是被掛載的分區(qū)的文件系統(tǒng)類型,后面的幾個字段是支持quota的參數(shù)。各字段用空格分隔
reboot重啟系統(tǒng)(或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檢測磁盤配額并創(chuàng)建配額文件
quotacheck -ugcv /dev/sdb1
ls -l /sdb1/aquota.*(查看是否生成配額文件)
7.5編輯用戶和組帳號的配額設置(edquota命令)
edquota -u 用戶名(編輯用戶配額)
edquota -g 組名(編輯組配額)
例如:新建用戶和組
edquota -u zhangsan 編輯用戶配額
edquota -g students 編輯組配額
啟用、關閉文件系統(tǒng)的配額功能(quotaon、quotaoff命令)
quotaon -ugv /sdb1
普通用戶對設置配額的分區(qū)(掛載目錄)具有寫入權限
chmod 777 /sdb1
切換到啟用配額的用戶身份su - zhangsan
切換到設置配額的分區(qū)(掛載目錄)cd /sdb1
創(chuàng)建指定數(shù)量的文件:使用touch命令,或cp命令
創(chuàng)建指定容量的文件:使用dd命令,或cp命令
rm -rf *.txt
關閉文件系統(tǒng)配額功能
總結
以上是生活随笔為你收集整理的Linux常见系统故障的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开发中的“软”与“硬”:高画质移动游戏开
- 下一篇: linux下修改hostid