Диск загрузки журнала тома Ntfs
Обновлено: 21.11.2024
В официальной реализации NTFS все изменения метаданных в файловой системе регистрируются, чтобы обеспечить последовательное восстановление критических структур файловой системы после системного сбоя. Это называется ведением журнала с опережающей записью.
Зарегистрированные метаданные хранятся в файле с именем «$LogFile», который находится в корневом каталоге файловой системы NTFS.
В настоящее время документации по этому файлу не так много. Большинство источников либо слишком высокоуровневые (описывающие процессы регистрации и восстановления в целом), либо просто содержат расположение ключевых структур без дальнейшего описания.
Процесс регистрации метаданных основан на двух компонентах: службе файла журнала (LFS) и клиенте NTFS LFS (оба реализованы как часть драйвера NTFS).
LFS предоставляет своим клиентам интерфейс для хранения буфера в кольцевой («бесконечной») области файла журнала и для чтения таких буферов из этого файла журнала. В частности, поддерживаются следующие упрощенные типы действий:
- сохранить буфер (данные клиента) как запись журнала, вернуть его порядковый номер журнала (LSN);
- сохранить буфер (данные клиента) в качестве области перезапуска, вернуть его LSN;
- если файл журнала заполнен, создать исключение для клиента;
- отметить ранее сохраненные данные как неиспользуемые;
- получив номер LSN, найти сохраненный буфер (данные клиента) и вернуть его;
- получив номер LSN, найти следующий номер LSN для того же клиента и вернуть его (прямой поиск);
- получив номер LSN, найти предыдущий номер LSN для того же клиента и вернуть его (обратный поиск).
Как видите, LFS — это уровень управления данными для компонента ведения журнала NTFS, LFS не выполняет фактическую регистрацию операций с метаданными. Каждый буфер, полученный от клиента, непрозрачен для LFS (система LFS знает только о типе этого буфера: будь то запись журнала или область перезапуска клиента).
Фактическое ведение журнала (и восстановление) реализовано как часть NTFS-клиента LFS. Каждый буфер, отправленный из этого компонента в LFS, содержит что-то, связанное с транзакцией. Здесь транзакция — это набор изменений метаданных, необходимых для выполнения конкретной высокоуровневой операции.
Например, следующие изменения метаданных объединяются как транзакция при переименовании файла:
- удалить запись индекса (со старым именем файла) для целевого файла из индекса имени файла в родительском каталоге;
- удалить атрибут $FILE_NAME (со старым именем файла) из записи целевого файла;
- создайте атрибут $FILE_NAME (с новым именем файла) в записи целевого файла;
- добавить запись индекса (с новым именем файла) для целевого файла в индекс имени файла в родительском каталоге.
Если все эти изменения были успешно применены к тому, транзакция помечается как забытая.
Но прежде чем мы перейдем к формату изменений метаданных, используемому клиентом NTFS, нам нужно проанализировать дисковые структуры LFS.
Прежде всего, поскольку каждый клиентский буфер, хранящийся в файле журнала, идентифицируется номером LSN, важно понимать, как эти номера LSN генерируются LFS.
Количество битов, зарезервированных для порядкового номера в LSN, является переменным, оно зависит от размера файла журнала (и он записан в нем).
Номера LSN имеют важное свойство: они всегда увеличиваются. Номер LSN для новой записи всегда больше, чем номер LSN для более старой записи (технически эти числа могут переполняться, но не будут, потому что достичь 64-битного предела практически невозможно).
Запись LFS — это структура, содержащая заголовок и данные клиента. В заголовке записи LFS хранятся следующие данные: номер LSN для этой записи, предыдущий номер LSN для того же клиента, номер LSN для операции отмены для того же клиента, идентификатор клиента, идентификатор транзакции, тип записи (журнал запись или область перезапуска клиента), длина клиентских данных, различные флаги. Многие значения, упомянутые ранее, задаются клиентом.
Записи LFS записываются на страницы записей LFS. Каждая страница записи LFS имеет размер 4096 байт (соответствует размеру страницы), содержит заголовок (первые четыре байта — «RCRD») и одну или несколько записей LFS. Поскольку клиентские данные могут быть большими, для хранения одной записи LFS могут потребоваться две или более смежных страниц записей LFS (таким образом, запись LFS может быть больше, чем страница записи LFS; только первый сегмент имеет заголовок записи LFS). р>
Каждая страница записи LFS защищена массивом последовательности обновлений, который используется для обнаружения неудачных (разорванных) операций записи. Вот описание процесса защиты (источник):
Массив последовательности обновления состоит из массива из n значений USHORT, где n – это размер защищаемой структуры, деленный на шаг порядкового номера.Первое слово содержит порядковый номер обновления, который является циклическим счетчиком количества раз, когда содержащаяся структура была записана на диск. Далее следуют n сохраненных значений USHORT, которые были перезаписаны порядковым номером обновления при последней записи содержащей структуру на диск.
Каждый раз, когда защищенная структура собирается быть записанной на диск последнее слово в каждом шаге порядкового номера сохраняется в соответствующей позиции в массиве порядковых номеров, а затем перезаписывается следующим обновленным порядковым номером. После записи или всякий раз, когда структура читается, сохраненное слово из массива порядковых номеров восстанавливается в его фактическую позицию в структуре. Перед восстановлением сохраненных слов при чтении все порядковые номера в конце каждого шага сравниваются с фактическим порядковым номером в начале массива. Если какие-либо из этих сравнений не равны, то обнаружен сбой многосекторной передачи.
(Следует отметить, что шаг составляет 512 байт, даже если основной диск имеет больший размер сектора. Кроме того, размер массива последовательности обновления не n, а n+1.)
Вот макет типичной страницы записи LFS:
Вот макет двух страниц записей LFS, содержащих большую запись LFS:
Наконец, кольцевая («бесконечная») область файла журнала состоит из множества страниц записей LFS. Как описано выше, записи LFS, записанные в файл журнала, могут переноситься, поэтому большая запись LFS, начинающаяся с последней страницы записи LFS, также попадает на первую страницу записи LFS круговой области.
При записи новой записи LFS на текущую страницу записей LFS существующие записи LFS на этой странице могут быть потеряны из-за разрыва записи или сбоя системы. Таким образом, данные, которые были успешно сохранены ранее, могут быть потеряны из-за новой записи.
Для защиты от таких сценариев в файле журнала существует специальная область. Он расположен перед круглой областью.
В версии 1.1 LFS специальная область состоит из двух страниц, которые используются для хранения двух копий текущей страницы записи LFS. Прежде чем поместить новую запись LFS в текущую страницу записи LFS, эта страница сохраняется в специальной области (первая копия). После помещения новой записи LFS в текущую страницу записи LFS измененная страница также записывается в специальную область (вторая копия, первая копия не перезаписывается второй).
Если при записи второй копии произойдет разрыв записи или системный сбой, первая копия (без новой записи LFS) будет доступна для восстановления. Если все в порядке и LFS нуждается в специальной области для нового обновления, то вторая копия записывается в кольцевую область лог-файла (и специальная область становится доступной для нового обновления).
Эти две копии текущей страницы записи LFS называются конечными копиями (поскольку они всегда представляют собой последнюю страницу записи LFS, которая будет записана в круговую область). Последняя хвостовая копия не сразу перемещается в круглую область. Таким образом, чтобы получить полный набор страниц записей LFS во время восстановления, LFS должна применить последнюю конечную страницу (или действительную, если другая конечная страница недействительна) к кольцевой области.
В версии 2.0 LFS специальная область состоит из 32 страниц. Когда LFS необходимо поместить новую запись LFS в текущую страницу записи LFS или когда LFS подготавливает новую страницу записи LFS с одной записью LFS, обновленная страница (содержащая новую запись LFS) или новая страница просто записывается в специальная область (на неиспользуемую страницу).
Если при записи этой страницы происходит прерывание записи или системный сбой, используется более старая версия той же страницы из специальной области. Иногда страницы записей LFS с последними данными перемещаются в циклическую область (и соответствующие страницы в специальной области помечаются как неиспользуемые).
Я не знаю, как называются страницы записей LFS в этой специальной области. Я называю их быстрыми страницами.
Новая версия LFS требует меньше операций записи за счет уменьшения количества передач страниц в циклическую область. Следует отметить, что версия файла журнала по умолчанию понижается до 1.1 во время чистого завершения работы (поэтому файловая система NTFS может быть смонтирована с использованием предыдущей версии Windows).
Кроме того, Microsoft собирается выпустить версию 3.0 LFS. Эта версия будет использоваться на томах DAX.При отображении лог-файла в режиме DAX целостность его страниц будет защищаться с помощью контрольной суммы CRC32 (и не будет массивов последовательности обновления, потому что они плохо работают с памятью с байтовой адресацией). Это ускорит работу (без пейджинговой записи).
Наконец, файл журнала начинается с двух страниц перезапуска, каждая имеет размер 4096 байт (опять же, это размер страницы; первые четыре байта для каждой страницы — «RSTR»). Эти страницы также защищены массивами последовательности обновлений.
Страница перезапуска содержит номер версии LFS, размер страницы и область перезапуска (не путать с областью перезапуска клиента).
Область перезапуска — это структура, содержащая последний использованный номер LSN (на момент написания этой структуры), количество клиентов LFS, список клиентов LFS, количество битов, использованных для порядкового номера. часть каждого LSN, а также некоторые данные для проверки работоспособности и прямой совместимости (смещение первой записи LFS на странице записи LFS, которое также является смещением продолжения клиентских данных с предыдущей страницы записи LFS, и размер заголовка записи LFS; оба смещения позволяют игнорировать неподдерживаемые поля на страницах записей LFS и в записях LFS).
Список клиентов состоит из записей клиентов. Запись о клиенте содержит самый старый номер LSN, необходимый этому клиенту, номер LSN последней области перезапуска клиента, имя этого клиента (а также другую информацию об этом клиенте). В настоящее время единственный клиент называется «NTFS».
Две страницы перезапуска обеспечивают надежность в случае возможного сбоя (обрыв записи или системный сбой). Эти страницы не обязательно синхронизировать.
Вот общий макет файла журнала:
Когда LFS попросят предоставить начальные данные для своего клиента, она прочитает и вернет последнюю область перезапуска клиента в соответствии с номером LSN, записанным в соответствующей записи клиента. (Позже, во время операции регистрации, LFS не будет касаться самой старой записи LFS, необходимой каждому клиенту.)
Клиент получает свою последнюю область перезапуска, интерпретирует ее (помните, что LFS не знает о формате данных клиента) и решает, какие действия (если таковые имеются) необходимо предпринять. Если требуется запись журнала, клиент запрашивает LFS предоставить эту запись (в качестве буфера) по своему номеру LSN.
Клиент NTFS указывает LFS записать область перезапуска клиента в конце операции контрольной точки. Во время контрольной точки клиент NTFS записывает набор записей журнала, содержащих данные о текущих транзакциях, за которыми следует область перезапуска, указывающая на каждую часть этих данных (с использованием номеров LSN). Во время восстановления клиент NTFS использует эти данные, чтобы решить, какие транзакции зафиксированы, а какие нет: зафиксированная транзакция должна быть выполнена снова с использованием своих данных повторного выполнения (есть вероятность, что эти данные не попали в том), в то время как незафиксированная транзакцию необходимо откатить, используя их данные отмены.
А теперь мы можем взглянуть на формат данных клиента!
Существует три версии формата данных клиента NTFS: 0.0, 1.0 и 2.0.
Последний, похоже, находится в разработке, потому что он еще не включен. Эта новая версия удаляет избыточные дампы открытых таблиц атрибутов и дампы имен атрибутов, которые ранее были созданы во время контрольной точки (те же данные могут быть восстановлены из записей журнала, поэтому нет причин тратить место и связывать эти дампы с областью перезапуска клиента). ).
В настоящее время используются только первые две версии: 0.0 и 1.0. Существенных различий между ними нет. Наиболее заметным отличием, хотя и не очень значительным, является формат записей открытых атрибутов.
Область перезапуска клиента содержит основной и дополнительный номера версии используемого формата данных клиента NTFS, номер LSN, который будет использоваться в качестве отправной точки для прохода анализа (когда драйвер NTFS создает таблицу транзакций и таблицу грязных данных). диапазоны). Также в области перезапуска клиента находятся номера LSN для таблицы транзакций, сбрасываемой в лог-файл из памяти (эта таблица также может отсутствовать), открытой таблицы атрибутов, сбрасываемой в лог-файл из памяти, списка имен атрибутов, сбрасываемых в лог-файл файл из памяти, а таблица грязных страниц выгружается в файл журнала из памяти (который используется для отслеживания диапазонов грязных данных).
Таблица открытых атрибутов и список имен атрибутов ссылаются на нерезидентный атрибут, открытый для операции журнала. Запись из таблицы открытых атрибутов содержит номер ссылки $MFT для записи файла, нерезидентный атрибут которого был открыт, и код типа этого атрибута (например, $DATA). Запись из списка имен атрибутов содержит Unicode-имя нерезидентного атрибута, открытого вместе с индексом соответствующей записи в таблице открытых атрибутов.
Запись журнала, записанная во время операции с нерезидентным атрибутом, содержит индекс целевого атрибута в таблице открытых атрибутов. На основе этой информации (ссылка на файл $MFT, код атрибута и имя атрибута) можно найти целевой атрибут. Кроме того, запись журнала содержит смещение в целевом атрибуте, по которому будут записываться новые данные.
Следует отметить, что ни одна таблица, на которую ссылается область перезапуска клиента, не находится в актуальном состоянии. В этих таблицах должны учитываться новые элементы из записей журнала после области перезапуска клиента.
Запись в журнале — это фактический дескриптор зарегистрированной операции. Запись журнала содержит тип повтора и данные (могут быть пустыми), тип и данные отмены (также могут быть пустыми), номер целевого сегмента записи файла $MFT (для операций над резидентными атрибутами и данными $MFT в целом ), индекс целевого атрибута в открытой таблице атрибутов (для операций с нерезидентными атрибутами) и несколько полей, используемых для вычисления смещения в целевом объекте.
Данные повторного выполнения записываются при фиксации транзакции, данные отмены записываются при откате транзакции (чтобы вернуть все в прежнее состояние). Однако есть некоторые исключения: при открытии нерезидентного атрибута запись его открытого атрибута сохраняется как данные повторного выполнения, а его имя Unicode сохраняется как данные отмены.
Вот полный список типов операций журнала (начиная с Windows 10, сборка 18323):
Вот расшифрованная транзакция, используемая для переименования файла (с «aaa.txt» на «bbb.txt»).
Следует отметить, что обновления некоторых атрибутов могут записываться частично. Например, обновление атрибута $STANDARD_INFORMATION может записывать данные, начиная с временной метки M (и временная метка C, которая хранится перед временной меткой M, будет отсутствовать в данных повтора/отмены).
Единственное, что осталось, — это значение каждой операции с журналом. Не сегодня!
Обновление (2019-02-17):
Сколько времени требуется, чтобы старые данные были перезаписаны новыми данными?
В одном из моих тестов с Windows 10 это заняло 16 минут. В другом тесте с Windows 10 это заняло 5 часов 20 минут. В обоих тестах движение мыши было единственным действием пользователя.
Обсудите и поддержите Проблему: 100% активность диска: Svchost — файл журнала тома NTFS в Windows 10 Performance & Maintenance для решения проблемы; Описание: [img] Активность диска: 100 % в течение нескольких часов Из Perfmon: Самая высокая активность диска от svchost.exe в файле журнала тома NTFS Im. Обсуждение в разделе "Производительность и обслуживание Windows 10", начатое пользователем rezurect007, 17 марта 2017 г. .
Проблема: 100% активность диска: Svchost — файл журнала тома NTFS
Проблема: 100% активность диска: Svchost - Файл журнала тома NTFS - Похожие темы - Ошибка 100% диска
100 проблем с использованием диска
100 проблем с использованием диска: недавно у меня возникла эта проблема с моим компьютером, когда диск в диспетчере задач резко увеличился до 100 %, когда все было равно 0 МБ, затем весь компьютер завис, а затем появились синие экраны. обычно говорят, что критический процесс умер или ошибка на странице данных ядра при игре в большинство игр, таких как Dark.
100 проблем с использованием диска
100 проблем с использованием диска: недавно у меня возникла эта проблема с моим компьютером, когда диск в диспетчере задач резко увеличился до 100 %, когда все было равно 0 МБ, затем весь компьютер завис, а затем появились синие экраны. обычно говорят, что критический процесс умер или ошибка на странице данных ядра при игре в большинство игр, таких как Dark.
100-процентная проблема с диском
100-процентная проблема с диском: отделить от этой темы. Привет, Карло. У меня тоже очень медленный компьютер, но моя проблема в том, что Windows все время использует 100% жесткий диск. Я добавил скриншот моей проблемы. Пожалуйста, не могли бы вы помочь. Я не могу пользоваться компьютером в данный момент. Это очень неприятная проблема.
Проблема с активным временем жесткого диска 100%
Проблема активного времени жесткого диска 100%: почему мой жесткий диск всегда занят 100% активного времени, даже если я не открываю ни одно приложение? В настоящее время я использую ноябрьское обновление Windows 10 (версия 1909). Пожалуйста, помогите мне решить эту проблему[ATTACH].
SVCHOST использует 100% ДИСКА
SVCHOST использует 100 % диска: Я использую сборку 18985. Система работает очень медленно, а системная задача использует 100 % диска. Я исследовал проблему и нашел процесс SVCHOST с использованием диска. Я сделал следующее: Отключил Центр обновления Майкрософт, Отключил все процессы запуска, Остановил все службы, кроме.
диск загружен на 100 %
Служба политик диагностики / svchost задействует до 100 % диска, когда активна
Служба диагностической политики / svchost использует 100 % диска, когда активна: Привет! Извините, если этот вопрос задавался где-то еще, но я не смог найти ничего, описывающего именно эту проблему. Я не уверен, как долго это происходит, но диспетчер задач показывает использование диска на 100% всякий раз, когда активна служба политики диагностики. Я использую Windows 10. Вкладка «Подробности».
Диск неисправен на 100 %
Проблема с диском 100 %: Здравствуйте, я столкнулся с серьезной проблемой, т. е. DISK 100 % всегда меня слишком сильно раздражает, когда я запускаю свой ноутбук, он все время достигает одного и того же состояния. Вещи, которые я сделал, чтобы вылечить это: - 1. Отключено обновление Windows. 2. Отключена супервыборка. 3. Отключено.
Проблема использования диска на 100 %
100 % проблема использования диска. Недавно я купил новый ноутбук. Первые несколько дней все работало нормально, а потом начались лаги. диспетчер задач показал, что мой диск постоянно используется, и это был процесс под названием «Система». У кого-нибудь еще была эта проблема, и если да, то что я могу с этим поделать.
Если у вас высокая активность диска в Windows 7 и вам интересно, что такое файл журнала тома NTFS, прочитайте это и что вы можете с этим сделать.
Что такое файл журнала тома NTFS
Журнал тома NTFS — это файл журнала для важной файловой системы NTFS. В нем хранятся изменения системных метафайлов, поэтому его нельзя отключить, даже если активность диска сходит с ума.
Если журнал тома NTFS вызывает активность диска, а вы не делаете ничего, что является нормальным, вы можете выяснить, какие процессы и службы работают в фоновом режиме, чтобы выяснить, что на самом деле вызывает высокую активность диска.
Типичный журнал объема:
C:\$LogFile (журнал тома NTFS)
Это будет использоваться не только системой, но и вашими программами, например. Chrome.exe, iTunes.exe или система
Что еще я могу сделать, чтобы уменьшить активность диска?
Я сделал это. Что еще?
Попробуйте проверить систему на наличие вирусов и троянов.
Оливер С.К.
Оливер — основатель и главный редактор этого сайта. Ему интересно находить новые способы сломать Windows, находить распространенные ошибки и помогать другим их исправлять. Кроме того, он любит полностью настраивать системы с помощью Rainmeter и Dreamscene, узнавать больше о древних цивилизациях, таких как Чачапойя, оттачивать свои навыки цифровой фотографии и создавать программное обеспечение с небольшой группой избранных разработчиков. Если вы хотите связаться с ним, чтобы обсудить что-либо, отправьте ему письмо!
Последние публикации
Наши лучшие руководства
Последние публикации
Nutshell CRM упрощает работу в переполненной нише CRM
Забавное приложение: добавьте звук в медленные индикаторы выполнения ♫
Список служб Windows 7, которые можно безопасно отключить!
Учебник из 7 шагов: исправить поврежденный профиль в Windows 8 можно
Программное обеспечение для удаленного доступа — управляйте своим ПК с устройства Android
3 шага: включите файлы cookie в Internet Explorer 10 с помощью параметров обозревателя и заблокируйте сторонние файлы cookie
Отказ от ответственности: этот сайт никоим образом не связан с Microsoft. Наш контент создается исключительно из рекламных материалов и собственных разработок.
Техническое хранение или доступ строго необходимы для законных целей, позволяющих использовать конкретную услугу, явно запрошенную подписчиком или пользователем, или с единственной целью осуществления передачи сообщения по сети электронной связи.
Техническое хранение или доступ необходимы для законных целей хранения настроек, которые не запрашиваются подписчиком или пользователем.
Техническое хранилище или доступ, которые используются исключительно в статистических целях. Техническое хранилище или доступ, который используется исключительно для анонимных статистических целей. Без повестки в суд, добровольного согласия со стороны вашего интернет-провайдера или дополнительных записей от третьей стороны информация, хранящаяся или извлекаемая только для этой цели, обычно не может быть использована для вашей идентификации.
Техническое хранилище или доступ необходимы для создания профилей пользователей для отправки рекламы или отслеживания пользователя на веб-сайте или на нескольких веб-сайтах в аналогичных маркетинговых целях.
Бен321
Выдающийся
У меня уже несколько месяцев возникают проблемы со 100%-ным использованием диска для диска, на котором установлена моя ОС. Обычно, как только я загружаю свой компьютер, использование диска подскакивает до 100% и остается таким в течение большей части времени, когда мой компьютер включен, что делает его практически непригодным для использования. Иногда он разрешается сам собой и переходит к нормальному использованию, а в других случаях он будет прыгать повсюду, переходя от 0% к 100%, а затем снова опускаясь до 0%. Я не помню, чтобы я делал что-то радикальное до того, как это началось. Я обновился с Windows 7 до Windows 10, и несколько месяцев все было хорошо, кажется, это произошло внезапно, случайно.
Попробовав почти все, что предлагалось из различных источников в Интернете, и не сумев решить проблему, мой жесткий диск окончательно умер. Я решил, что покупка нового жесткого диска и новая установка Windows, наконец, решат проблему.Однако недавно я купил SSD Samsung Evo 850, установил Windows, но проблема осталась.
Я также получаю сообщения о сбоях на синем экране, которые произошли примерно через час после новой установки Windows. Я не уверен, связано ли это с проблемой 100% использования диска.
У меня почти закончились идеи, так как я уже пробовал отключать superfetch, поиск Windows, экспериментировать с настройками питания, виртуальной памятью, новым жестким диском, новой оперативной памятью, новой установкой Windows, новыми кабелями sata, пробовал разные sata, обновление драйверов, сканирование SFC, сканирование на вирусы и т. д.
У меня нет диска с Windows 10, так как я обновился с Windows 7, поэтому мне пришлось использовать инструменты Windows, чтобы загрузить Windows 10 на USB-накопитель со старого жесткого диска, и выполнить новую установку на новый SSD, который я купил. Могло ли это повлиять на поврежденную версию Windows 10? Любая помощь будет оценена по достоинству, так как у меня почти нет идей.
Технические характеристики ниже. Моему компьютеру около 6 лет.
Amd Phenom II x4 925
Сапфир Radeon HD 5770
Внутренний жесткий диск емкостью 2 ТБ (используется для хранения)
Внутренний жесткий диск объемом 1 ТБ (используется для ОС. Это диск, который только что вышел из строя и был заменен на твердотельный накопитель)
Читайте также: