Поделиться через


Установка только проверенной операционной системы и HAL (для Windows XP и Windows Server 2003)

Примечание

Проверенные сборки были доступны в более ранних версиях Windows до Windows 10 версии 1803. Используйте такие средства, как Средство проверки драйверов и GFlags, для проверка кода драйвера в более поздних версиях Windows.

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

Этот подход, по сравнению с установкой полной проверенной сборки, обеспечивает следующие преимущества:

  • Драйверы получают преимущества отладочных проверок операционной системы и HAL. В то же время, поскольку используются бесплатные версии компонентов системы, отличные от операционной системы и HAL, влияние на производительность всей системы сводится к минимуму.

  • Одна установка (и, следовательно, один системный каталог, один набор исполняемых компонентов и один набор параметров реестра) может использовать установленную или бесплатную версию образа операционной системы и HAL, как определено во время загрузки.

Чтобы установить проверенные версии образа операционной системы и HAL, необходимо скопировать соответствующие файлы из проверенного носителя распространения в каталог %SystemRoot%\system32, используя новые уникальные имена файлов. Затем необходимо указать системе, чтобы она предложила вариант, который использует эти файлы во время запуска системы. При установке проверенных образов операционной системы и HAL в бесплатной установке следует учитывать следующие важные рекомендации:

  • Образ операционной системы и HAL должны быть синхронизированы в любое время. Поэтому при использовании проверенной версии образа операционной системы необходимо также использовать установленную версию HAL (и наоборот). Если образ операционной системы и hal не согласованы, система может быть недоступна для хранения.

  • Не перезаписывать бесплатные версии образа операционной системы и HAL, установленные во время установки бесплатной сборки. Перезапись бесплатных версий образа операционной системы и HAL может сделать систему неизменяемой и затруднить восстановление после ошибок. Поэтому при копировании проверенных версий операционной системы и HAL в каталог %SystemRoot%\system32 всегда следует использовать новые уникальные имена файлов.

  • Убедитесь, что используемый дистрибутив имеет тот же номер пакета обновления, что и в бесплатной системе. Например, если вы устанавливаете проверенный образ операционной системы и HAL в системе, для которой установлен пакет обновления 2 бесплатной сборки, убедитесь, что используемый дистрибутив также является пакетом обновления 2 (SP2).

Ниже приведены шаги по установке частично проверенной сборки.

Шаг 1. Определение файлов для установки

Первым шагом при установке частично проверенной сборки является определение версии образа операционной системы и файлов HAL, которые использовались для установки бесплатной сборки в системе.

На носителе распространения операционной системы на основе NT предоставляется несколько различных версий операционной системы и образов HAL. Эти различные версии поддерживают различные сочетания процессоров и другого системного оборудования. При установке программного обеспечения операционной системы процедура установки автоматически определяет, какой образ операционной системы и образ HAL следует использовать, и копирует соответствующие файлы из носителя распространения в каталог %SystemRoot%\system32 системы.

Установленный файл образа операционной системы зависит от того, поддерживается ли один или несколько процессоров, а также от того, поддерживается ли расширение физических адресов (PAE) (PAE активен в системах с более чем 4 ГБ физической памяти). Имена файлов на носителе распространения:

ntoskrnl.exe
Системы архитектуры Uniprocessor x86 с 4 ГБ физической памяти или меньше.

ntkrnlpa.exe
Системы архитектуры Uniprocessor x86 с поддержкой PAE.

ntkrnlmp.exe
Многопроцессорные системы архитектуры x86 с 4 ГБ физической памяти или меньше.

ntkrpamp.exe
Многопроцессорные системы архитектуры x86 с поддержкой PAE.

Кроме того, существует несколько разных имен для HAL.

Во время установки системы процедура установки определяет соответствующий образ операционной системы и HAL для установки в системе. Выбранные файлы копируются в каталог %SystemRoot%\system32 во время установки, используя фиксированные, хорошо известные имена. Использование этих фиксированных имен позволяет загрузчику легко находить эти файлы во время загрузки. Фиксированные имена для этих файлов:

