Проверка и исправление ошибок жестких дисков — CHKDSK
Команда CHKDSK предназначена для проверки и устранения логических ошибок на жестком диске. Ниже мы рассмотрим особенности её работы и другие функции утилиты.
Содержание:
Команда CHKDSK является встроенной утилитой, основная функция которой заключается в проверке и исправлении ошибок жесткого диска . Помимо этого, при помощи CHKDSK можно быстро находить и исправлять поврежденные сектора , а также ошибки в файловой системе накопителя.
Таким образом, CHKDSK – важная утилита, позволяющая продлить строк службы жесткого диска, а также увеличить скорость его работы, поэтому абсолютно каждый пользователь ОС Windows должен уметь пользоваться и проверять свои носители встроенными средствами. Ниже будет предоставлено несколько способов проверки дисков из работающей ОС и командной строки.
Проверка жесткого диска в работающей Windows
Для проверки логических разделов жесткого диска при помощи CHKDSK в работающей Windows необходимо:
Шаг 1. Открыть каталог «Этот компьютер» , нажать правой кнопкой мыши по необходимому логическому разделу и выбрать пункт «Свойства» .
Шаг 2. В открывшемся окне перейти во вкладку «Сервис» и выбрать пункт «Проверить» .
Шаг 3. Подтверждаем проверку диска и после ее завершения нажимаем по кнопке «Показать подробности» .
Шаг 4. Вся информация и результаты проверки диска будут доступны в графе «Сведения» .
Проверка диска из командной строки
В некоторых ситуациях пользователю может понадобиться запуск утилиты CHKDSK из командной строки . Такая возможность позволит проверить и восстановить диск в том случае, если система не запускается и графический интерфейс Windows остается недоступным.
Чтобы запустить командную строку из среды восстановления ОС, необходимо:
Шаг 1. Воспользоваться установочным диском или загрузочной флешкой Windows и после окна выбора языка, нажать по пункту «Восстановление системы» . Перейдя в среду восстановления следует нажать по пункту «Поиск и устранение неисправностей» .
Шаг 2. На следующем окне следует выбрать пункт «Дополнительные параметры» , после чего можно обнаружить кнопку «Командная строка» .
Также всегда остается возможность запустить утилиту проверки дисков через командную строку из работающей системы. Важно! Для использования полного потенциала CHKDSK, следует производить запуск командной строки только с правами администратора . В ином случае утилита CHKDSK проведет проверку без устранения выявленных неполадок .
Запустить командную строку или Windows PowerShell от имени администратора можно, нажав правой кнопкой мыши по кнопке «Пуск» и выбрав пункт «Командная строка(администратор)» .
Команды для работы с CHKDSK в командной строке
Находясь в командной строке, можно провести быструю проверку жесткого диска (аналогичная проверка была описана вначале) без перезагрузки системы. Для этого достаточно ввести команду «CHKDSK» и подтвердить действие кнопкой Enter .
Для проверки диска и исправления логических ошибок на нем, необходимо воспользоваться командой «chkdsk C: /F /R» , где С – имя необходимого диска.
Для подтверждения проверки диска после перезагрузки, необходимо нажать клавишу «Y» .
Помимо полного анализа и по возможности исправления поврежденных секторов, утилита может выполнять проверку и решение ошибок только файловой системы . Для этого следует воспользоваться командой «chkdsk C: /F» и подтвердить действие «Y» .
С полным списком и описанием возможностей утилиты можно ознакомится, введя команду «chkdsk /?» .
Стоит отметить, что проблемы с диском могут быть вызваны не только программными ошибками, но и физическим износом, механическими повреждениями поверхности и другими факторами, которые невозможно исправить при помощи встроенной утилиты CHKDSK.
Чтобы получить полную картину о состоянии носителя, можно воспользоваться бесплатной программой для проверки дисков Victoria . Узнать о том, как пользоваться, исправлять и проводить диагностику HDD с помощью Victoria Вы сможете в статье: « Используем программу Victoria для тестирования и исправления жесткого диска «
Восстановление информации с проблемного жесткого диска
Проблемы с жестким диском – всегда большая угроза для важной информации и документов , хранящихся на компьютере. Чтобы быть готовым к любым обстоятельствам, рекомендуем всегда иметь под рукой специальную программу для эффективного восстановления файлов RS Partition Recovery . Данная утилита поможет восстановить всю утерянную информацию даже в самых сложных случаях.
При помощи RS Partition Recovery можно восстанавливать:
- Случайно удаленные файлы и документы .
- Отформатированные фотографии и медиафайлы .
- Данные, удаленные вирусами .
- Информацию, которая была утеряна при изменении файловой системы и структуры диска .
Проверка диска на ошибки: утилита CHKDSK
В процессе работы системы, на вашем жёстком диске непременно накапливаются ошибки и в запущенных случаях «рушат» систему. Чтобы избежать этого, в Windows встроена утилита для проверки — CHKDSK. Поговорим о ней подробнее.
Обзор утилиты chkdsk
CHKDSK (сокращение от Check Disk — Проверка диска ) — встроенная утилита для проверки жесткого диска на ошибки, обнаружения поврежденных секторов и исправления ошибок файловой системы.
Утилита chkdsk находит ошибки файловой системы, повреждённые bad-сектора на жестком диске, устраняет обнаруженные неисправности. В последних версиях Windows данная утилита (по умолчанию) только находит неполадки, для исправления ошибок нужно вручную задать некоторые параметры.
Чаще всего ошибки возникают по следующим причинам:
- неисправность оборудования, т.е. жёсткого диска ;
- заражение системы вирусами;
- внезапное отключение компьютера, например из-за выключения электроэнергии.
На поверхности жесткого диска могут появиться поврежденные сектора. При проверке диска с помощью chkdsk , битые сектора помечаются как поврежденные и система больше не взаимодействует с неисправными секторами диска. При возможности система попытается восстановить данные с повреждённых секторов.
Графический режим выполнения утилиты
Наиболее простой вариант для неискушённого пользователя. Для запуска утилиты проделайте следующее:
- откройте Проводник ;
- кликните правой кнопкой мыши по нужному локальному диску;
- в контекстном меню выберите строку Свойства ;
- выберите вкладку Сервис и нажмите на кнопку Проверить раздел Проверка на наличие ошибок );
- в открывшемся окне выберите Проверить диск, игнорируя остальную информацию;
- После завершения процесса проверки, откроется окно результата. В моём случае никаких ошибок не выявлено. Если ошибки будут найдены, вам предложат их устранить.
Вы можете узнать подробности проверки, кликнув по Показать подробности . Откроется окно Просмотр событий.
Нажмите на Сведения , откроется окно с подробной информацией о проверке.
Выполнение утилиты в режиме командной строки (CMD)
Данный способ, на мой вкус, также прост, как и первый, а может даже и проще. Для проверки проделайте следующие действия:
- запустите командую строку от имени администратора
Windows 7 : Пуск — Все программы — Стандартные. Кликните правой кнопкой мыши по Командная строка , выберите пункт Запуск от имени Администратора .
Windows 10 : нажмите комбинацию клавиш Win + X и выберите строку Командная строка (администратор) )
- для проверки системного диска (обычно С) в окне командной строки введите команду:
- нажмите Enter .
- в окне командной строки появится сообщение о невозможности выполнить команду CHKDSK из-за того, что указанный том используется системным процессом. Для запуска проверки системного диска после перезагрузки системы, нажмите на клавишу Y , а потом на клавишу Enter;
- во время перезагрузки системы будет проведена проверка и восстановление системного диска.
Команда chkdsk имеет следующий формат:
CHKDSK [буква диска: [ [путь ] имя_файла ] ] [/F] [/V] [/R] [/X ] [/I] [/C] [ /L [:размер] [/B] ] , где
- /F — проверка файловой системы и автоматическое исправление найденных ошибок;
- /R — выполнение поиска поврежденных секторов на диске, восстановление содержимого (команда требует обязательного ключа /F);
- /V — показ полных путей файлов, отображение имен файлов на диске, в файловой системе NTFS;
- /X — отключение диска перед проверкой, дескрипторы данного диска не будут проверяться (должен быть установлен обязательный ключ /F);
- /I — проведение менее строгой проверки элементов индекса, CHKDSK проводит более быструю, но менее тщательную проверку;
- /C — пропуск проверки циклов внутри структуры папок;
- /L: размер — изменение размера журнала до величины, указанной в килобайтах;
- /B — сброс результатов проверки, повторная проверка ранее найденных поврежденных секторов жесткого диска (обязателен ключ /R);
Для обычного пользователя вполне достаточно 2х ключей: F и R. Остальные приведены для ознакомления. Возможно они вам тоже пригодятся.
Вадим Стеркин
Мой читатель Николай выполнил проверку диска утилитой chkdsk и заинтересовался, где хранятся ее результаты. Мои ответы в письмах не столь подробны, как записи блога. Однако в данном случае исчерпывающий ответ уложился в пару строк текста.
Скопируйте код в буфер обмена:
В Windows 8 и новее:
В Windows 7:
Нажмите клавишу Win, напечатайте PowerShell и нажмите Enter.
Вы уже поняли, где посмотреть отчет проверки chkdsk?
Разбор команд
Я не случайно упомянул выше «журнал» — отчет о проверке диска хранится в журнале событий (eventvwr.msc). Из него можно легко извлечь данные с помощью PowerShell.
В Windows 8 изменились источник и номер события (chkdsk, 26226), хотя второе нам даже не понадобилось.
- Get-EventLog -LogName Application Source chkdsk получает события из журнала «Приложения» с источником chkdsk
- Select-Object -Last 5 -Property TimeGenerated,Message выбирает последние 5 событий (значение можно указать любое) и отображает дату и сообщения из каждого события
- Format-Table -Wrap выводит результат в виде таблицу, обеспечивая перенос длинных сообщений, чтобы они не обрезались при выводе
Команда для Windows 7 могла быть короче, но она демонстрирует другой способ извлечения данных из журнала событий с помощью PowerShell:
- get-winevent –FilterHashTable получает события с помощью хэш-таблицы фильтра
- @
| фильтрует журнал «Приложения» (Application), извлекая события 1001 с начала 2011 года, и передает результаты дальше (|) - ? <$_.providername –match "wininit">| ищет в полученных результатах события, где в имени поставщика присутствует wininit, и передает результаты дальше (|)
- fl timecreated, message – выводит итоговый список, показывая даты и текст событий, соответствующих условиям фильтра
- >> $env:homedrive$env:homepath\desktop\chkdsk.txt если добавить этот фрагмент кода в конец команды, ее результаты будут сохранены в текстовый файл на вашем рабочем столе
Конечно, я мог объяснить читателю, как открыть нужный журнал событий и настроить там фильтр по источнику и номеру.
Но одну команду дать и выполнить можно намного быстрее, не правда ли? 16 примеров извлечения сведений из журнала событий вы можете посмотреть командой:
Кто такой поставщик
В Windows есть служба «Журнал событий Windows» (eventlog), которая записывает события в разные журналы. Поставщик WMI (provider) отвечает за сопоставление данных из журналов событий классам WMI (инструментарий управления Windows), работающих под капотом системы. PowerShell отлично справляется с извлечением и обработкой данных WMI, при этом команды получаются очень компактные.
Поставщиком события chkdsk является Microsoft-Windows-Wininit, и на рисунке выше это хорошо видно. Заметьте, что в столбце «Источник» указан просто Wininit, но в подробностях указано полное имя поставщика.
Интересно, что для многих событий можно указать поставщика просто в качестве еще одного фильтра хэш-таблицы, исключая третий шаг команды. Но с Microsoft-Windows-Wininit это не сработало по неведомой мне причине.
Как подсчитать среднее время трех последних загрузок системы
Если вы читали мою книгу об ускорении загрузки, то знаете, о чем я говорю 🙂
Диагностический пакет содержит набор скриптов PowerShell. И фрагмент одного из них я хочу вам показать, поскольку он напрямую связан с темой сегодняшнего разговора.
Просто скопируйте код и вставьте его в окно консоли PowerShell.
Результат будет примерно таким:
В PowerShell можно представить данные события в формате XML, а затем извлекать значения из нужных элементов. XML-файл можно увидеть… правильно, в журнале событий.
К этому коду я пришел не без помощи активного «гугления» и Василия Гусева. Для неподготовленного человека код выглядит сложно, но сопоставив комментарии в нем с картинкой журнала событий, вы легко увидите общую идею.
Обратите внимание, что вся операция уложилась в 7 строк кода! Согласитесь, что это весьма компактно.
Если у вас есть примеры небольших скриптов, поделитесь ими в комментариях! Если же для вас это темный лес, рекомендую это вводное видео Василия Гусева.
Положа руку на сердце, я в PowerShell не силен, как и вообще в скриптах. А как у вас обстоят дела?
Результаты голосования утеряны в связи с прекращением работы веб-сервиса опросов.
Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.
Об авторе
Вадим является владельцем этого блога, и большинство записей здесь вышло из-под его пера. Подробности о блоге и авторе здесь.
Вас также может заинтересовать:
Подпишитесь на бесплатные уведомления о новых записях и получите в подарок мою книгу об ускорении загрузки Windows!
комментариев 20
Немного не по теме если можно — давно хотел спросить — применима ли методика описанная здесь в статье а также методика в книге об ускорении загрузки к ОС windows xp?
Сергей, PowerShell 2.0 для XP можно загрузить отсюда. Я не пользовался PS на XP, поэтому не могу сказать, сработает ли данная команда.
Описанные в книге методики ускорения загрузки не подходят к XP.
Я не случайно упомянул выше «журнал» – отчет о проверке диске хранится в журнале событий (eventvwr.msc).
Поправьте, пожалуйста, опечатку, «проверке диске«.
Скриптами Powershell пользуюсь, но, к сожалению, не так часто, как хотел бы — не хватает опыта. И таки да, примеры Василия Гусева помогают.
Пример скрипта, который я использую в работе — регулярная очистка сервера обновлений WSUs от устаревших, замененных и неиспользуемых файлов обновлений, старых редакций обновлений и компьютеров, которые не подключались к WSUS серверу более 30 дней (все это вместо того, чтобы зайти на консоль WSUS — Параметры — Мастер очистки сервера — нажать «Далее», ждать, пока все не очистится… Долго!):
Еще пример скрипта, может быть полезен админстраторам.
Заведение пользователя посредством скрипта Powershell и csv-файла.
Если нужно завести сразу нескольких пользoвателей, такой скрипт выручает очень здорово. Правда, я использую не «чистый» Powershell, а PowerGUI фирмы Quest Software.
equinox, опечатку исправил. Спасибо за примеры — вижу, что хоть кто-то использует PowerShell в работе 🙂
PowerGUI активно популяризует MVP Дмитрий Сотников, он работает в Quest. Его видео на TechDays тоже интересны — он отличный докладчик.
Скрыто по причине низкого рейтинга комментария. Нажмите здесь, чтобы прочесть.
А попроще, без выпендрежа объяснить можно, я имею ввиду по Русски? То что здесь написано, я ни хрена не понимаю блин! «Откройте Пуск – Поиск – PowerShell» — нет там никакого PowerShell»!
Владимир, ваш комментарий одобрен только потому, что я решил показать интеграцию консолей Windows. На публикацию следующего комментария в таком тоне можете не рассчитывать.
Теперь по сути запуска PowerShell. Откройте командную строку, введите там powershell и нажмите Enter.
Если у вас это тоже не работает, обратитесь в форум за помощью.
Скрыто по причине низкого рейтинга комментария. Нажмите здесь, чтобы прочесть.
Надо добавить пункт «Знаю, но не использую. За ненадобностью.»
Но одну команду дать и выполнить можно намного быстрее, не правда ли?
А щелчки мышью проще запомнить.
Виталий, автору вопроса мой ответ в письме понравился. Более того, сегодня он прислал еще одно письмо, поблагодарив за подробный рассказ.
Его реакция сильно отличается от вашей, причем в лучшую сторону. Я уверен, что все сделал правильно.
Вадим, спасибо!
Всегда интересно, познавательно и понятно пишите.
А как лично Вы оценивает скорость работы PowerShell? Ведь не секрет что технология опирается на .NET FrameWork, о котором недавно шла речь в комментариях http://www.outsidethebox.ms/12412/#comment-2522
Все NET-программы, с которыми я работал, были тормозными.
Если скорость не смущает, то ощущения от консольных Нет программах должны быть аналогичными.
Лично я стараюсь выбирать «нейтив» программы, но индустрия идёт к Джаве и ДотНету.
Андрей, спасибо за поддержку 😉
Shell, я нечасто использую PowerShell, так что мне трудно оценить скорость. Но думаю, надо рассматривать ее в другом контексте.
PS — это средство управления Windows для администраторов. Думаю, что в первую очередь оно призвано ускорить их работу за счет автоматизации рутинных действий.
Многие административные задачи выполняются через графический интерфейс оснасток. Если задача однократная, вряд ли можно ускорить работу, пытаясь наваять скрипт на PS. Но если задача выполняется регулярно, скрипт сэкономит время неимоверно.
Более того, Microsoft создает графические средства управления, заточенные под создание готовых команд. Посмотрите Создание сценариев в среде управления Exchange: ^Справка по Exchange 2010 SP1.
Вы прошли через мастер, и он показывает вам готовую команду. Даже PS изучать особо не надо 🙂
Извиняюсь за оффтоп…
Уважаемый Вадим! Давно (и всегда с интересом), читаю Ваш блог. Огромное Вам спасибо, что Вы находите время делиться Вашими знаниями с теми, кто до Вашего уровня пока не дотянул! 🙂
Ну, и со всеми остальными тоже! 🙂
Therion1966, спасибо за отклик! Я постараюсь не разочаровать вас в будущем 🙂
Спасибо, извините за тупость, однако… кхм… у меня не вышло:
Странно, имею 8.1 pro – но нет журналов wininit и chkdsk. А команда powershell для 8 выводит:
Журнал WinLogon вообще пуст, хоть и работает.
Вариантов ровно два:
1. Проверка диска не выполнялась → выполнить
2. Не функционируют журналы событий → в форум
Здравствуйте Вадим !
Вчера проверял весь жёсткий диск командой chkdsk только прямо в свойствах системного диска. И отчёт я смотрел в журнале Просмотр событий- Приложение по коду 1001 по источнику Wininit Но там весь отчёт по английски написан. Я его ниже копировал в разделе Общие и делал перевод в своём почтовом ящике. И сейчас я делаю проверку раз в три месяца. Спасибо вам !
Леонид Боярский
Здравствуйте, Вадим.
Попробовал применить описанный Вами метод в Windows 10.
Выполнил в PowerShell с правами админа командлет
Get-EventLog -LogName Application -Source chkdsk | select -Last 5 -ExpandProperty Message
В полученном отчете я заметил, что он не соответствует тем дискам которые я проверял последними.
Поскольку в отчете нет даты проверки диска, то догадаться что это не последний отчет практически невозможно и, следовательно, можно придти к неверным выводам о текущем состоянии диска.
Я решил попробовать предлагаемый Вами метод, но с параметром -First 1, т.е. командлет имеет вид
Get-EventLog -LogName Application -Source chkdsk | select -First 1 -ExpandProperty Message
Все сработало и в результате я получил самый последний отчет о работе chkdsk и состоянии проверяемого диска.
Леонид, вообще, у командлета Select-Object свойства Last и First выводят последние и первые элементы массива. Поэтому -First 1 означает самое старое событие из имеющихся. Если вам надо с датами…. да просто адаптируйте команду для 7 — providername заменить на chkdsk, убрать номер события (он менялся в 8 и 10) и все дела.