Замена chkdsk в PowerShell для исправления ошибок диска


В PowerShell исправить ошибки на диске можно с помощью командлета Repair-Volume, который является преемником утилиты chkdsk.

Исправление повреждённой файловой системы старым способом

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

С 1981 года chkdsk является встроенной утилитой Microsoft для сканирования и исправления диска. Под «исправлением» я не имею в виду, что он может физически восстановить сам диск, а означает проверку целостности файловой системы и исправление любых логических ошибок файловой системы.

Хотя chkdsk по-прежнему доступен в Windows сегодня, в Windows Server 2012 в PowerShell был представлен командлет Repair-Volume.

Repair-Volume

Как следует из названия командлета, Repair-Volume выполняет ремонт тома. Он поставляется с опциями, соответствующими существующим возможностям chkdsk.

ПРИМЕЧАНИЕ. Repair-Volume необходимо запускать из сеанса с повышенными привилегиями (также известного как администратор).

Связанная статья: Как запустить PowerShell с правами администратора

Проверка диска на ошибки без их исправления

Чтобы предотвратить нарушение доступности тома, вы можете сканировать том, не пытаясь его восстановить.

Repair-Volume -DriveLetter C -Scan

Вместо «C» укажите букву диска, который вы хотите проверить на ошибки.


Все обнаруженные повреждения добавляются в системный файл $corrupt. Это эквивалентно запуску

chkdsk /scan

Если ошибок не найдено, то будет выведено сообщение:

NoErrorsFound

Если имеются ошибки диска, то вы увидите сообщение о ремонте тома файловой системы:

Repairing volume [Running]

В моём случае я получил сообщение о том, что сканирование завершилось неудачно:

Repair-Volume: The scan failed
Activity ID: {ca1936ba-7134-4000-9c8a-35f461fe1c87}

Также пришло уведомление:

Перезагрузите, чтобы устранить ошибки диска
Щёлкните, чтобы перезагрузить компьютер

При следующем включении компьютера выводится сообщение, что будет проверен диск, если вы хотите пропустить проверку и исправление ошибок на диске, то нажмите любую клавишу.

Началась проверка диска:

Всего было пройдено три стадии проверки диска:

При повторном запуске Repair-Volume ошибок найдено не было.

Как устранить проблемы, зарегистрированные в системном файле $corrupt

Так что же делать, если при сканировании обнаруживаются ошибки и они добавлены в системный файл $corrupt? Вы можете использовать опцию -SpotFix для отключения тома на время, которое необходимо для исправления выявленных ошибок.

Repair-Volume -DriveLetter C -SpotFix

Это эквивалентно запуску

chkdsk /spotfix

Отключение тома для полного сканирования и исправления ошибок

Если у вас серьёзные проблемы с повреждением файловой системы, то попробуйте полное сканирование и исправление любых ошибок, найденных в процессе сканирования. Программа при этом отключит диск, что сделает его использование невозможным на время сканирования. Это требует больше всего времени, но также является наиболее эффективным.

Repair-Volume -DriveLetter C -OfflineScanAndFix

Это эквивалентно запуску


chkdsk /f

Восстановите несколько томов с помощью одной команды

Если вы хотите сканировать более одного тома, вы можете указать несколько букв дисков в параметре -DriveLetter. Например, если на вашем компьютере есть диски C, D и E, укажите CDE:

Repair-Volume -DriveLetter CDE -Scan

Как восстановить тома, которым не присвоена буква диска

Не всем томам назначен буквенный диск. Например, у вас может быть системный раздел или раздел восстановления. Вы можете запустить Repair-Volume для этих томов с помощью параметра -FileSystemLabel.

Чтобы узнать, FileSystemLabel, выполните следующую команду:

Get-Volume

Вывод:

DriveLetter FriendlyName             FileSystemType DriveType HealthStatus OperationalStatus SizeRemaining      Size
----------- ------------             -------------- --------- ------------ ----------------- -------------      ----
            System Reserved          NTFS           Fixed     Healthy      OK                    178.47 MB    550 MB
C           Contoso - C              NTFS           Fixed     Healthy      OK                     41.28 GB  98.89 GB
                                     NTFS           Fixed     Healthy      OK                     89.03 MB    481 MB
                                     FAT32          Fixed     Healthy      OK                      70.8 MB     96 MB
