Назад | Перейти на главную страницу

Каким образом CHKDSK / F на заблокированном томе становится «запланированным» на перезагрузку?

Я бегал chkdsk /F много раз за эти годы ... и сегодня мне пришлось запустить его на одном из моих серверов 2008 R2, и я получил обычное сообщение:

Chkdsk не может работать, потому что том используется другим процессом. Вы хотите запланировать проверку этого тома при следующем перезапуске системы? (Да / Нет) y

Этот том будет проверен при следующей перезагрузке системы.

Я посмотрел документ Technet здесь: http://technet.microsoft.com/en-us/library/cc730714.aspx а также обычный поиск в Google и поиск на Technet и сайте: microsoft.com в Google, но не могу найти то, что ищу ...

Вопрос:

КАК / где Windows планирует это при перезагрузке? Его нет в Task Scheduler, RunOnce или чем-то подобном, что имеет смысл, если его нужно запустить до того, как Windows заблокирует том ... так где именно Windows устанавливает это «запланированное задание», чтобы сервер знал об этом даже через неделю во время перезагрузки окна обслуживания?

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

Однажды я попытался придумать способ запланировать chkdsk для автоматизированного сервера, который почти не нуждался в обслуживании, установив параметр volumedirty бит через сценарий PowerShell (dirtybitset = $true), но это не сработает. Я могу вернуться к тому, что, как видно из моей ссылки, есть ScheduleAutoChk, который делает именно это и работает вместе с грязным битом.

Дальше исследования здесь состояния:

Каждый раз, когда Windows перезагружается, ядро ​​вызывает Autochk.exe для сканирования всех томов, чтобы проверить, установлен ли бит загрязнения тома. Если установлен грязный бит.

Подробнее о autochk.exe можно найти здесь, чтобы помочь объяснить, что происходит в Сайт Microsoft Technet и Википедия, где Википедия утверждает:

После загрузки всех драйверов загрузки и системы ядро ​​(системный поток) запускает подсистему диспетчера сеансов (smss.exe).

Перед открытием любых файлов Autochk запускается с помощью smss.exe. Autochk монтирует все диски и проверяет их по очереди, чтобы убедиться, правильно ли они были отключены. Если autochk определяет, что один или несколько томов загрязнены, он автоматически запускает chkdsk

В частности, он появляется, если вы посмотрите в реестр в разделе:

HKLM \ System \ CurrentControlSet \ Control \ Session Manager

Есть значение BootExecute что меняется от autocheck autochk * к чему-то вроде autocheck autochk /p \\??\C: autocheck autochk *