そこで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 ボリュームをアンマウントした後、fsck に '-w' スイッチを指定して使用し、fsck が変更を直ちに書き込むようにします。'-w' には '-a' (自動モード) または '-r' (対話モード) が必要であることに注意してください。
答え2
man fsck.vfat は次のように言います:
注意: -a と -r がない場合、ファイルシステムはチェックされるだけで、修復は行われません。
したがって、実際に変更を書き込むには、-a または -r のいずれかを使用します。-w オプションは、これら 2 つの動作を変更します。
答え3
fsck のマニュアル ページを参照してください。-r オプションを試すか、-n オプションを使用している場合はそのままにしてください。
もう 1 つの可能性は、パーティションが完全にいっぱいになっていることです。これを確認してください。
ちなみに、使用したコマンドを正確に投稿していただけると大変助かります。
答え4
私も同じ問題を抱えていました。最終的には、fsck (さまざまな fsck ツールのラッパー) を使用するのではなく、dosfsck コマンドを直接使用することで動作するようになりました。fsck が dosfsck を呼び出すときに、いくつかのオプションが追加され、正しく動作しなくなるのだと思います。