D           Contoso - D              NTFS           Fixed     Healthy      OK                     29.13 GB  67.68 GB
E           Contoso - E              NTFS           Fixed     Healthy      OK                    148.44 GB 465.76 GB
F           Archives                 NTFS           Fixed     Healthy      OK                    324.13 GB 465.76 GB

В столбце FriendlyName вы увидите имя, которое нужно указать с опцией -FileSystemLabel.


Запуск исправления:

Repair-Volume -FileSystemLabel "System Reserved" -OfflineScanAndFix

В этом примере том System Reserved переводится в автономный режим и устраняются все проблемы. Этому тому не присвоены буквы дисков. Первая команда Get-Volume даёт обзор томов на локальном компьютере. Как видно из выходных данных, том с меткой «System Reserved» не имеет букв дисков. Затем командлет Repair-Volume использует переключатель -FileSystemLabel для указания тома «System Reserved», а переключатель -OfflineScanAndFix указывает, что том должен быть переведён в автономный режим и просканирован полностью.

Как восстановить тома на удалённом компьютере

Если вы можете установить сеанс CIM на удалённый компьютер, и затем вы можете использовать параметр -CIMSession в Repair-Volume для удалённого выполнения действий по восстановлению.

Доступны не все функции chkdsk

Хотя, возможно, самые популярные функции chkdsk доступны с Repair-Volume, беглый взгляд на

chkdsk /?

покажет некоторые менее используемые и более детализированные элементы управления, которые НЕ доступны в Repair-Volume. Однако для большинства стандартных случаев использования Repair-Volume является адекватной заменой PowerShell традиционному инструменту командной строки chkdsk.

Опции CHKDSK

Использование:

CHKDSK [том[[путь]имя_файла]]] [/F] [/V] [/R] [/X] [/I] [/C] [/L[:размер]] [/B] [/scan] [/spotfix]

Опции:

  том                 Буква диска (с двоеточием после нее),
                      точка подключения или имя тома.
  имя_файла            Файлы, проверяемые на наличие
                      фрагментации (только FAT/FAT32).
  /F                  Исправляет ошибки на диске.
  /V                  Для FAT/FAT32: выводит полный путь и имя каждого файла
                      на диске.
                      Для NTFS: выводит сообщения об очистке (при их наличии).
  /R                  Ищет поврежденные сектора и восстанавливает уцелевшую
                      информацию (требует /F, когда не указан параметр /scan).
  /L:size           Только для NTFS:  задает размер файла журнала (в КБ).
                      Если размер не указан, выводится
                      текущее значение.
  /X                  Предварительно отключает том (при необходимости).
                      Все открытые дескрипторы для этого тома станут
                      недопустимы (требует /F)
  /I                  Только для NTFS: выполняет менее строгую проверку элементов
                      индекса.
  /C                  Только для NTFS: пропускает проверку циклов внутри
                      структуры папок.
  /B                  Только для NTFS: повторно оценивает поврежденные кластеры в томе
                      (требует /R).
  /scan               Только для NTFS: выполняет оперативное сканирование тома
  /forceofflinefix    Только для NTFS (необходимо использовать со "/scan"):
                      обходит восстановление в подключенном состоянии; все найденные неполадки
                      добавляются в очередь для восстановления в автономном режиме (т. е. "chkdsk /spotfix").
  /perf               Только для NTFS (необходимо использовать со "/scan")
                      использует больше системных ресурсов для скорейшего выполнения
                      сканирования. Это может отрицательно повлиять
                      на производительность других задач, выполняемых в системе.
  /spotfix            Только для NTFS: точечно исправляет ошибки в томе
  /sdcleanup          Только для NTFS: собирает ненужные данные дескриптора безопасности в качестве
                      мусора (требует /F).
  /offlinescanandfix  Запускает автономную проверку и исправление тома.
  /freeorphanedchains Только для FAT/FAT32/exFAT: освобождает потерянные цепочки кластеров
                      вместо восстановления их содержимого.
  /markclean          Только для FAT/FAT32/exFAT: помечает том как чистый, если не
                      были обнаружены повреждения, даже если параметр /F не задан.

Параметр /I или /C сокращает время выполнения Chkdsk за счёт пропуска некоторых проверок тома.


Рекомендуется Вам:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *