Як CHKDSK / F на заблокованій гучності перезавантажується?


14

Я chkdsk /Fбагато разів запускався протягом багатьох років ... і сьогодні мені довелося запускати його на одному з моїх серверів R2 2008 року, і я отримую звичайне повідомлення:

Chkdsk не може запуститися, тому що том використовується в іншому процесі. Чи хотіли б ви запланувати перевірку цього обсягу при наступному перезапуску системи? (Д / Н) у

Цей том буде перевірено наступного разу, коли система перезапуститься.

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

Питання:

ЯК / де Windows планує це зробити при перезапуску? Це не в планувальнику завдань чи RunOnce чи подібних, що має сенс, якщо його потрібно запустити до того, як Windows заблокує гучність ... так, де саме Windows встановлює це "планове завдання", щоб сервер знав про це навіть тиждень пізніше під час перезавантаження вікна технічного обслуговування?

Відповіді:


19

Велике запитання. відповідь полягає в тому, що VolumeDirtyбіт встановлюється на гучність, яка (я повинен припустити) перевіряється під час завантаження. Можливо, це аналогічно тому, як це перевіряється, коли вставляється флешка, і ви отримуєте спливаюче вікно, яке говорить Сканувати або Продовжувати без сканування .

Одного разу я спробував придумати спосіб планувати chkdsk для автоматизованого сервера, який підтримував майже нульове обслуговування, встановивши volumedirtyбіт через scripthell script ( dirtybitset = $true), але це не вийшло. Я можу переглянути, що, як видно з мого посилання, є ScheduleAutoChk, який робить саме це і працює в поєднанні з брудним бітом.

Подальше дослідження тут говорить:

Кожен раз, коли Windows перезапускається, ядро ​​викликає Autochk.exe, щоб сканувати всі томи, щоб перевірити, чи встановлено брудний біт гучності. Якщо брудний шматочок встановлений.

Більше інформації про autochk.exeце можна знайти тут, щоб допомогти пояснити, що відбувається на веб-сайті Microsoft Technet та Wikipedia , де у Вікіпедії зазначено:

Після завантаження всіх драйверів Boot і System ядро ​​(системний потік) запускає підсистему диспетчера сеансів (smss.exe).

Перш ніж відкрити будь-які файли, Autochk запускається smss.exe. Autochk монтує всі накопичувачі та перевіряє їх по черзі, щоб побачити, чи вони були чисто відключені чи ні. Якщо autochk визначить, що один або кілька томів є брудними, він автоматично запускає chkdsk

Зокрема, це з’являється, якщо ви шукаєте в реєстрі під:

HKLM \ System \ CurrentControlSet \ Control \ Session Manager

Є значення, BootExecuteяке змінюється autocheck autochk *на щось подібнеautocheck autochk /p \\??\C: autocheck autochk *


1
ага ... Добре круто, я знайшов додаткову деталь, яку я додам до вашої відповіді ... дякую сер!
TheCleaner

1
Для довідки: це, здається, ви можете використовувати chkntfs /c %SystemDrive%для планування обсягу завантаження для перевірки перезавантаження, не спілкуючись безпосередньо з реєстром. (Звичайно, ви повинні мати права адміністратора, щоб це зробити.)
cHao

@cHao - вам не доведеться безпосередньо спілкуватися з реєстром незалежно. `chkdsk / f% SystemDrive% робить те саме. Можливо, я не слідкую за вашим коментарем.
TheCleaner

@TheCleaner: chkntfs /cХоча ви не отримаєте "Чи хотіли б ви запланувати розклад ...?" підказка. Це може бути важливою різницею, якщо ви хочете, наприклад, скасувати диск, як частину запланованого завдання.
cHao

2
@ MDMoore313: /cце можливість запланувати перевірку. Без нього chkntfsпросто скажу, чи була запланована перевірка.
cHao
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.