Особенности работы средства проверки системных файлов (SFC.exe) в среде Windows RE

OSzone.net » Microsoft » Windows 7 » Проблемы и решения » Особенности работы средства проверки системных файлов (SFC.exe) в среде Windows RE
Автор: Аркадий Пилипенко aka okshef
Иcточник: www.oszone.net
Опубликована: 08.05.2010

Средство проверки системных файлов позволяет проверить версии всех защищенных файлов. Если при проверке системных файлов обнаруживается, что защищенный файл был изменен, то он заменяется его исходной версией.

SFC в среде Windows

Для выполнения подобной проверки в Windows достаточно запустить командную строку с правами администратора и выполнить:

sfc /scannow

Ниже приводится таблица с синтаксисом утилиты и с пояснением значений используемых ключей.

Таблица 1 - Синтаксис утилиты sfc.exe

SFC [/SCANNOW] [/VERIFYONLY] [/SCANFILE=<файл>] [/VERIFYFILE=<файл>]

[/OFFWINDIR=<автономная папка Windows> /OFFBOOTDIR=<автономная папка загрузки>]

/SCANNOWПроверка целостности всех защищенных системных файлов и восстановление, по возможности, проблемных файлов.
/VERIFYONLYПроверка целостности всех защищенных системных файлов. Восстановление файлов не выполняется.
/SCANFILEПроверка целостности указанного файла и его восстановление при обнаружении проблем. В параметре <файл> следует указать полный путь
/VERIFYFILEПроверка целостности файла, полный путь к которому указан в параметре <файл>. Восстановление файлов не выполняется.
/OFFBOOTDIRРасположение автономного каталога загрузки для автономного восстановления
/OFFWINDIRРасположение автономного каталога Windows для автономного восстановления
например:
sfc /SCANNOW
sfc /VERIFYFILE=c:\windows\system32\kernel32.dll
sfc /SCANFILE=d:\windows\system32\kernel32.dll /OFFBOOTDIR=d:\ /OFFWINDIR=d:\windows
sfc /VERIFYONLY


SFC в среде Windows RE

Взяться за написание статьи подвигло непонятное поведение утилиты sfc. exe в среде Windows RE при загрузке с установочного диска или диска восстановления, а именно предложение перезагрузить систему и выполнить проверку еще раз.

Увеличить рисунок
Увеличить рисунок

Рисунок 1 – Запуск утилиты в среде восстановления без ключей и требование перезагрузки

Подобное поведение имеет вполне логичное объяснение: для среды Windows RE раздел диска, с находящейся на ней операционной системой, является автономным каталогом. Следовательно, запуск утилиты с ключами /OFFBOOTDIR и /OFFWINDIR обязателен. Дальше выясним значения этих ключей.

Расположение и буквы разделов в проводнике Windows или в оснастке управления дисками могут отличаться от букв, присвоенных разделам в среде восстановления. Обратите внимание, что на рисунках ниже раздел с системой имеет букву С.

Увеличить рисунок
Увеличить рисунок

Рисунок 2 – Раздел с системой в проводнике Windows

Увеличить рисунок
Увеличить рисунок

Рисунок 3 – Раздел с системой в оснастке "Управление дисками"

Вадим Стеркин предложил замечательный способ определения букв разделов в среде восстановления. Есть и другой - воспользоваться утилитой DISKPART. Загрузитесь в среду восстановления с установочного диска Windows, войдите в командную строку и выполните последовательно:

DISKPART
List disk
Sel disk 0
Detail disk

Комментарий к командам:

Увеличить рисунок
Увеличить рисунок

Рисунок 4 – Определение буквы системного раздела и выполнение проверки в среде Windows RE

Буква того раздела, на котором установлена Windows 7, нужна будет на следующем шаге. В нашем случае это буква Е (рис. 4).

Обязательно завершите работу с DISKPART:

EXIT

Наконец, выполним проверку целостности системных файлов:

set WINDOWS_TRACING_LOGFILE=X:\CBS.log
sfc /scannow /OFFBOOTDIR=E:\ /OFFWINDIR=E:\windows

Первая команда задает расположение для файла журнала утилиты, который не создается автоматически в среде восстановления, а вторая - запускает сканирование. В значении обоих ключей второй команды используется одна и та же буква

Будьте внимательны! Если в синтаксисе команды или в определении буквы системного раздела будут допущены ошибки, проверка не сможет быть выполнена.

Большое спасибо моему коллеге Vancouver, модератору форума Windows 7, за помощь в подготовке этой статьи.


Ссылка: http://www.oszone.net/12548/SFC_in_WinRE