CHKDSK используется для проверки дисков и вывода отчетов о результатах проверки.

1. Описание команды CHKDSK.

1.1. Формат командной строки:

C:\ CHKDSK [том:[[путь]имя_файла]] [/F] [/V] [/R] [/X] [/I] [/C] [/L[:размер]]

1.2. Параметры:

  • Том Определяет точку подключения, имя тома или букву проверяемого диска с двоеточием.
  • имя_файла Файлы, проверяемые на наличие фрагментации (только FAT/FAT32).
  • /F Исправление ошибок на диске.
  • /V Подробный режим вывода. Для FAT/FAT32: вывод полного пути и имени для каждого файла на этом диске. Для NTFS: также вывод сообщений об очистке.
  • /R Поиск поврежденных секторов и восстановление их содержимого. (требует ключ /F).
  • /L:размер Только для NTFS: изменение размера файла журнала до указанной величины (в КБ). Если размер не указан, выводится текущее значение размера.
  • /X При необходимости, принудительное отключение тома. Все открытые дескрипторы для этого тома будут недействительны. (требует параметр /F).
  • /I Только для NTFS: менее строгая проверка индексных элементов.
  • /C Только для NTFS: пропуск проверки циклов внутри структуры папок.

Ключи /I или /C уменьшают время выполнения CHKDSK за счет пропуска некоторых проверок тома.

2. Примеры использования.

2.1. Проверить текущий диск (том) в режиме “только чтение”:

C:\ CHKDSK

Пример отчета :

Тип файловой системы: NTFS.

Метка тома: DISK_C.

ВНИМАНИЕ! Параметр F не указан.

CHKDSK выполняется в режиме только чтения.

Проверка файлов (этап 1 из 3)...
Проверка файлов завершена.
Проверка индексов (этап 2 из 3)...
Проверка индексов завершена.
Проверка дескрипторов безопасности (этап 3 из 3)...
Проверка дескрипторов безопасности завершена.
CHKDSK проверяет журнал USN..
Завершена проверка журнала USN

488384000 КБ всего на диске.
482155688 КБ в 332072 файлах.
108552 КБ в 14989 индексах.
0 КБ в поврежденных секторах.
1120884 КБ используется системой.
65536 КБ занято под файл журнала.
4998876 КБ свободно на диске.

Размер кластера: 4096 байт.
Всего кластеров на диске: 122096000.
1249719 кластеров на диске.

2.2. Проверить диск D: в режиме исправления ошибок.

C:\ CHKDSK D: /F

Если в данном режиме проверки CHKDSK не может получить монопольный доступ к проверяемому тому, то программа выдаст запрос на установку режима автоматического запуска тестирования указанного диска при следующей перезагрузке системы. Выполнение проверки будет произведено службой менеджера сеансов Windows, в соответствии с содержимым раздела реестра
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\BootExecute
Результаты проверки можно просмотреть в журнале событий системы -(Панель управления – Администрирование – Просмотр событий – Приложение) уведомления службы Winlogon . Наличие признака запуска программы CHKDSK при следующей перезагрузке Windows можно проверить с помощью команды CHKNTFS, ссылку на описание которой, также можно найти на странице со списком команд CMD Windows. Кроме того, с ее помощью можно выполнить изменение некоторых параметров тестирования.

Не рекомендуется прерывать работу программы CHKDSK , запущенной с ключом /F поскольку, в таком случае, существует вероятность нарушения целостности файловой системы.

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

Для защиты данных пользователей ( не метаданных ) в файловой системе NTFS этот способ не используется.

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

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

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

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

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

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

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

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

Необходимо учитывать тот факт, что время выполнения CHKDSK с ключом /R может быть значительным. Кроме того, современные жесткие диски имеют встроенную систему самотестирования и контроля параметров (S.M.A.R.T) , наличие которой делает бессмысленным использование режима поиска поврежденных секторов с помощью CHKDSK, поскольку все современные накопители постоянно выполняют внутренние подпрограммы контроля технического состояния и самодиагностики, а также встроенные на микропрограммном уровне процедуры переназначения плохо читающихся секторов ( нестабильных секторов ) на секторы из резервной области ( процедура remap или ремап ). Данные процессы происходят невидимо для пользователя компьютера. Поэтому, наличие сбойных блоков ( Bad Blocks ) возможно только при отсутствии свободного места в резервной области для переназначения, или при возникновении сбоев в момент записи данных в сектор, например, при аварийном выключении первичного электропитания.

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