5

NTFS публикует метаданные, чтобы сама файловая система не повреждалась, если машина выключалась. Я читал, что это не относится к самим данным файла. Но что, если данные добавляются только в конец файла? Я думаю, что базы данных делают это, так что, по-видимому, это безопасно, но я не смог найти документацию. Я хочу возобновить загрузку безопасно после включения питания.

1 ответ1

0

Это зависит.ТМ от TechNet, акцент мой:

NTFS использует ведение журнала и восстановление транзакций, чтобы гарантировать, что структура тома не повреждена.

Теоретически NTFS гарантирует, что либо все обновления структуры тома будут на диске, либо не будут. Следовательно, одна из этих двух вещей будет иметь место после восстановления питания:

  1. Файл имеет старый размер, а ваши новые данные отсутствуют.
  2. Файл имеет новый размер, и ваши новые данные ... о, подождите

Смысл ведения журналов NTFS заключается в том, чтобы гарантировать, что бухгалтерия и метаданные не будут уничтожены, если их изменение происходило после потери питания. Это достигается с помощью журнала изменений. (Я слышал анекдоты о плохих секторах, появляющихся после сбоев электропитания, но я не могу найти никаких официальных источников, чтобы подтвердить, что такие вещи случаются.)

Пользовательские данные, однако, не всегда записываются, когда вы думаете, что это происходит, особенно при наличии кэширования записи. Тем не менее, в этом случае с вашим объемом все в порядке, и с существующими данными ничего плохого не произойдет, поскольку они не были обновлены.

Тем не менее, если ваше загрузочное приложение не предназначено для таких ситуаций, вполне возможно, что файл будет расширен, но новая часть заполнена нулями. Если приложение обновляет несколько мест, любое кэширование записи в ОС лишает законной силы предположения, которые вы можете сделать при записи пользовательских данных. (FILE_FLAG_WRITE_THROUGH может помочь, но даже это можно игнорировать, если включена расширенная производительность.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .