Пояснения к новым ключам /C и /I, предусмотренным в программе Chkdsk.exe

Переводы статьи Переводы статьи
Код статьи: 314835 - Vizualiza?i produsele pentru care se aplic? acest articol.
Версию данной статьи для Microsoft Windows 2000 и NT Windows NT 4.0 см. в 187941 (Эта ссылка может указывать на содержимое полностью или частично на английском языке).
Развернуть все | Свернуть все

В этой статье

Аннотация

В данной статье описываются два новых ключа, /C т /I, входящих в программу CHKDSK операционной системы Windows XP. Эти ключи улучшают возможности управления простоем, обусловленным запуском программы CHKDSK или AUTOCHK.

Предупреждение Корпорация Майкрософт не рекомендует прерывать процедуру проверки диска, выполняемую с использованием ключа /f. Корпорация Майкрософт не гарантирует целостности диска в случае прерывания работы программы проверки диска.

Дополнительная информация

Chkdsk.exe является интерфейсом командной строки для программы CHKDSK, осуществляющей проверку логической целостности файловой системы. При обнаружении логических противоречий в данных файловой системы программа CHKDSK выполняет операции по исправлению системных данных (при условии, что данные доступны не только для чтения).

Использование ключей /C и /I допустимо только для дисков, отформатированных в файловой системе NTFS. Каждый из этих новых ключей указывает процедуре CHKDSK на необходимость обхода определенных операций, которые в противном случае должны были бы выполняться в CHKDSK для проверки целостности структур данных NTFS.

При запуске CHKDSK в интерактивном режиме код, который реально выполняет проверку, находится в служебной библиотеке DLL, например Untfs.dll и Ufat.dll. Процедуры проверки, вызываемые программой CHKDSK, это те же самые процедуры, которые работают при проверке тома посредством проводника Windows или графического интерфейса пользователя программы управления диском.

Однако если запланирован запуск CHKDSK при перезагрузке компьютера, выполняется содержащий код проверки двоичный модуль Autochk.exe, программа, являющаяся частью Windows. Поскольку Autochk.exe запускается на начальном этапе процедуры загрузки компьютера, этой программе недоступны такие преимущества, как виртуальная память или другие службы Win32.

Autochk.exe создает результат в текстовом виде, аналогичный результату в текстовом виде, создаваемому служебными библиотеками DLL программы Chkdsk.exe. Autochk.exe отображает результат в текстовом виде во время процедуры загрузки, а также регистрирует событие в журнале событий приложений. В число данных зарегистрированного события включается объем текста, который помещается в буфер данных журнала.

Поскольку основой как Autochk.exe, так и кода проверки в служебной библиотеке DLL программы Chkdsk.exe является один и тот же исходный код, далее в этой статье термин "CHKDSK" используется для обозначения как Autochk.exe, так и Chkdsk.exe. Точно так же, поскольку в данной статье рассматриваются только те изменения, вносимые CHKDSK, которые затрагивают тома NTFS, все утверждения типа "CHKDSK делает то-то" означают, что "CHKDSK делает то-то, если CHKDSK работает на томе NTFS."

Имейте в виду, что при использовании ключей /C и /I том может остаться поврежденным даже по завершении работы CHKDSK. Поэтому рекомендуется использовать эти ключи, только если необходимо минимизировать время простоя. Данные ключи предназначены для ситуаций, когда требуется запустить CHKDSK на исключительно больших томах и необходим гибкий подход к управлению временем возникшего простоя.

Чтобы понять, в какой ситуации разумно использовать ключи /C и /I, необходимо иметь основные представления о некоторых внутренних структурах данных NTFS, типах возможных повреждений, операциях, выполняемых CHKDSK для проверки тома, и возможных последствиях, вызываемых обходом в программе CHKDSK обычных этапов проверки.

Операции, выполняемые программой CHKDSK

Работа программы CHKDSK делится на три основных прохода, в течение которых CHKDSK проверяет все метаданные на томе, и дополнительный четвертый проход.

Термин "метаданные" означает "данных о данных." Метаданные являются, так сказать, "надстройкой" над файловой системой, в которой отслеживаются сведения обо всех файлах, хранящихся на томе. В метаданных содержатся сведения о кластерах, составляющих объем данных конкретного файла, о том, какие кластеры свободны, о кластерах, содержащих поврежденные сектора и т.д. С другой стороны, данные, содержащиеся в файле, обозначаются как "данные пользователя". В NTFS метаданные защищаются с помощью журнала транзакций. Для защиты данных пользователей этот способ не применяется.