ntoskrnl.exe
Образ операционной системы для систем x86 с 4 ГБ физической памяти или меньше.

ntkrnlpa.exe
Образ операционной системы для систем x86 с более чем 4 ГБ физической памяти.

hal.dll
Загружаемый образ HAL.

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

Чтобы установить проверенный образ операционной системы и HAL, необходимо сначала определить исходные имена образов, которые были скопированы в систему во время установки системы. Для этого изучите файл %SystemRoot%\repair\setup.log. Это скрытый файл, поэтому необходимо изменить его атрибуты, прежде чем его можно будет просмотреть с помощью команды dir .

В файле setup.log перечислены файлы, которые были скопированы с носителя распространения в каталог %SystemRoot%\system32 во время установки системы.

Ниже приведен пример файла setup.log.

[Paths]
TargetDirectory = "\WINNT"
TargetDevice = "\Device\Harddisk0\Partition1"
SystemPartitionDirectory = "\"
SystemPartition = "\Device\Harddisk0\Partition1"
[Signature]
Version = "WinNt5.1"
[Files.SystemPartition]
NTDETECT.COM = "NTDETECT.COM","f41f"
ntldr = "ntldr","3e8b5"
arcsetup.exe = "arcsetup.exe","379db"
arcldr.exe = "arcldr.exe","2eca9"
[Files.WinNt]
\WINNT\system32\drivers\kbdclass.sys = "kbdclass.sys","e259"
\WINNT\system32\drivers\mouclass.sys = "mouclass.sys","7e78"
\WINNT\system32\drivers\uhcd.sys = "uhcd.sys","10217"
\WINNT\system32\drivers\usbd.sys = "usbd.sys","5465"
(...several similar lines omitted...)
\WINNT\system32\framebuf.dll = "framebuf.dll","10c84"
\WINNT\system32\hal.dll = "halmacpi.dll","2bedf"
\WINNT\system32\ntkrnlpa.exe = "ntkrpamp.exe","1d66a6"
\WINNT\system32\ntoskrnl.exe = "ntkrnlmp.exe","1ce5c5"
\WINNT\inf\mdmrpci.inf = "mdmrpci.inf","96a3"

В примере файла setup.log видно, что во время установки в каталог \winnt\system32 (%SystemRoot%\system32) были скопированы два файла образа операционной системы. Файловый ntkrpamp.exe копируется из среды распространения в ntkrnlpa.exe, а ntkrnlmp.exe файла — в ntoskrnl.exe. В этом примере также видно, что файл HAL (с фиксированным именем hal.dll в каталоге %SystemRoot%\system32) изначально назывался halmacpi.dll.

Предупреждение Некоторые файлы HAL имеют обманчиво похожие имена. Например, halacpi.dll и halapic.dll — это два часто используемых hal. Будьте внимательны, чтобы использовать правильную версию HAL для системы. Если выбрать неправильный HAL, система не будет загружаться.

Шаг 2. Копирование проверенных файлов

Теперь, когда вы знаете имена файлов, которые использовались во время установки системы, можно скопировать проверенные версии этих файлов в систему. Найдите файлы, которые вы определили в комплекте с проверенным дистрибутивом. Затем скопируйте эти файлы в каталог %SystemRoot%\system32 системы, предоставив им новые уникальные имена файлов. Копии этих файлов должны соответствовать соглашению об именовании версии 8.3. Один из способов обеспечить уникальные имена файлов, совместимые с 8.3, — переименовать типы файлов из исходных типов файлов (.dll или .exe) в CHK-файлы при их копировании. Таким образом, используя пример на шаге 1, вы скопируете файлы из проверенного комплекта рассылки следующим образом:

Если исходное имя файла в проверяемом дистрибутиве: Скопируйте его в следующий файл в папке %SystemRoot%\system32:

