Постоянная проверка диска при загрузке (WinXP SP2 + NTFS)

Постоянная проверка диска при загрузке (WinXP SP2 + NTFS)

Дело оказалось метке «dirty bit».

Вот выдержка из Справки по использованию утилиты CMD.EXE (файл этой Справки находится в: <СисДиск:\WINDOWS\Help\ntcmds.chm>):

«Если «грязный» бит тома задан, это может означать, что файловая система находится в неустойчивом состоянии. «Грязный» бит может быть задан, потому что том находится в подключенном состоянии и в нем имеются незаконченные изменения, из-за того что компьютер был выключен до того, как сделанные изменения были переданы на диск, или из-за обнаруженных повреждений тома. Если «грязный» бит задается при перезагрузке компьютера, командой chkdsk будет проведена проверка целостности тома.
При каждом запуске Windows XP ядро вызывает файл Autochk.exe для сканирования всех томов и проверки, заданы ли «грязные» биты томов. Если «грязный» бит задан, программа autochk.exe немедленно запускает команду «chkdsk /f» для этого тома. Команда «chkdsk /f» проверяет целостность файловой системы и пытается устранить все возможные неисправности тома.»

Проверить, стоит ли на диске метка “dirty” можно, введя в командной строке команду «fsutil dirty query C:», где «C:» – буква интересующего нас диска. После нажатия клавиши появится одно из 2 возможных сообщений : «Том – C: помечен как “грязный”» или «Том – C: не помечен как “грязный”». В моём случае выяснилось, что диск C: как раз и был “грязным”. (Note: в вышеупомянутой Справке сказано, что сообщения о статусе “грязный” имеют вид типа: «Том – C: изменен» или «Том – С: не изменен», но у меня сообщения были именно такими, как я указал выше. Суть дела, конечно, от этого не меняется).

Итак, как я и подозревал, из-за принудительных перезагрузок (через кнопку Reset на системном блоке) на диске C: что-то сбилось, Win пометила его флагом “dirty” и поэтому при загрузке он проверяется, – тут всё ясно. Но вот чего я до недавних пор никак не мог понять, так это то, почему проверка диска во время загрузки (т.е. команда «chkdsk /f», запускаемая autochk.exe при обнаружении на диске метки “dirty”) НЕ снимает эту метку?! У меня в голове вертелась мысль, что ведь я где-то вроде читал/слышал, что эта метка снимается после того, как команда «chkdsk /f» проверит диск… А я уже писал в моём прежнем посте, что выполнение проверки через Проводник не прекращает перезагрузки… Но стоило мне выполнить проверку не через Проводник, а через командную строку, – как я тут же всё и понял! (Note: в WinXP проверку диска можно запустить либо через Проводник – тогда она выполнится при следующей загрузке, либо через CMD.EXE – тогда возможны 2 варианта: или, аналогично тому, как это происходит в Проводнике, назначить её на следующую перезагрузку, или блокировать диск и выполнить её прямо сейчас). Выполняю проверку (командой «chkdsk C: /f») прямо в системе (т.е. с блокированием диска), а затем проверяю статус метки “dirty” («fsutil dirty query C:») – получаю ответ: «Том – C: не помечен как “грязный”». Да, вот так, значит проверка диска, действительно, снимает эту метку! Теперь подходим к самому главному. Перезагружаюсь – и опять выскакивает эта долбаная проверка диска 😦. В загруженной вновь системе проверяю статус “dirty” – метка стоит! И вот тут-то я до всего и допёр(!): диск постоянно проверяется при перезагрузке НЕ потому, что предыдущие аналогичные проверки НЕ снимали метку (так я думал раньше), а потому, что эта метка именно в момент загрузки и ставится!

Чтобы не лицезреть синее окно проверки диска С: при загрузке (очень, знаете ли бесит) просто исключил его из проверки посредством команды «chkntfs /x С:» Note: команда «chkntfs /x C:» НЕ предотвращает пометку системой диска флагом “dirty”, если система сочтёт это нужным, – эта команда просто устанавливает, чтобы при загрузке Windows autochk.exe, обнаружив на диске эту метку, НЕ запускал для него проверку.

Вырезки из : http://forum.ru-board.com/topic.cgi?forum=62&topic=4589