Этап 1. Проверка файлов

Во время первого прохода CHKDSK выводит сообщение о том, что выполняется проверка файлов, а также объем выполненной проверки, выраженный в процентах (от 0 до 100). В течение этого этапа CHKDSK проверяет сегмент записи каждого файла в основной таблице файлов (MFT) тома.

В MFT сегмент записи конкретного файла однозначно определяет каждый файл и каталог на томе NTFS. "Процент выполнения", отображаемый программой CHKDSK на этом этапе, представляет собой процентную часть MFT, уже проверенную CHKDSK. Во время этого прохода CHKDSK проверяет сегмент записи каждого файла на внутреннюю непротиворечивость и строит два массива битов, в одном из которых представлены используемые сегменты записей файлов, в другом — используемые кластеры тома.

В конце этого этапа CHKDSK определяет используемое пространство и доступное пространство как в пределах MFT, так и на томе в целом. NTFS отслеживает эти данные в собственных массивах битов, хранящихся на диске. CHKDSK сравнивает свои результаты с массивами битов, хранящимися в NTFS. В случае расхождений эти расхождения отмечаются в выходных данных CHKDSK. Например, если выясняется, что сегмент записи файла, находившийся в использовании, повреждён, кластеры диска, связанные с этим сегментом записи файла, помечаются в массиве битов CHKDSK как "доступные", но в массиве битов NTFS они помечаются как "используемые".

Этап 2. Проверка индексов

Во время второго прохода CHKDSK выводит сообщение о том, что выполняется проверка индексов, и снова отображает объем выполненной проверки, выраженный в процентах (от 0 до 100). В течение этого этапа CHKDSK проверяет все индексы на томе.

По существу, индексы — это каталоги NTFS. "Процент выполнения", отображаемый программой CHKDSK на этом этапе, представляет собой проверенную часть каталогов тома в процентном выражении. Во время этого прохода CHKDSK проверяет все каталоги на томе, выполняя проверку на внутреннюю непротиворечивость и проверку того, что на каждый файл и каталог, представленные в MFT сегментом записи файла, имеется ссылка хотя бы из одного каталога. CHKDSK убеждается в том, что каждый файл или подкаталог, на который имеется ссылка в каталоге, действительно существует в MFT в виде сегмента записи файла, а также выполняет проверку на наличие циклических ссылок каталогов. В заключение CHKDSK проверяет, что в списках каталогов обновлены данные о дате и времени файлов и их размерах.

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

Этап 3. Проверка дескрипторов безопасности

Во время третьего прохода CHKDSK выводит сообщение о том, что выполняется проверка дескрипторов безопасности, и в третий раз отображает "процент выполнения", выраженный в процентах (от 0 до 100). В течение этого этапа CHKDSK проверяет все дескрипторы безопасности, связанные с файлами или каталогами на данном томе.

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

Этап 4. Проверка секторов

Если действует ключ /R, CHKDSK выполняет четвёртый проход для поиска поврежденных секторов в свободном пространстве тома. CHKDSK выполняет попытку чтения каждого сектора на томе, чтобы получить подтверждение пригодности сектора для использования. Даже без использования ключа /R CHKDSK обязательно читает секторы, относящиеся к метаданным. Секторы, относящиеся к данным пользователей, читаются на предыдущих этапах работы CHKDSK, если указан ключ /R.

Если CHKDSK обнаруживает нечитаемый сектор, NTFS добавляет кластер, содержащий данный сектор, в список поврежденных кластеров. Если поврежденный кластер используется, CHKDSK выделяет новый кластер для выполнения функции поврежденного кластера. Если используется отказоустойчивый диск, NTFS восстанавливает данные поврежденного кластера и записывает данные во вновь выделенный кластер. В противном случае новый кластер заполняется шаблоном из байтов 0xFF.

Если NTFS обнаруживает нечитаемые секторы во время выполнения обычной операции, NTFS переназначает секторы таким же методом, как и при работе CHKDSK. Следовательно, использование ключа /R обычно не является существенным. Тем не менее, использование ключа /R является удобным способом проверки всего тома, если есть основания подозревать, что на диске имеются поврежденные секторы.

Длительность работы CHKDSK

