Я приказываю fsck починить USB-накопитель, он говорит: «Оставить файловую систему без изменений».

25

Итак, я запускаю 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

Так как мне это исправить?

Скотт К Уилсон
источник

Ответы:

23

После отключения тома USB вы захотите использовать fsck с ключом -w, который заставляет fsck немедленно записывать изменения. Обратите внимание, что для -w требуется -a (автоматический режим) или -r (интерактивный режим).


источник
Я очень скучаю по -wварианту! +1
gavenkoa
9

man fsck.vfat говорит:

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

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

Gilead
источник
7

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

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

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

jfreax
источник
0

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

user258400
источник
0

У меня была та же самая проблема, вдохновленная ответом от user258400, который я использовал непосредственно:

fsck.fat -r /dev/sde1

вместо того:

fsck -r /dev/sde1

который сделал трюк

Марко Кински
источник
0

В дополнение к передаче -w -r, как сказал user130302, мне пришлось запустить fsck.vfat с подключенным разделом, чтобы fsck мог записывать найденные кластеры (в файлы FSCK000n.REC).

Дэвид Фор
источник