所以我運行 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 時它會添加一些選項,導致它無法正常工作。