Серверная (www.it-simple.ru)

chkdsk: Проверка диска на ошибки


chkdsk — виндовая утилита командной строки, которая проверяет файловую систему и при необходимости может исправлять ошибки на ней. Не только лишь все понимают степень её полезности, но практически каждый с ней сталкивался — например, когда компьютер завис и перезагрузился ресетом или случилась ещё какая неприятность.
Ведь в этом случае запускается он, чекдиск — сразу после загрузки системы, но до загрузки пользователя. В специальном режиме работы, который называется native. Но это совсем другая история.

Мой компьютер стал плохо работать

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

Для запуска надо открыть командную строку (cmd), ввести в ней

chkdsk %systemdrive% /r

и ответить буквой «y» на предложение запустить проверку при следующем старте системы.

Теперь, как говорится, питание компьютера можно отключить компьютер можно перезагрузить.
И приготовиться к тому, что процедура будет долгой.

Как отключить chkdsk во время загрузки?

Не надо его отключать.

Если он начал работать — значит, у системы были веские основания его запустить. Либо она обнаружила повреждение ФС, либо ты сам поставил раздел на проверку.

У тебя есть несколько секунд, чтобы нажать клавишу AnyKey и предотвратить начало процедуры, которую не надо предотвращать.
Как только проверка начнётся, chkdsk вцепится в ФС с усердием бультерьера, и остановить его сможет только кнопка ресет, которая всё усугубит. Поэтому не надо её нажимать.

Вобщем, ты понял.

Но chkdsk во время загрузки завис!

Нет, он не завис.

Здесь играют роль несколько факторов.

1. Проверка файловой системы на ошибки — достаточно долгая процедура. Чем больше размер, тем дольше проверка.
2. Начиная с Windows 8 вместо детальной информации о проверке система выдаёт вот такое весёленькое окошко ни о чём:

3. Умелые программисты микрософта впаяли в утилиту абсолютно кривой алгоритм индикатора выполнения: сначала он быстро растёт до 10% (28%—40%), а потом намертво зависает до самого конца.

И самое главное:

4. Благодаря первым трём пунктам интернет пестрит воплями нетерпеливых пользователей «чекдиск висит!» и встречными советами тупорылых ламеров, каким предметом правильнее нажимать reset на системнике и как понадёжнее не дать системе восстановить себя — в смысле вообще отключить chkdsk при загрузке.

Не поддавайся на провокации. Умерь стадное чувство. Будь мужиком, дождись окончания процесса.

Где увидеть результаты?

Если раньше (ХР, 7) нужно было вглядываться в экран и дожидаться результатов, пока компьютер не перезагрузился, сейчас всё стало гораздо проще.
Вот ссылка на полную инструкцию (http://answers.microsoft.com/ru-ru/windows/wiki/windows_other-update/%D0%BF%D1%80%D0%BE%D1%81%D0%BC%D0%BE%D1%82%D1%80/f45d497d-9aa4-4cf4-b833-e9577cf489b2). И короткая цитата из неё (безуспешно старается скрыть восторг):

Лог работы СНKDSK можно посмотреть выполнив Панель управления -> Администрирование -> Просмотр событий -> Журналы Windows -> «Приложение». Как утверждают разные умные головы на просторах интернета, источником является Wininit, другие, что источник - уведомления службы Winlogon. Ну да и пусть спорят. Нам же с вами важно только то, что никакого отчёта вы там, да и вообще нигде не найдёте. Существует он всего секунды, затем становится невидимкой, даже, если вы сделаете видимыми все скрытые, защищённые файлы и папки. Но он ( отчёт, файл. с названием bootex.txt ) не исчезает бесследно.
Вот тут нам и поможет Windows PowerShell :

Пуск -> Стандартные -> Windows PowerShell -> правой кнопкой по Windows PowerShell ( выполнение операций с объектами командная строка )-> Запуск от имени администратора и вводим команду ( для PowerShell применяется термин " командлет " ) get-winevent -FilterHashTable @{logname="Application"; id="1001"; starttime="01/01/2011"}| ?{$_.providername –match "wininit"} | fl timecreated, message ( тут маленький нюанс, для Windows PowerShell 1.0 заменить get-winevent на get-eventlog ! Но и команду надо будет корректировать. Делать этого я не стану, нет смысла рыться в делах давно минувших дней, позже поймёте почему ).
Где :
1. "get-winevent ( или get-eventlog )-FilterHashTable" - эта команда получает события с помощью хэш-таблицы фильтра
2. "@{logname="Application"; id="1001"; starttime="01/01/2011"}|" эта команда фильтрует журнал "Приложения" в Просмотре событий, но , в итоге,опубликуется только последний.
а) "logname" - этот фрагмент указывает на то,где будет проводиться фильтрация (в нашем случае это журнал "Приложения" в Просмотре событий)
б) "id" - этот фрагмент указывает на то, с каким кодом будут фильтроваться события (в нашем случает с кодом 1001).
в) "starttime" - этот фрагмент указывает на то,с какого числа будут фильтроваться события (в нашем случае события будут фильтроваться с начала 2011 года).
3. "?{$_.providername –match "wininit"} |" - эта команда ищет в полученных результатах предыдущей команды события, в которой в имени поставщика присутствует "wininit"
4. "fl timecreated, message" - эта команда выводит на экран итоговый список, где показаны текст событий и даты, соответствующие условиям фильтра

Если прибавить эту команду > "$env:homepath\desktop\chkdsk_history.txt" кода в конец команды fl timecreated, message ( после пробела ),то результаты команды fl timecreated, message будут сохранены в лог с именем chkdsk_history.txt на рабочем столе (для удобства).

Орфография и пунктуация автора сохранена.

Вобщем, если вы можете запустить чекдиск из консоли восстановления Windows — запускайте лучше оттуда, всё будет гораздо проще и нагляднее.
А если таких навыков нет, то по большому счёту лог работы и не нужен: как правило, один прогон chkdsk по системному разделу решает подавляющее большинство проблем.