一、說明
之前寫過修復文件系統的文章,但只是基於非 “根“ 的文件系統,下面記錄一下非”根“文件系統進救援模式修復方法。
二、確認修復方式
大多Linux主機系統重啟時會自動修復文件系統,如果大家遇到文件系統需要修復的情況,允許的情況下可以先對系統進行重啟嘗試是否可以自動修復文件系統。
如果重啟后仍無法修復損壞的文件系統,就需要進行手動修復,我們首先要確認是:哪個文件系統損壞了。
提前確認這個條件是因為,非”根“文件系統卸載后是可以直接進行修復操作,如果是”根“文件系統那就不能卸載進行操作,如果是xfs文件系統檢查錯誤也只能卸載后檢查,所以如果確認是”根“文件系統的損壞,那只能進入救援模式去修復文件系統。
三、進救援模式
1、VMware虛擬機查看是否掛載ISO鏡像如果沒掛載按照以下操作,並開機進入固件。
(如果是真實生產環境物理機則需要使用引導光盤,並設置啟動項從光盤啟動或者通過ILO掛載本地鏡像文件,重啟進入BOIS調啟動項從光盤啟動)
客戶機右鍵設置按圖掛載本地鏡像
3、然后進入如下界面,選擇"Troubleshooting"
4、進入如下界面,選擇"Rescue a CentOS Linux system"
5、進入以下界面提示rescue環境會找到已安裝的Linux系統,並將其掛載到光盤Linux環境的/mnt/sysroot目錄下,"continue"表示掛載權限為讀寫,“Read_only"為只讀。因為要對系統進行修復,所以需要讀寫權限。一般選擇第一項"continue”,輸入1
四、進入救援修復文件系統
1、不同文件系統類型修復方式
a、檢查文件系統:
ext*:(查看“Filesystem state: clean”是否為clean,如果存在error則需要修復文件系統)
# tune2fs -l /dev/sdb1 |more
xfs:(xfs文件系統檢查修復需要卸載文件系統后操作)
# xfs_ncheck /dev/sdb1;echo $?
如果返回0表示正常不用修復,否則繼續下面步驟
b、ext、xfs修復操作
ext*:
# fsck -y /dev/sdb1
xfs:
# xfs_repair /dev/sdb1
以下則為進入救援模式修復“根”文件系統
2、如下圖,我們已經進入救援模式,進入救援模式,界面如下。先按回車進入shell,提示我們執行chroot /mnt/sysroot就可以進入原系統,下圖我們可以看到原系統文件系統已經掛載
3、如是”ext“文件系統我們可以直接進行檢查修復操作,如果是”xfs”則需要卸載文件系統檢查或修復。
4、執行命令“xfs_ncheck /dev/mapper/vg-lv;echo $?” 根據實際的分區名稱更改,回車。
會對分區進行檢查,最后返回0則不需要修復,返回其他數值則需要進行修復
因為我的測試環境沒有問題返回為0
5、執行命令“xfs_repair /dev/mapper/vg-lv”進行修復
以上為進入救援模式以及“xfs”文件系統的修復過程,修復完畢后reboot重啟即可。