Предыдущее описание этапов работы CHKDSK даёт только общее представление о наиболее важных задачах, выполняемых CHKDSK для проверки целостности тома NTFS. CHKDSK выполняет также множество дополнительных специальных проверок на каждом этапе и несколько быстрых проверок между этапами. Однако даже такой общий обзор дает основания для дальнейшего обсуждения факторов, оказывающих влияние на время, затрачиваемое программой CHKDSK на работу, и влияния новых ключей /C и /I, доступных в операционной системе Windows XP.

Фактор 1. Этап "Индексы"

Во время первого и третьего этапов работы CHKDSK (проверка файлов и дескрипторов безопасности) изменение состояния индикатора "процент выполнения" является относительно плавным. Для обработки неиспользуемых сегментов записи файла требуется меньше времени, а обработка больших дескрипторов безопасности требует большего времени, но в целом "процент выполнения" довольно точно отражает реальное время, требуемое для этого этапа.

Однако отношение процент/время может быть неприменимо ко второму этапу, когда CHKDSK проверяет индексы (каталоги NTFS). Время, требуемое для обработки каталога, тесно связано с числом файлов и подкаталогов в данном каталоге, но "процент выполнения" во время этого этапа основывается только на числе каталогов, которые предстоит проверить программе CHKDSK. Отсутствует корректировка возможной длительности обработки, например, каталога, содержащего чрезвычайно большое число файлов и подкаталогов. Если все каталоги на томе содержат примерно одинаковое число файлов, "процент выполнения", отображаемый в течение этого этапа, не отражает надежным образом фактическое время, требуемое для второго этапа.

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

Фактор 2. Состояние тома

Многие факторы, влияющие на состояние тома, оказывают влияние на длительность работы программы CHKDSK. Формула для прогнозирования времени, требуемого для работы CHKDSK на конкретном томе, должна была бы содержать такие переменные, как число файлов и каталогов, степень фрагментации в целом и MFT в особенности, формат имен файлов (длинные имена, имена в формате 8.3 или оба варианта) и объем фактических повреждений, которые CHKDSK должна исправить.

Фактор 3. Характеристики оборудования

Характеристики оборудования также оказывают влияние на длительность работы программы CHKDSK. К ним относятся количество доступной памяти, скорость ЦП, скорость диска и т.д.

Фактор 4. Параметры CHKDSK

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

Например, без использования ключа /R для работы программы CHKDSK на 50-гигабайтном (ГБ) томе, содержащем только один или два больших файла базы данных, могут потребоваться всего лишь секунды. Если используется ключ /R, программа CHKDSK должна прочитать и проверить каждый сектор на томе, что значительно увеличивает время работы на больших томах. С другой стороны, для работы CHKDSK даже на относительно небольшом томе могут потребоваться часы, если на томе имеются сотни тысяч или даже миллионы небольших файлов, независимо от того, используется или нет ключ /R.

Прогнозирование длительности работы CHKDSK

Как видите, работа CHKDSK может потребовать от нескольких секунд до нескольких дней, в зависимости от ситуации. Фактически наилучшим способом прогнозирования длительности работы CHKDSK на конкретном томе является пробный запуск в режиме "только чтение" во время невысокой загрузки системы.

Однако этим методом следует пользоваться с крайней осторожностью по следующим причинам.
  • В режиме "только чтение", если возникают ошибки на ранних этапах, CHKDSK закрывается до завершения всех трёх этапов и может формировать ложные сообщения об ошибках. Например, CHKDSK может сообщить о повреждении диска, если во время проверки диска программой CHKDSK области диска подвергнутся изменению системой NTFS. Для правильной проверки том должен находиться в неизменном состоянии, а единственным способом фиксировать состояние тома является его блокировка. CHKDSK блокирует том только в том случае, если указан ключ /F (или ключ /R, который подразумевает использование ключа /F). Для выполнения всех проходов в режиме "только чтение" программу CHKDSK может потребоваться запустить несколько раз.
  • Программа CHKDSK интенсивно использует как ЦП, так и диск. На длительность работы программы CHKDSK оказывает влияние уровень загрузки системы и вариант работы CHKDSK: в интерактивном режиме или во время процедуры загрузки Windows XP. Какой фактор становится узким местом, зависит от конфигурации оборудования, но высокая загрузка ЦП или активное выполнение операций ввода и вывода на диске во время работы CHKDSK в режиме "только чтение" значительно увеличивают время работы программы. Кроме этого, Autochk.exe работаете в другой рабочей среде, чем Chkdsk.exe. Работа процедуры CHKDSK в рамках модуля Autochk.exe предоставляет процедуре CHKDSK в монопольное использование ЦП, но не дает возможности использовать виртуальную память. Несмотря на то что можно рассчитывать на то, что Autochk.exe будет работать быстрее Chkdsk.exe, фактически Autochk.exe может потребовать больше времени, если в компьютере относительно небольшой объем доступной оперативной памяти.
  • Исправление повреждений увеличивает необходимое для работы время. В режиме "только чтение" CHKDSK полностью завершает работу только в том случае, если не обнаруживаются значительные повреждения. Если на диске присутствуют только небольшие повреждения, можно прогнозировать, что устранение неполадок незначительно увеличит время, необходимое для работы CHKDSK. Но если CHKDSK обнаруживает серьезные повреждения, например, являющиеся результатом серьезного сбоя оборудования, можно прогнозировать, что время, требуемое для работы CHKDSK, возрастет пропорционально числу поврежденных файлов, которые программа CHKDSK должна восстановить. В крайних случаях это может привести к удвоению необходимого для работы CHKDSK времени.

