Вопрос или проблема
У меня есть внешний HDD (15 ТБ), который я использую в качестве резервного хранилища. Обычно я выполняю команду
rsync -aluv /mylocalfolder /mytargetfolder
, чтобы сохранить свои данные. Но на этот раз Linux установил файловую систему в режим “только для чтения” в процессе rsync.
Вывод из dmesg:
[ 2247.831348] exFAT-fs (sdc2): ошибка, найден несуществующий dentry(64528) за пределами неиспользуемой пустой группы(64526) (start_clu : 37895, cur_clu : 173924)
[ 2247.831351] exFAT-fs (sdc2): файловая система была установлена в режим только для чтения
Затем я попытался исправить ошибку файловой системы с помощью (sdc2 относится к диску с поврежденной файловой системой):
sudo fsck.exfat -p /dev/sdc2
Однако ответ, который я получил, был:
exfatprogs version : 1.1.0
не удалось получить поток dentry. 0
/dev/sdc2: проверка остановлена. директорий 11500, файлов 676064
/dev/sdc2: файлов повреждено 1, файлов исправлено 0
Поэтому у меня нет идеи, как действовать дальше. Я хочу избежать повторной настройки всей файловой системы, потому что это займет дни, чтобы снова скопировать все данные на HDD.
Больше информации о моей системе:
Linux: 5.10.0-21-amd64
fsck: fsck от util-linux 2.36.1
Буду признателен за любые советы по исправлению этой ошибки и предотвращению ее в будущем. Большое спасибо заранее.
Ответ или решение
Для решения проблемы с поврежденной файловой системой exFAT на вашем внешнем жестком диске (HDD), следует рассмотреть несколько подходов. Поскольку вы уже столкнулись с ошибками при попытке исправить файловую систему с помощью команды fsck.exfat
, давайте шаг за шагом разберем, что можно предпринять.
Шаг 1: Сбросьте разрешения на запись на диск
Прежде всего, убедитесь, что ваш диск действительно отключен от режима "только для чтения". Это можно сделать, отмонтировав диск и затем смонтировав его снова:
sudo umount /dev/sdc2
sudo mount -o remount,rw /dev/sdc2
Шаг 2: Используйте exfatprogs
Вы уже использовали fsck.exfat
, но ошибка следующая: "failed to get stream dentry". Это может быть связано с поврежденными каталогами и файлами. Убедитесь, что вы используете актуальную версию exfatprogs
. Попробуйте выполнить команду без параметров для диагностики:
sudo fsck.exfat /dev/sdc2
Если это не помогает и все еще отображается сообщение о поврежденных файлах, вы можете попробовать принудительное восстановление:
sudo fsck.exfat --remove /dev/sdc2
Шаг 3: Резервное копирование данных
Если файловая система остаётся поврежденной, рекомендуется попытаться извлечь данные, пока есть возможность, используя инструменты для восстановления. Рассмотрите возможность использования таких программ, как testdisk
или photorec
, которые могут помочь восстановить данные с поврежденного носителя.
sudo apt install testdisk
sudo photorec /dev/sdc2
Эти инструменты могут помочь извлечь файлы, прежде чем вы продолжите с восстановлением файловой системы.
Шаг 4: Форматирование диска
Если восстановление данных не дает результатов, и вы сильно беспокоитесь о дальнейшем использовании диска, возможно, вам всё-таки придется отформатировать его. Перед этим обязательно сделайте резервную копию всех важных данных, которые удалось восстановить.
sudo mkfs.exfat /dev/sdc2
Шаг 5: Использование надежной файловой системы в будущем
Чтобы избежать подобных проблем в будущем, рекомендуется рассмотреть возможность использования другой файловой системы, например, ext4
или NTFS
, которые имеют более продвинутые функции управления ошибками и восстановления. Каждая файловая система имеет свои плюсы и минусы, поэтому выберите то, что лучше всего подходит для ваших нужд.
Заключение
Повреждение файловой системы может быть следствием различных факторов, включая неправильное извлечение диска, внезапное отключение питания или механические повреждения. Регулярные резервные копии важны, и использование более устойчивых систем может помочь избежать этих проблем. Если вы продолжаете сталкиваться с проблемами, возможно, стоит обратиться к профессиональным сервисам по восстановлению данных.