CHKDSK.exe (check disk) — стандартная встроенная утилита Windows для проверки жестких дисков на наличие ошибок. Утилита chkdsk позволяет проверить носитель и файловую систему на физические и логические ошибки, найти поврежденные секторы (bad sectors) и исправить найденные проблемы. В этой статье мы рассмотрим особенности использования утилиты проверки диска chkdsk в Windows 10, а также возможность проверки диска из PowerShell с помощью командлета Repair-Volume.
Утилита chkdsk в Windows 10 поддерживает проверку дисков с файловыми системами NTFS, FAT32. Для ReFS томов она не применима, т.к. там используются другие механизмы обеспечения целостности данных.
Проверка диска в Windows 10 с помощью утилиты chkdsk
Чтобы проверить жесткий диск на ошибки, запустите командную строку с правами администратора. Выполните команду:
chkdsk E: /F /R
Данная команда запустит проверку диска E:\, найденные ошибки будут исправлены автоматически (/F), при наличии поврежденных секторов будет выполняться попытка восстановления информации (/R). Полная проверка диска может занять длительное время в зависимости от емкости носителя и количества файлов.
Утилита chkdsk последовательно выполняет четыре прохода, на которых выполняется проверка метаданных тома:
- Этап 1. Проверка файлов
- Этап 2. Проверка индексов
- Этап 3. Проверка дескрипторов безопасности
- Этап 4. Проверка секторов
После окончания проверки диска вы увидите подробную статистику диска, информацию о поврежденных секторах и файлах, предпринятых действиях по восстановлению.
Если утилита chkdsk не обнаружила проблем, появится надпись:
Windows has scanned the file system and found no problems.
No further action is required.
Вы не сможете выполнить онлайн сканирование и исправление ошибок на системном диске (C:\). При запуске команды chkdsk C: /F /R вы увидите, что диск заблокирован и его проверку можно выполнить только при следующей перезагрузке Windows:
Cannot lock current drive. Chkdsk cannot run because the volume is in use by another process. Would you like to schedule this volume to be checked the next time the system restarts? (Y/N).
Невозможно выполнить команду Chkdsk, так как указанный том используется другим процессом. Следует ли выполнить проверку этого тома при следующей перезагрузке системы?
Если вы хотите проверить диск при следующей загрузке компьютера, нажмите Y -> Enter . Появится сообщение “ This volume will be checked the next time the system restarts ”.
Теперь, если вы перезагрузите Windows, запустится проверка диска. Нужно дождаться ее окончания.
Если вы хотите проверить на ошибки диск в офлайн режиме (пропустить онлайн проверку), используйте опцию offlinescanandfix:
chkdsk E: /f /offlinescanandfix
При использовании опции offlinescanandfix для системного диска будет предложено запланировать проверку при перезагрузке.
Скорость офлайн проверки диска в Windows 10 существенно увеличена по сравнению с предыдущими версиями ОС.
/X — еще один полезный атрибут chkdsk. Он позволяет отключить том перед проверкой, принудительно закрыв все открытые файловые дескрипторы.
Также нужно обратить внимание на новую опцию chkdsk — /spotfix . Данный параметр применяется только для томов NTFS. Параметр spotfix позволяет существенно сократить время офлайн проверки диска с нескольких часов до секунд. Вместо полной проверки всего диска выполняется только поиск и исправление ошибок, зафиксированных ранее (во время обычной проверки диска) в файле $corrupt. В этом случае chkdsk сразу исправляет ошибки, не тратя время на сканирование диска. Это особенно полезно при проверке больших томов.
Не рекомендуется прерывать выполнение команды chkdsk. Однако, если вы руками остановите/завершите процесс chkdsk.exe, вы не повредите этим том (он не повредится сильнее, чем он был поврежден изначально). В любом случае через какое-то время рекомендуется выполнить полную проверку диска.
В Windows 10 обслуживание дисков (проверка и дефрагментация) выполняются автоматически по расписанию или во время бездействия компьютера. Информацию о статусе автоматической проверки дисков можно найти в меню Панель управления -> Центр безопасности и обслуживания -> Обслуживание -> Состояние диска (Control Panel -> System and Security -> Security and Maintenance -> Drive status). На скриншоте виден статус All drives are working properly .
Задание проверки диска, которое называется ProactiveScan, и запускается в рамках Windows 10 Automatic Maintance Task можно найти в Task Scheduler -> Microsoft -> Windows -> Chkdsk.
Также в современных билдах Windows 10 добавлена утилита диагностики хранилища StorDiag.exe (Storage Diagnostic Tool). Данная утилита выполняет сразу несколько операций проверки диска ( chkdsk , fsutil и fltmc ). Лог можно сохранить в виде ETW трейса. Например:
stordiag.exe -collectEtw -checkfsconsistency -out %userprofile%\desktop
Проверка ошибок на жестком диске с помощью PowerShell
В версии PowerShell 4.0 появился отдельный командлет для проверки диска Repair-Volume. Это командлет является PowerShell аналогом команды chkdsk.
Чтобы из PowerShell выполнить онлайн проверку жесткого диска на ошибки, выполните команду:
Repair-Volume –driveletter C –scan
Если нужно выполнить офлайн проверку и автоматически исправить ошибки, используйте параметр offlinescanandfix:
Repair-Volume –driveletter E –offlinescanandfix
Если ошибок на диске не найдено, вы увидите сообщение NoErrorsFound.
Также поддерживается быстрое исправление ошибок с помощью параметра spotfix (исправляются только ошибки, найденные при онлайн сканировании):
Repair-volume –driveletter E –spotfix
Можно проверить сразу несколько локальных дисков:
Repair-Volume -DriveLetter EHI –SpotFix
Через CIM сессии проверить диски на удаленных компьютерах:
Repair-Volume –driverletter c -scan –cimsession fs01,fs02,dc01
Также вы можете проверить SMART состояние жестких дисков из PowerShell с помощью командлетов из модуля Storage:
Get-PhysicalDisk | Sort Size | FT FriendlyName, Size, MediaType,SpindleSpeed, HealthStatus, OperationalStatus -AutoSize
Просмотр результата (лога) проверки диска Chkdsk в Windows 10
При проверке диска в онлайн режиме, вы видите в консоли полную статистику. Однако, если вы запланировали проверку диска с помощью опции offlinescanandfix, вы не увидите на экране загрузки Windows итоговый отчет chkdk. В Windows 10 на экране загрузки отображается только общий процент выполнения проверки диска.
В Windows 7 и более ранних версиях Windows, подробная информация о действиях, выполняемых утилитой chkdsk, отображалась прямо на экране загрузки ОС.
В Windows 10 вы можете получить информацию о всех действиях, которые были выполнены процедурой проверки дисков только из журнала событий Windows (Event Viewer).
Откройте Windows Event Viewer ( Eventvwr.msc ).
В открывшемся окне перейдите в раздел Windows Logs -> Application.
Щелкните ПКМ по разделу Application и выберите пункт меню Find. В строке поиска введите chkdsk и нажмите Find next.
Можно искать по источнику событий. Для поиска событий проверки диска при загрузке Windows нужно искать включить фильтр по событиям с источнико Wininit. Для событий проверки диска, инициированных пользователем смотрите источник Chkdsk.
Поиск должен перейти на последнее событие с Event ID 1001 и источником Wininit. На вкладке General будет содержаться подробный лог с данными последней проверки системного диска.
Checking file system on C:
The type of the file system is NTFS.
A disk check has been scheduled.
Windows will now check the disk.
Stage 1: Examining basic file system structure ...
129280 file records processed. File verification completed.
4917 large file records processed. 0 bad file records processed.
Stage 2: Examining file name linkage ...
184834 index entries processed. Index verification completed.
0 unindexed files scanned. 0 unindexed files recovered to lost and found.
Stage 3: Examining security descriptors ...
Cleaning up 799 unused index entries from index $SII of file 0x9.
Cleaning up 799 unused index entries from index $SDH of file 0x9.
Cleaning up 799 unused security descriptors.
Security descriptor verification completed.
27778 data files processed. CHKDSK is verifying Usn Journal...
36727760 USN bytes processed. Usn Journal verification completed.
Stage 4: Looking for bad clusters in user file data ...
129264 files processed. File data verification completed.
Stage 5: Looking for bad, free clusters ...
6493921 free clusters processed. Free space verification is complete.
CHKDSK discovered free space marked as allocated in the volume bitmap.
Windows has made corrections to the file system.
No further action is required.
41428991 KB total disk space.
15154156 KB in 90362 files.
75308 KB in 27779 indexes.
0 KB in bad sectors.
223839 KB in use by the system.
55376 KB occupied by the log file.
25975688 KB available on disk.
4096 bytes in each allocation unit.
10357247 total allocation units on disk.
6493922 allocation units available on disk.
Internal Info:
00 f9 01 00 88 cd 01 00 a9 dd 03 00 00 00 00 00 ................
ad 00 00 00 66 00 00 00 00 00 00 00 00 00 00 00 ....f...........
Windows has finished checking your disk.
Please wait while your computer restarts.
Вы можете получить информацию из событий проверки диска с помощью PowerShell. Следующая команда экспортирует 5 последних результатов проверки диска из журнала событий и сохранит их на рабочий стол в текстовый файл CHKDSK_SCAN.txt.
Get-EventLog -LogName Application -Source chkdsk | Select-Object -Last 5 -Property TimeGenerated,Message | Format-Table -Wrap| out-file "$env:userprofile\Desktop\CHKDSK_SCAN.txt"
Полученный файл можно открыть в любом текстовом редакторе.
Итак, мы получили журнал проверки дисков, выполненной при загрузке Windows 10. Если Windows запускает проверку при каждой загрузке ОС или проверка зависает, возможно стоит временно отключить автоматическую проверку дисков при загрузке Windows.