У нас есть приложение, которое работает на выделенном компьютере (работает под управлением Windows Embedded на NTFS-диске) на заводе. В редких случаях "поврежденный файл" останавливает работу программного обеспечения. Удаление поврежденного файла решает проблему ... но все данные в файле теряются.
Пока что воспроизвести эту проблему в лаборатории оказалось невозможным. Нам наконец-то удалось вернуть ПК, который демонстрирует проблему. До сих пор все известные экземпляры "поврежденного файла" были INI-файлами, которые использует наше программное обеспечение. Когда я пытаюсь просмотреть файл (в блокноте), отображается следующая ошибка:
Попытка скопировать файл в проводнике Windows для автономного анализа приводит к следующему сообщению об ошибке:
Атрибуты файла выглядят нормально в командной строке. Попытка скопировать файл вручную с copy mStats.ini D:
генерирует эту ошибку:
Загрузка Windows в безопасном режиме не помогает (файл все еще поврежден и не подлежит восстановлению). Похоже, это указывает на поврежденную запись в таблице основных файлов Windows NTFS (MFT). Остальная часть системы, кажется, не затронута. Удаление файла позволяет полное восстановление.
- Что может быть причиной этого?
- Можно ли восстановить данные или исправить MFT?
- Можно ли воспроизвести проблему такого типа (программно или вручную)?
- Есть ли какой-нибудь общий совет для чтения / записи файлов, чтобы гарантировать, что такого рода вещи не произойдут?
ОБНОВЛЕНИЕ 1
На основании предложения здесь я побежал chkdsk C: /V
из командной строки , который вернулся:
\PATH\mStats.ini
Windows found errors on the disk, but will not fix them
because disk checking was run without the /F (fix) parameter.
\PATH\mStats.ini first allocation unit is not valid. The entry will be truncated.
\PATH\mStats__.ini
\PATH\mStats__.ini first allocation unit is not valid. The entry will be truncated.
Файлы все еще повреждены. Я занят повторным запуском команды с флагом /F
ОБНОВЛЕНИЕ 2
После запуска chkdsk
с флагом /F
файлы теперь исправлены. Это не очень хорошая новость, это звучит, потому что теперь у меня нет компьютера с поврежденными файлами! В журнале событий Windows> Приложения появляется следующая запись:
\PATH\mStats.ini first allocation unit is not valid. The entry will be truncated.
\PATH\mStats__.ini first allocation unit is not valid. The entry will be truncated.
Было также около дюжины других файлов (в основном в папке Temporary Internet Files
), которые имели ту же проблему.