При каждой перезагрузке Windows ядром операционной системы вызывается
программа "AutoСhk.exe", которая проверяет все тома, не установлен ли для
какого-нибудь из них «грязный» бит (Dirty Bit). Если «грязный» бит установлен,
программа "AutoСhk.exe" немедленно запускает для этого тома команду "ChkDsk /F".
Команда "ChkDsk /F" проверяет целостность файловой системы и пытается
устранить все проблемы с томом.
Выполняющий анализ программный код утилиты "ChkDsk" в действительности находится в драйвере файловой системы (C:\Windows\System32) — в файле Ufat.dll для файловых систем FAT и FAT32 и в файле Untfs.dll — для файловой системы NTFS.
После некорректного завершения работы
рекомендуется всегда проверять тома с помощью команды "ChkDsk", однако в
некоторых случаях запуск команды "ChkDsk" после каждого некорректного
завершения работы невозможен или нецелесообразен. Команда "ChkDsk" может
проверять том несколько часов или даже дней, либо вообще зависнуть в
процессе проверки. В таких случаях проверку лучше отложить на более
удобное время.
«ChkDsk» (сокр. от «Check Disk») - стандартное приложение в операционных системах DOS и Microsoft Windows - исправление ошибок файловой структуры и восстановление утерянных блоков распределения, диагностика (проверка) поверхности жесткого диска на наличие физически повреждённых секторов (Bad Sectors).
По умолчанию программа «ChkDsk» проверяет кластеры помеченные как поврежденные, в таблице размещения файлов (FAT -
File Allocation Table).
C:\Windows\System32\ChkDsk.exeПо умолчанию, «ChkDsk» не исправляет ошибки и не проверяет поверхность диска на наличие повреждённых секторов. Для исправления ошибок необходимо задать флаг /F. Например: "ChkDsk /F".
При нахождении программой «CheckDisk» потерянных кластеров (Lost Clusters) их содержимое перемещается в корневую директорию диска (FOUND.000...xxx) в файлы под именами FILE001.chk, FILE002.chk, FILE003.chk … FILExxx.chk.
Стандартный список Chk-файлов Восстановленные файлы из Chk-файлов Потерянные кластеры (Lost Clusters) – это кластеры по ошибке обозначенные операционной системой как занятые определенными данным, хотя на самом деле в такой кластер данные ни одного файла не записаны.
Потерянные блоки - это участки магнитного носителя, не включенные ни в одну цепочку кластеров, описывающую файлы, и при этом состоящие из кластеров, которым в таблице размещения файлов соответствуют коды, отличные от кода свободного или запорченного кластера (0000Н или FFF7H).
Такие области образовываются при аварийном завершении обмена данными с магнитными дисками (например, после выключения питания компьютера при наличии открытых файлов).
Т.е. потерянные блоки появляются, когда в процессе модификации данных на магнитном диске система не успевает отразить все изменения в его файловой структуре.
Перекрестные ссылки возникают, когда один и тот же кластер включается в две или более независимые цепочки, каждая из которых соответствует отдельному файлу.
Данная ситуация возникает после принудительного аварийного прерывания операции записи информации на магнитный диск. Например, если в процессе записи на диск текущий элемент цепочки, отображающей последовательность кластеров в файле, сформирован, а последующий элемент остался не модифицированным, то соответствующий кластер впоследствии может быть распределен вторично.
Команды консолиПо умолчанию, «ChkDsk» не исправляет ошибки и не проверяет поверхность диска на наличие повреждённых секторов. Для исправления ошибок необходимо задать флаг /F.
CHKDSK [том:[[путь]имя_файла]] [/F] [/V] [/R] [/X] [/I] [/C] [/L[:размер]]
- Том — Метка тома проверяемого диска, точка подключения либо имя диска с двоеточием (например, C:);
- Путь, имя файла — Имя файла или группы файлов для проверки на фрагментацию. Используется только в файловой системе FAT/FAT32;
- /F — Выполнение проверки на наличие ошибок и их автоматическое исправление;
- /V — Отображение в процессе проверки диска расположение и имена проверяемых файлов. Для дисков, содержащих разделы NTFS, также выводятся сообщения об очистке;
- /R — Поиск поврежденных секторов и восстановление их содержимого. Требует обязательного использования ключа /F;
- /X — Отключение тома перед его проверкой. После отключения все текущие дескрипторы для данного тома будут недействительны. Требует обязательного использования ключа /F;
- /L:размер — Изменение размера файла журнала до указанной величины в процессе проверки (в килобайтах). Если значение не указано, выводится текущий размер файла. Используется только в файловой системе NTFS;
- /I — Быстрая проверка индексных элементов. Используется только в файловой системе NTFS;
- /C — Запрет на проверку циклов внутри структуры папок. Используется только в файловой системе NTFS.
Отключение "ScanDisk" & "ChkDsk"
Внимание: Неправильное использование редактора реестра может привести к возникновению серьезных неполадок, требующих переустановки операционной системы.
Windows 95, Windows 98 и 98 Second EditionПуск->Выполнить->msconfig (Start->Run->msconfig);
Нажать на кнопку «Подробно» (Advanced) и включить опцию «Отключить Scandisk после некорректного выключения» (Disable Scandisk After Bad Shutdown);
Для Windows 95 OSR2, Windows 98, Windows 98 Second Edition, Windows 98 2-го изд. данная процедура добавляет параметр "AutoScan = 0" в раздел [Options] файла Msdos.sys.
"Autoscan=0" — отключить Scandisk;
"Autoscan=1" — включить Scandisk с предварительным запросом на разрешение сканирования диска;
"Autoscan=2" — включить Scandisk без предварительного запроса на разрешение сканирования диска;
MsDos.sys — системный файл операционной системы MS-Dos и систем семейства Windows 9x, расположенный в корневом каталоге загрузочного диска (Boot Disk).
Впервые файл MsDos.sys появился в MS-DOS и содержал часть кода ядра операционной системы, реализующую интерфейсы к системе (в отличие от другого системного файла — IO.SYS, содержащего функции для общения DOS с BIOS и аппаратной частью компьютера). В MS-DOS этот файл запускается после IO.SYS.
В Windows 9x весь код Dos находится в IO.sys, а MsDos.sys является обычным текстовым файлом, аналогичным Config.sys, и в нём задаются некоторые настройки, управляющие процессом загрузки системы.
В Windows семейства NT (NT 3.1-4, 2000, XP и выше) данный файл не используется.
ScanDisk.log - файл отчет работы «ScanDisk» в корневом каталоге диска.
Windows ME
- Запустить редактор реестра
(Пуск->Выполнить->RegEdit;
- Найти ветку "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\FileSystem";
- Изменить значение для ключа
"DisableScandiskOnBoot":
- 00 00 00 01 – отключить
Scandisk;
- 00 00 00 00 – включить
Scandisk;
- Запустить редактор реестра
(Пуск->Выполнить->RegEdit;
- Найти ветку "HKEY_USERS\.DEFAULT\SOFTWARE\Microsoft\Windows\CurrentVersion\Applets\Check Drive";
- Изменить значение для ключа
"AutoChk":
- 00 00 00 00 – отключить
Scandisk;
- 02 00 00 00 – включить
Scandisk;
Windows 2000/ME/XP/2003/Vista/2008 Server & 2008 Server R2/Seven- Запустить редактор реестра (Пуск->Выполнить->RegEdit);
- Найти ветку "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager";
- Заменить значение мультистрокового параметра с именем «BootExecute» с «AutoCheck AutoChk *» (по умолчанию) на «AutoCheck AutoChk /k:C *», соответственно, указав букву того диска, для которого нужно отключить проверку;
При некорректном завершении Windows, после перезагрузки компьютера появляется сообщение о необходимости проверки файловой системы на наличие ошибок с паузой 10 секунд до автоматического запуска проверки.
Время паузы (по умолчанию 10 сек.) корректируется в реестре Windows.
- Запустить редактор реестра (Пуск->Выполнить->RegEdit);
- Найти ветку "HKEY_LOCAL_MACHINESYSTEM\CurrentControlSet\Control\SessionManager";
- Создать "DWORD" параметр с именем «AutoChkTimeOut» и значением:
- AutoChkTimeOut = 00 (период ожидания 00 сек., т.е. отсутствует);
- AutoChkTimeOut = 15 (период ожидания 15 сек);
- AutoChkTimeOut = 30 (период ожидания 30 сек);
Максимально возможное присвоенное параметру
"AutoChkTimeOut" значение 259200 секунд (3 дня - 72 часа), в противном
случае параметр примет значение по умолчанию, т.е. 10 секунд.
Windows NTFS Volume Maintenance UtilityСредство "Windows NTFS Volume Maintenance Utility" было разработано корпорацией Microsoft и входит в состав операционных систем Windows, начиная с Windows NT 4.0 с пакетом обновления 2 (SP2). Средство предназначено для отключения автоматического запуска программы "ChkDsk" для проверки отдельных дисков после некорректного завершения работы компьютера. Кроме того, с помощью средства "Chkntfs" можно отменить назначенный командой "ChkDsk /f" запуск программы "ChkDsk" для проверки активного тома при следующей перезагрузке системы.
Воспользовавшись запуском из командной строки утилиты "NTFS Volume Maintenance" с определенным параметром можно отключить проверку определенных томов.
C:\Windows\System32\chkntfs.exe (Windows NT 4.0 SP2/98 & 98SE/2000/ME/XP/2003/Vista/2008 Server & 2008 Server R2/Seven)
Синтаксис запуска "Chkntfs":ChkNtfs том: [...]
ChkNtfs /d
ChkNtfs /x том: [...]
ChkNtfs /c том: [...]
- Том - Метка тома проверяемого диска, точка подключения либо имя диска с двоеточием (например, C:);
- /D - Восстанавливает стандартные параметры компьютера; все диски проверяются при загрузке и "ChkDsk" запускается при обнаружении ошибок. Отменяет параметр /X;
- /X - Исключает стандартную проверку диска при загрузке. Сведения об исключенных ранее дисках не сохраняются;
- /C - Запрашивает выполнение проверки диска при следующей загрузке; если на диске обнаружены ошибки, запускается "ChkDsk";
Например:ChkNtfs /x c: - Отключение выполнения программой "ChkDsk" проверки на диске С;
ChkNtfs /x d: e: - Отключение выполнения программой "ChkDsk" проверки на дисках D: и Е;
Если параметры не указаны, средство "ChkNtfs" отображает состояние «грязного» бита для каждого тома.
Команды "ChkNtfs /x" не носят накопительного характера, т.е. выполнение такой команды приводит к переопределению установленных ранее исключений для проверки дисков. В приведенном примере средство "ChkNtfs" отменяет проверку программой "ChkDsk" дисков D и E; диск С не проверяется на наличие «грязного» бита.
Принцип действия средства "ChkNtfs" заключается в
изменении значения параметра "BootExcecute", который расположен в
следующем разделе системного реестра:
"HKEY_LOCAL_MACHINESYSTEM\CurrentControlSet\Control\SessionManager"
Ручное редактирование данной записи реестра описано выше.
По умолчанию параметр имеет следующие характеристики. Название: BootExecute, тип: REG_MULTI_SZ, значение: Autocheck Autochk *
Выполнение команды "ChkNtfs /x" приводит к добавлению перед звездочкой
аргумента /k, который исключает тома из списка проверки на наличие
«грязного» бита.
Например, после выполнения команды "ChkNtfs /x D:" рссматриваемый параметр реестра будет иметь значение "AutoCheck AutoChk /k:D *".
Для того чтобы автоматически запуститься при следующей перезагрузке системы, команда "ChkDsk /f" устанавливает для диска «грязный» бит. Команда "ChkDsk /x" отменяет проверку наличия этого бита. Команда "ChkDsk /f" никогда не выполняется по отношению к тому, исключенному из списка проверки на наличие «грязного» бита средством "ChkNtfs".
Чтобы выполнить команду "ChkDsk /f" для диска, проверка которого отменена средством "ChkNtfs", необходимо восстановить обычное состояние системы, запустив команду "Chkntfs /d" или удалив букву диска после аргумента /k в значении параметра реестра "BootExecute".
Внимание: Команда "ChkDsk /f /r" проверяет тома на наличие ошибок файловой системы и поврежденных секторов. Чтобы автоматически запуститься при следующей перезагрузке системы, команда "ChkDsk /f /r" добавляет запись в параметр "BootExecute". Например, команда "ChkDsk c: /f /r" изменяет значение параметра BootExecute следующим образом: "AutoCheck AutoChk /r \??\C:".
Поскольку эта запись создается непосредственно в реестре системы, команда "ChkDsk /f /r" не может быть отменена с помощью средства ChkNtfs. Отменить команду "ChkDsk /f /r" можно только путем удаления из значения параметра "BootExecute" строки, которая ссылается на эту команду.
Восстановление данных из Chk-файловВнимание: Эффективность программ востановления данных из файлов "FILExxx.chk" не более 20%. При восстановлении файлов структура папок и имена
файлов не восстанавливаются. Программы используют распознавание файла по
его сигнатуре.
Сигнатура файла — целочисленная константа,
используемая для однозначной идентификации ресурса или данных. Такое
число само по себе не несёт никакого смысла, и может вызвать недоумение,
встретившись в коде программы без соответствующего контекста или
комментария, при этом попытка изменить его на другое, даже близкое по
значению, может привести к абсолютно непредсказуемым последствиям.
Архив содержит:- UnChk
- File Chk
- Chk Parser32
- DataLabs UnChk v1.0
- Chk Repair v1.5 (Build 36)
- DIY DataRecovery Chk-Mate v1.0