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 ボリュームをアンマウントした後、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 を呼び出すときに、いくつかのオプションが追加され、正しく動作しなくなるのだと思います。

関連情報