web-dev-qa-db-ja.com

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

どうすればこれを修正できますか?

25
Scott C Wilson

USBボリュームをアンマウントした後、 '-w'スイッチを指定してfsckを使用すると、fsckはすぐに変更を書き込むようになります。 「-w」には「-a」(自動モード)または「-r」(インタラクティブモード)が必要です。

23
user130302

man fsck.vfatさんのコメント:

注:-aおよび-rがない場合、ファイルシステムはチェックされるだけで、修復はされません。

したがって、実際に変更を書き込むには、-aまたは-rを使用します。 -wオプションは、これら2つの動作を変更します。

9
Gilead

Fsckのmanページをご覧ください。 -rオプションを試すか、-nを使用した場合はそのままにしておきます。

別の可能性は、パーティションが完全にいっぱいであるということです。これをチェックして。

ちなみに、使用したコマンドを正確に投稿すると非常に役立ちます。

7
jfreax

同じ問題がありました。最終的には、fsck(さまざまなfsckツールすべてのラッパーにすぎません)を使用するのではなく、dosfsckコマンドを直接使用するだけで機能します。 fsckがdosfsckを呼び出すと、正しく動作しない原因となるオプションがいくつか追加されると思います。

0
user258400

User130302が言ったように-w -rを渡すことに加えて、fsckが見つかったクラスターを(FSCK000n.RECファイルに)書き込むことができるように、パーティションmountedでfsck.vfatを実行する必要がありました。

0
David Faure

私は同じ問題を抱えており、直接使用したuser258400からの回答に触発されました:

fsck.fat -r /dev/sde1

の代わりに:

fsck -r /dev/sde1

トリックをした

0
Marco Kinski