使用‘fsck’修復(fù)Linux中文件系統(tǒng)錯誤的方法
前言
文件系統(tǒng)負(fù)責(zé)組織數(shù)據(jù)的存儲和恢復(fù)方式。 無論如何,隨著時間的推移,文件系統(tǒng)可能會被破壞,并且可能無法訪問它的某些部分。 如果您的文件系統(tǒng)出現(xiàn)這種不一致,建議驗證其完整性。
這可以通過名為fsck的系統(tǒng)實用程序( 文件系統(tǒng)一致性檢查)完成。 此檢查可在引導(dǎo)期間自動完成或手動運行。
在本文中,我們將回顧fsck實用程序及其用法,以幫助您修復(fù)磁盤錯誤。
何時在Linux中使用fsck
當(dāng)您想要運行fsck時,有不同的場景。 以下是一些例子:
- 系統(tǒng)無法啟動。
- 系統(tǒng)上的文件已損壞(通常您可能會看到輸入/輸出錯誤)。
- 附加驅(qū)動器(包括閃存驅(qū)動器/ SD卡)無法正常工作。
fsck可用選項
需要使用超級用戶權(quán)限或root運行Fsck命令。 您可以使用不同的參數(shù)。 它們的用法取決于您的具體情況。 您將在下面看到一些更重要的選項:
- -A - 用于檢查所有文件系統(tǒng)。 該列表取自/etc/fstab 。
- -C - 顯示進度條。
- -l - 鎖定設(shè)備以確保在檢查期間沒有其他程序嘗試使用該分區(qū)。
- -M - 不檢查已掛載的文件系統(tǒng)。
- -N - 僅顯示將要執(zhí)行的操作 - 不進行實際更改。
- -P - 如果要并行檢查文件系統(tǒng),包括root。
- -R - 不檢查根文件系統(tǒng)。 這僅適用于' -A '。
- -r - 為正在檢查的每個設(shè)備提供統(tǒng)計信息。
- -T - 不顯示標(biāo)題。
- -t - 專門指定要檢查的文件系統(tǒng)類型。 類型可以是逗號分隔列表。
- -V - 提供描述正在進行的操作。
如何運行fsck來修復(fù)Linux文件系統(tǒng)錯誤
要運行fsck ,您需要確保未安裝要檢查的分區(qū)。 出于本文的目的,我將使用安裝在/mnt第二個驅(qū)動器/dev/sdb 。
如果我在安裝分區(qū)時嘗試運行fsck會發(fā)生什么。
# fsck /dev/sdb
在已安裝的分區(qū)上運行fsck
為避免這種情況,請使用卸載分區(qū)。
# umount /dev/sdb
然后fsck可以安全地運行。
# fsck /dev/sdb
在Linux分區(qū)上運行fsck
了解fsck退出代碼
運行fsck后 ,它將返回退出代碼。 這些鱈魚可以通過運行以下命令在fsck的手冊中看到:
# man fsck 0 No errors 1 Filesystem errors corrected 2 System should be rebooted 4 Filesystem errors left uncorrected 8 Operational error 16 Usage or syntax error 32 Checking canceled by user request 128 Shared-library error
修復(fù)Linux文件系統(tǒng)錯誤
有時在文件系統(tǒng)上可以找到多個錯誤。 在這種情況下,您可能希望fsck自動嘗試更正錯誤。 這可以通過以下方式完成:
# fsck -y /dev/sdb
-y標(biāo)志, “yes”來自fsck的任何提示自動“yes”以糾正錯誤。
同樣,您可以在所有文件系統(tǒng)上運行相同的操作(沒有root ):
$ fsck -AR -y
如何在Linux根分區(qū)上運行fsck
在某些情況下,您可能需要在系統(tǒng)的根分區(qū)上運行fsck 。 由于在安裝分區(qū)時無法運行fsck ,因此可以嘗試以下選項之一:
- 在系統(tǒng)啟動時強制fsck
- 在救援模式下運行fsck
我們將審查這兩種情況。
系統(tǒng)啟動時強制fsck
這相對容易完成,您唯一需要做的就是在系統(tǒng)的根分區(qū)中創(chuàng)建一個名為forcefsck的文件。 使用以下命令:
# touch /forcefsck
然后,您可以簡單地強制或安排重新啟動系統(tǒng)。 在下次啟動期間,將執(zhí)行fsck 。 如果停機時間很重要,建議您仔細(xì)規(guī)劃,因為如果您的系統(tǒng)上有許多使用的inode, fsck可能需要一些額外的時間。
系統(tǒng)引導(dǎo)后,檢查文件是否仍然存在:
# ls /forcefsck
如果是這樣,您可能希望將其刪除,以避免每次系統(tǒng)啟動時出現(xiàn)fsck 。
在救援模式下運行fsck
在救援模式下運行fsck需要更多步驟。 首先準(zhǔn)備系統(tǒng)以重新啟動 。 停止任何關(guān)鍵服務(wù),如MySQL / MariaDB等,然后鍵入。
# reboot
在啟動過程中,按住shift鍵以顯示grub菜單。 選擇“ 高級選項 ”。
Grub Advance Options
然后選擇“ 恢復(fù)模式 ”。
選擇Linux恢復(fù)模式
在下一個菜單中選擇“ fsck ”。
選擇fsck Utility
系統(tǒng)將詢問您是否希望重新安裝/ filesystem。 選擇“yes” 。
確認(rèn)根文件系統(tǒng)
你應(yīng)該看到類似的東西。
運行fsck文件系統(tǒng)檢查
然后,您可以通過選擇“恢復(fù)”恢復(fù)正常啟動。
選擇正常啟動
結(jié)論
在本教程中,您學(xué)習(xí)了如何使用fsck并在不同的Linux文件系統(tǒng)上運行一致性檢查。 如果您對fsck有任何疑問,請不要猶豫,在下面的評論部分提交。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
Linux nohup實現(xiàn)后臺運行程序及查看(nohup與&)
這篇文章主要介紹了Linux nohup實現(xiàn)后臺運行程序及查看(nohup與&),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-0980端口被Pid為4的未知程序占用導(dǎo)致Apache不能啟動的解決方法
這篇文章主要介紹了80端口被Pid為4的未知程序占用導(dǎo)致Apache不能啟動的解決方法,比較奇怪的是這個PID為4的程序在進程中找不到,后來發(fā)現(xiàn)原來是一個服務(wù)在占用,需要的朋友可以參考下2014-10-10linux磁盤管理軟RAID的實現(xiàn)原理分析和方法分享
這篇文章主要介紹了linux磁盤管理中做軟RAID的實現(xiàn)原理分析和方法分享,需要的朋友跟著學(xué)習(xí)下。2017-12-12