NTFS сыплет событиями 55 «структура файловой системы повреждена», файлы читаются с ошибками: что чинить сначала, а что проверять

Что было. Файловый сервер на Windows Server 2022 с включённой дедупликацией и теневыми копиями. В журнале System серия событий NTFS 55 («обнаружено повреждение структуры файловой системы на томе D:»), часть файлов не открывается, восстановление из резервных копий части файлов тоже не удаётся. chkdsk /scan и sfc частично помогли.

Что означает событие 55. NTFS не смогла записать данные в свой журнал транзакций и обнаружила несогласованность метаданных. Само событие говорит что сломалось, но не почему. Причины: сбойные секторы, незавершённые операции ввода-вывода (внезапная остановка виртуальной машины, сброс контроллера хранилища, таймаут диска), ошибки драйвера или прошивки, а на виртуальных машинах ещё и проблемы хранилища хоста, о которых гость узнаёт только по таймаутам.

Что рекомендовали (принятый ответ).

  1. Сначала резервная копия всего, что читается: восстановление структуры может удалить повреждённые записи.
  2. chkdsk D: /f /r в окне обслуживания (том будет отмонтирован; для системного диска потребуется перезагрузка) либо Repair-Volume -DriveLetter D -SpotFix из PowerShell для точечного исправления после Repair-Volume -Scan. Не прерывать: на больших томах это часы.
  3. Если после починки события возвращаются: причина ниже файловой системы. Проверить журнал System на события disk 7/11/153 (плохие блоки, таймауты, сбросы) и storport/stornvme 129; смотреть состояние виртуального диска и хранилища на стороне площадки; обновить драйверы виртуальных дисков в госте.
  4. Дедупликация и теневые копии сами по себе не ломают NTFS, но повреждённые блоки в хранилище дедупликации касаются сразу многих файлов, а теневые копии поверх повреждённого тома тоже повреждены, отсюда «из бэкапа не восстанавливается».

Что мы добавим для виртуальных машин.

  • Событие 55 после внезапного выключения виртуальной машины извне (сброс хоста, действие в панели) закономерно: журнал NTFS должен был откатить незавершённое, но если кэш записи не был сброшен, метаданные остаются несогласованными. chkdsk /f обычно закрывает вопрос с первого раза.
  • Повторяющиеся 55 при штатной работе без внезапных выключений это повод немедленно обратиться к поставщику виртуальной машины с точными временами событий: так выглядят проблемы хранилища хоста.
  • Файловые серверы с дедупликацией на виртуальных дисках лучше держать с отключённым кэшем записи на уровне гостя, если хранилище не гарантирует его сохранность.
  • Событие 55 на томе с базой данных: остановить базу до chkdsk, а после проверки прогнать средства проверки самой базы (DBCC CHECKDB, mysqlcheck).

Диагностика повреждений диска описана в документации Microsoft.