我告訴 fsck 修復 USB 記憶棒,它說「保持檔案系統不變」。

我告訴 fsck 修復 USB 記憶棒,它說「保持檔案系統不變」。

所以我運行 fsck,它報告

FATs differ but appear to be intact. Use which FAT ?
1) Use first FAT
2) Use second FAT

選擇任何一個都會給出一長串錯誤,例如

Cluster 1471730 out of range (164977891 > 1980013). Setting to EOF.
Cluster 1471732 out of range (252397720 > 1980013). Setting to EOF.
Cluster 1471734 out of range (18601458 > 1980013). Setting to EOF.

然後它說,

Reclaimed 93886 unused clusters (769114112 bytes).
Free cluster summary wrong (1034047 vs. really 1221912)
1) Correct
2) Don't correct

如果我選擇(1),它只是退出而不執行任何操作:

Leaving file system unchanged.
/dev/sdb1: 53 files, 758100/1980012 clusters

那我該如何解決這個問題呢?

答案1

卸載 USB 磁碟區後,您需要使用帶有“-w”開關的 fsck,強制 fsck 立即寫入變更。請注意,「-w」需要「-a」(自動模式)或「-r」(互動模式)。

答案2

man fsck.vfat 說:

注意:如果 -a 和 -r 不存在,則僅檢查檔案系統,但不修復。

因此,要讓它實際寫入您的更改,請使用 -a 或 -r。 -w 選項修改這兩者的行為。

答案3

查看 fsck 手冊頁。也許嘗試 -r 選項或保留 -n (如果您使用過它)。

另一種可能性是分區已滿。檢查一下。

順便說一句,發布您使用的確切命令將非常有幫助。

答案4

我遇到過同樣的問題。我最終通過直接使用 dosfsck 命令而不是使用 fsck (它只是所有各種 fsck 工具的包裝器)來讓它工作。我猜想當 fsck 呼叫 dosfsck 時它會添加一些選項,導致它無法正常工作。

相關內容