ntkrnlmp.exe

ntkrnlmp.chk

ntkrpamp.exe

ntkrpamp.chk

halmapic.dll

halmapic.chk

Некоторые файлы в проверенном дистрибутиве предоставляются в сжатом виде. Эти файлы обозначены символом подчеркивания в качестве последнего символа в их типе файлов. Например, если вы ищете файл halapic.dll в комплекте распространения сборки, вы найдете файл halapic.dl_, который является правильным файлом, но в сжатом виде.

Чтобы распаковка сжатых файлов из проверенного дистрибутива, используйте служебную программу Expand (%SystemRoot%\system32\expand.exe). Например, чтобы развернуть halapic.dl_ и присвоить имя развернутого файла halapic.chk, можно использовать следующую команду в окне командной строки:

> expand halapic.dl_ halapic.chk

Шаг 3. Редактирование boot.ini

После копирования проверенных файлов в каталог %SystemRoot%\system32 необходимо создать параметр времени загрузки, позволяющий системе начать использовать эти проверенные файлы. Для этого измените файл boot.ini.

Общие инструкции см. в разделе Изменение файла boot.ini.

В этом конкретном случае необходимо создать новый параметр времени загрузки, который позволяет запускать систему с установленной версией образа операционной системы и HAL.

Найдите строку в разделе [операционные системы] boot.ini, которая ссылается на вашу установку Windows. Создайте его вторую копию и добавьте следующие параметры в конец скопированной строки:

/kernel=KernelFile /hal=HalFile 

Где KernelFile — имя проверенной версии файла образа операционной системы, скопированного ранее из проверенного комплекта дистрибутива, а HalFile — имя проверенной версии HAL, скопированной ранее из проверенного комплекта рассылки.

Если строка, описывающая операционную систему, содержит параметр /PAE , убедитесь, что используется установленная версия образа операционной системы с поддержкой PAE. Если в строке, описывающей операционную систему, нет параметра /PAE , используйте установленную версию образа операционной системы без поддержки PAE.

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

Ниже приведен пример такого файла boot.ini:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Microsoft Windows 2000 Professional" /fastdetect
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows 2000 Checked" /fastdetect /kernel=ntoskrnl.chk /hal=halacpi.chk

Если вы используете проверенную сборку с отладчиком ядра, следует также добавить соответствующие параметры, связанные с отладкой. (Параметры /kernel и /hal не позволяют автоматически включить отладку.) Дополнительные сведения см. в разделе Изменение файла boot.ini.

После внесения изменений сохраните изменения и выйдите из редактора. При следующей загрузке этой системы будет отображаться новый параметр загрузки операционной системы, позволяющий выбрать выбранный образ операционной системы и HAL.

Установка дополнительных проверенных файлов

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

При замене бесплатных драйверов проверенными аналогами невозможно легко предоставить альтернативные образы для компонентов драйвера, предоставляемых системой. Таким образом, при замене бесплатных драйверов проверенными драйверами в вашей системе будут использоваться проверенные драйверы при запуске бесплатной или проверенной версии образа операционной системы и HAL. Таким образом, вы можете переименовать (или скопировать) исходные бесплатные версии всех драйверов, которые вы заменяете их проверенными аналогами, чтобы вы могли восстановить бесплатные драйверы позже.

Наконец, обратите внимание, что при изменении одного из стандартных файлов, которые существуют в одном из системных каталогов (например, %SystemRoot%\system32), защита файлов Windows (WFP) восстанавливает этот файл в исходное состояние, если не отключается ВПП. Если отладчик подключен к системе, вы можете временно отключить ПППП, изменив следующее значение реестра:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
SFCDisable:REG_DWORD:2

При установке параметра SFCDisable значение 2 отключается для следующей загрузки (только). Значение 0 (значение по умолчанию) включает функцию ВПП. Описание функций МПП см. в Microsoft Windows SDK.