Использование ключей /C и /I

Ключ /C

Ключ /C указывает программе CHKDSK на необходимость пропустить проверки, выявляющие циклы в структуре каталогов. Циклы являются очень редким видом повреждения, при котором подкаталог является своим собственным "предком".

Использование ключа /C ускоряет работу CHKDSK примерно на 1-2 процента, но одновременно приводит к сохранению "циклов" каталогов на томе NTFS. Такие циклы могут оказаться недоступными из остальной части дерева каталогов, и некоторые файлы могут оказаться потерянными в том смысле, что программы Win32, включая программы резервного копирования, не в состоянии обнаружить эти файлы.

Ключ /I

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

Сколько времени экономит использование ключа /I, прогнозировать трудно. Как правило, ключ /I уменьшает время работы CHKDSK на 50-70 процентов в зависимости от таких факторов, как соотношение файлов и каталогов и соотношение скорости дисковых операций ввода и вывода и скорости ЦП.

На использование ключа /I накладываются следующие ограничения.
  • В каталоге могут иметься записи, ссылающиеся на неправильные сегменты записей файлов. В этом случае любая программа, пытающаяся использовать такую запись, сталкивается с ошибками.
  • Могут существовать сегменты записей файлов, на которые не ссылается ни одна запись каталога (другой вариант возникновения потерянных файлов). Файл, фактически являющийся неповрежденным, будучи представленным сегментом записи файла, может быть невидим для всех программ Win32, включая программы резервного копирования.

Значение ключей /C и /I

Существуют три основных варианта реакции на обнаружение повреждения на диске.

Первый заключается в отсутствии каких-либо действий. Для наиболее важных серверов, которые должны работать круглые сутки, это выбор зачастую является вынужденным. Отрицательной стороной является возможность того, что относительно небольшое повреждение быстро перерастет в серьезное повреждение. Следовательно, этот вариант стоит рассматривать только в том случае, если поддержание сервера в активном состоянии более важно, чем сохранение целостности данных, хранящихся на поврежденном томе. До тех пор пока не будет запущена программа CHKDSK, все данные на поврежденном томе следует рассматривать как "находящиеся под угрозой". Второй вариант состоит в запуске полного режима программы CHKDSK для исправления всех данных файловой системы и восстановления всех данных пользователей, которые могут быть восстановлены посредством автоматической обработки. Однако запуск работы полного режима программы CHKDSK может стоить нескольких часов простоя критически важного сервера в неподходящее время. Третьим вариантом является запуск укороченного режима работы CHKDSK с помощью одного или двух ключей /C и /I для исправления повреждений тех типов, которые могут перерасти в серьезные неполадки гораздо быстрее, чем требуется для выполнения полной программы CHKDSK.

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

Обратите внимание также на то, что NTFS не гарантирует целостности данных пользователя после возникновения повреждения диска, даже если был безотлагательно запущен полный режим работы CHKDSK. Могут иметься файлы, которые CHKDSK не в состоянии восстановить, а файлы, которые CHKDSK восстанавливает, могут содержать внутренние повреждения. Имеющей решающее значение остается защита критически важных данных посредством регулярного резервного копирования или использования какого-либо другого надежного метода восстановления данных.

Свойства

Код статьи: 314835 - Последний отзыв: 1 декабря 2007 г. - Revision: 4.1
Информация в данной статье относится к следующим продуктам.
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional
  • Microsoft Windows XP Professional x64 Edition
Ключевые слова: 
kbinfo kbfea KB314835

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com