Итак, я запускаю 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, он добавляет некоторые параметры, из-за которых она не может работать правильно.