Я говорю 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

человек fsck.vfat говорит:

Примечание: Если параметры -a и -r отсутствуют, файловая система только проверяется, но не восстанавливается.

Итак, чтобы он действительно записал ваши изменения, используйте либо -a, либо -r. Опция -w изменяет поведение этих двух.

решение3

Посмотрите страницу руководства fsck. Попробуйте опцию -r или оставьте -n, ​​если вы ее использовали.

Другая возможность — раздел полностью заполнен. Проверьте это.

Кстати, было бы очень полезно опубликовать точную команду, которую вы использовали.

решение4

У меня была та же проблема. В конце концов я заставил ее работать, просто используя команду dosfsck напрямую, а не fsck (которая является просто оболочкой для всех различных инструментов fsck). Я полагаю, что когда fsck вызывает dosfsck, он добавляет некоторые параметры, из-за которых она не может работать правильно.

Связанный контент