當前位置: 首頁>>技術教程>>正文


重啟時強製 fsck.ext4,但實際上是 “forceful”

, , ,

問題描述

我的一台 Ubuntu 10.04 服務器給我帶來了麻煩。\n當我運行 fsck.ext4 -n /dev/sda5 時,它告訴我空閑 inode 計數、空閑塊計數等方麵存在錯誤。

我試過了:

touch /forcefsck

還嘗試過:

shutdown -rF now

重新啟動後,我仍然看到錯誤。

我也剛剛檢查了我的 eeePC 上網本,Ubuntu 10.10,也有同樣的問題!

我如何在重新啟動時強製 “/” 文件係統的真正 “forced” “forceful” “認真修複我的文件係統” fsck?

澄清:我運行 fsck.ext4 -n 因為它是一個已掛載的文件係統,以檢查是否有錯誤。這告訴我有。我認為在 boot-up 過程中每 30 次掛載自動 fsck 正是為了處理根文件係統中的錯誤。但在我的情況下它不會這樣做。\n我可以使用 LiveCD 重新啟動並修複錯誤,然後再次重新啟動,但這對於實時服務器來說是一些嚴重的停機時間。重新啟動,自動 fsck,然後繼續啟動在實時服務器上更可持續,我相信這應該是正確的行為。

附加信息:這是輸出。它看起來像 autofsck 會修複的東西,不是嗎?

root@server:~# fsck.ext4 -n /dev/sda5
e2fsck 1.41.11 (14-Mar-2010)
Warning!  /dev/sda5 is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
/dev/sda5 contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
Free blocks count wrong (1849368, counted=1948909).
Fix? no

Free inodes count wrong (545504, counted=552134).
Fix? no


/dev/sda5: ********** WARNING: Filesystem still has errors **********

/dev/sda5: 116752/662256 files (0.2% non-contiguous), 795324/2644692 blocks

最佳方法

我知道這是一個非常古老的線程,但我最近不得不解決這個問題,所以我想發布如何強製操作係統修複在啟動期間使用 fsck 發現的問題(對於 12.04)。

您確實需要運行命令 sudo touch /forcefsck 。這將導致它在下次啟動時執行 fsck。您可以在 /var/log/boot.log 中看到 fsck 的結果。

但是,您不能保證 fsck 會修複它找到的任何內容。為此,您需要編輯文件 /etc/default/rcS。該文件末尾有一行:

FSCKFIX=no

這需要更改為以下內容:

FSCKFIX=yes

這將與運行帶有 -y 選項的 fsck 具有相同的效果,後者將強製執行所有可能的修複,並且不會要求用戶交互。

這將允許您像 OP 要求的那樣運行 fsck,而不必求助於從活動磁盤啟動,這並不總是可行的,尤其是當您在遠程係統上時。

次佳方法

sudo touch /forcefsck
sudo reboot

你打錯了——你在觸摸 /forcefcsk。 “c” 和 “s” 被交換。 fsck 是 FileSystemCheckK 的縮寫。

第三種方法

從 e2fsck 手冊頁:

\\n

“Note that in general it is not safe to run e2fsck on mounted filesystems. The only exception is if the -n option is specified, and -c, -l, or -L options are not specified. However, even if it is safe to do so, the results printed by e2fsck are not valid if the filesystem is mounted. If e2fsck asks whether or not you should check a filesystem which is mounted, the only correct answer is ”no”. Only experts who really know what they are doing should consider answering this question in any other way.”

\\n

因此,如果您使用 fsck 檢查已安裝的 FS,即使使用 -n 選項,結果也可能根本無效。不要檢查掛載的文件係統。使用 Live-CD/Live-USB。

如果您在掛載時不檢查文件係統,我不明白您為什麽需要使用 touch /forcefsck,您可以卸載並修複它。但如果是這種情況並且在修複後你的 FS 仍然有錯誤那麽你可以考慮使用:

e2fsck -cy /dev/sda5

這將解決您可能遇到的稱為壞塊的硬盤驅動器相關問題(這需要很長時間)。

如果您想檢查已安裝的文件係統,我不知道如何進行,但我認為您應該創建另一個問題。

第四種方法

由於分區正在使用中,您不能強製執行 fsck /將進行修複。嘗試從不同的分區或 live cd 運行檢查。

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/13271.html,未經允許,請勿轉載。