Почему файловая система журнала должна проверять диск?

1436
studiohack

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

Если файловая система записана в журнал (я оставил ее по умолчанию NTFS), почему она должна проверять диск после моего сбоя?

6

5 ответов на вопрос

6
JdeBP

Потому что журналирование не волшебная палочка.

Решение проблем с перебоями питания и сбоями системы во время транзакций ввода / вывода не становится проблемой только потому, что ведется журнал транзакций. Частично завершенные транзакции, которые выполнялись, когда система выходила из строя / отключалось питание, магическим образом не откатываются вперед или не откатываются сами по себе. Наклон вперед / назад должен быть выполнен до /, так как объем перемонтируется, когда система возвращается снова. Это происходит как часть процесса проверки диска.

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

Хорошо, это разумно, но это было необязательно. Мне разрешили пропустить это нажатием клавиши. Также это заняло несколько минут, а откат изменений не должен. (Но помните, что я все еще мог пропустить проверку ...) 12 лет назад 0
3
x22

Журнал позволяет быстро привести файловую систему в согласованное состояние после нечистого отключения, но не тогда, когда происходит повреждение из-за аппаратного сбоя или системной ошибки. В таком случае требуется полная проверка.

@ acidzombie24 Что вы ожидаете, если произойдет ошибка записи во время отката незафиксированной записи в журнале? Очевидно, что откат не выполнен, и он может оставить файловую систему в несогласованном состоянии. doug65536 7 лет назад 0
1
Psycogeek

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

Журналирование может сохранять / восстанавливать данные, которые находились в пути, и поддерживать указатели на данные, сохраняя при этом один аспект этого. Он не может исправить любые плохие / неполные записи на жесткий диск.


Журнал изменений USN включен и используется службой индексирования, службой репликации файлов (FRS), службами удаленной установки (RIS) и удаленным хранилищем. http://technet.microsoft.com/en-us/library/cc788042(WS.10).aspx

Журналы изменений также необходимы для восстановления индексации файловой системы, например, после сбоя компьютера или тома. Возможность восстановления индексации означает, что файловая система может избежать трудоемкого процесса переиндексации всего тома в таких случаях. http://technet.microsoft.com/en-us/query/aa363798

-1, просто не так работает журналирование. При перезапуске ОС может обнаружить, что запись началась (журнал содержит запись начала записи) и не завершилась (отсутствует соответствующая запись завершения записи). MSalters 12 лет назад 0
@MSalters, которые они заражают [используют «грязный бит»] (http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/fsutil_dirty.mspx?mfr=true), чтобы указать когда `chkdsk` должен быть запущен. Breakthrough 12 лет назад 0
Это правда, и я не оспаривал эту часть. Но этот бит - просто быстрая проверка, чтобы вообще не запускать chkdsk. Т.е. если он не установлен, то вам вообще не нужно проверять журнал. Это оптимизирует время загрузки для случая без сбоев. Однако вопрос был о деле BSOD, и тогда журнал имеет значение. И там описание журнала Psycogeek просто не имеет смысла. С неполной записью в журнале (индикатор отсутствия конца) вы можете исправить неполную запись с помощью отката. MSalters 12 лет назад 1
Вы все правы, мой ответ неясен, когда я пытаюсь охватить разные уровни "журналирования", такие как индексирование и другие вещи, которые мне недоступны. Для ответа нужна целая книга. Честно сказать, что ответ неправильный и что «ведение журнала» в системе Windows ограничено метаданными, когда они используются для индексации и кто знает, что еще. В этом случае это больше, чем метаданные, и также могут быть восстановлены. Если вы не видели, что все на диске, и все, что делается, я не эксперт, но я не оставлял без внимания то, что там происходит. Psycogeek 12 лет назад 0
Я специально заявил, что написание записи в журнале может быть самой причиной коррупции. и вы логически возвращаетесь с «ведение журнала идеально» Но неудачное написание самого журнала никогда не приходит на ум? Насколько точно он будет знать, что он завершил эту запись (записи), если в середине этого сообщения он сообщил, что данные теперь завершены, он потерпел неудачу, он повредил свою собственную запись? Если вы можете объяснить это. Тогда поиск по испорченному журналу USN ничего не должен придумать в гугле? Psycogeek 12 лет назад 0
1
MSalters

Журналирование происходит на разных уровнях, которые имеют разные компромиссы. Журналы NTFS только метаданные, а не собственно содержимое файла. Это означает, что вы можете повредить отдельные файлы во время записи, но вы не можете повредить другие файлы в том же каталоге.

Точно так же, когда происходит сбой, точный тип jornalling определяет, сколько времени требуется для фактического исправления диска. Опять же, есть компромисс: если вы структурируете jornal так, чтобы исправить было легко, вы будете тратить больше времени на обычную запись на диск. Поскольку BSOD довольно редки, NTFS оптимизирована для случая без сбоев, что означает, что восстановление из журнала происходит медленнее.

`BSOD довольно редки` Нет, если вы обманываете, используя NTFS.sys под 98SE или ME. :) user2284570 10 лет назад 0
0
Breakthrough

В файловой системе на основе журнала все изменения в ваших файлах записываются и хранятся вместе. Это позволяет отделить содержимое файла от метаданных (имя файла, даты изменения и т. Д.). Последствия этого, однако, заключаются в том, что если файл не проиндексирован в журнале, он буквально не существует - даже если 0 и 1 физически существуют на блюде.

Это где chkdskпригодится, а также "грязный бит" диска. При выполнении различных операций файловой системы грязный бит устанавливается до завершения операции, после чего он очищается. Из документации Microsoftfsutil :

Если установлен грязный бит тома, это означает, что файловая система может находиться в несогласованном состоянии. Грязный бит может быть установлен, потому что том находится в оперативном режиме и имеет ожидающие изменения, потому что изменения были внесены в том и отключение компьютера до того, как изменения были зафиксированы на диске, или из-за повреждения тома. Если грязный бит установлен при перезагрузке компьютера, запускается chkdsk для проверки согласованности тома.

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