root@host [/]# fsck -cc /dev/sdb1
fsck from util-linux-ng 2.17.2
e2fsck 1.41.12 (17-May-2010)
Checking for bad blocks (non-destructive read-write test)
Testing with random pattern: done
/dev/sdb1: Updating bad block inode.
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
/dev/sdb1: ***** FILE SYSTEM WAS MODIFIED *****
/dev/sdb1: 11/18317312 files (0.0% non-contiguous), 1198478/73258400 blocks
它說檔案系統被修改。所以呢?我只是格式化它。哪裡不對了?
答案1
看起來好像什麼也沒發現。然後用它的結果更新壞塊inode,這沒什麼。
FILE SYSTEM WAS MODIFIED
被吐出fsck
任何寫入檔案系統的時間。更改該壞塊 inode 即可。
特別是,儘管您沒有指定只修復任何問題而不詢問您 ( -y
) 如果磁碟上出現需要更正的問題,那麼它會說一些話。
答案2
我會再次運行它。發現-cc
壞塊並調用程式badblocks
修復它們。您可能只想將其運行為:
$ fsck /dev/sdb1
取自 fsck.ext3 手冊頁
-C
此選項使 e2fsck 運行 badblocks(8) 程式來查找檔案系統上的任何壞塊,然後透過將它們新增至壞塊 inode 來將它們標記為壞塊。如果指定該選項兩次,則將使用非破壞性讀寫測試來完成壞區塊掃描。
更新#1:後續問題
fsck 是否發現壞塊?什麼是無損讀寫測驗?
fsck
是一個前端工具,它對檔案系統的整體運作狀況進行各種檢查。交換器也-cc
指示fsck
進行呼叫badblocks
,以便執行更徹底的檢查。
非破壞性讀取/寫入需要先備份該位置的內容,然後使用模式來測試該位置,最後返回原始內容。
參考
答案3
別擔心,當您有一個錯誤的文件時,例如名稱或 unicode 名稱錯誤的文件,或者發生了錯誤的文件,此訊息會出現,它與您的文件系統無關。
答案4
顯然你可以運行dumpe2fs -b
查看壞塊列表,例如。dumpe2fs -b /dev/sdb1
。我想如果輸出為空,則沒有壞塊(但我現在沒有可用的帶有壞塊的驅動器,因此無法測試它)。