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