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


Установка только проверенной операционной системы и HAL (для Windows Vista и более поздних версий)

Примечание

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

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

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

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

Совет Для 64-разрядных версий Windows Vista и более поздних версий этот процесс прост. Если у вас есть пакет драйверов Windows (WDK), можно использовать образ операционной системы и файлы HAL из каталога Debug\ в WDK. См . раздел Установка проверенной сборки. Существует только одна версия каждой из них для amd64 или ia64. Имена файлов ntkrnlmp.exe и Hal.dll. Если у вас есть WDK для используемой версии Windows, можно перейти к шагу 2. Копирование проверенных файлов.

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

Определение имени установленного HAL

  1. Откройте файл %SystemRoot%\Inf\setupapi.dev.log и найдите hal.dll.

    Вы должны найти строку, например TargetFilename — "hal.dll".

  2. В том же разделе файла журнала найдите соответствующее имя sourceFilename. Имя справа от SourceFilename — это имя файла HAL, который необходимо скопировать из проверенной сборки.

Следующий пример из файла setupapi.dev.log. SourceFilename имеет halmacpi.dll:

{FILE_QUEUE_COPY}
   CopyStyle      - 0x09180000
   SourceRootPath - 'C:\Windows\System32\DriverStore\FileRepository\hal.inf_0c52392f'
   SourceFilename - 'halmacpi.dll'
   TargetDirectory- 'C:\Windows\system32'
   TargetFilename - 'hal.dll'
   SourceDesc     - 'windows cd'
{FILE_QUEUE_COPY exit(0x00000000)}

Определение имени установленного файла образа операционной системы

Для 64-разрядных версий Windows Vista и более поздних версий имя файла ntkrnlmp.exe.

Для 32-разрядных версий Windows Vista можно использовать следующую процедуру, чтобы определить, установлена ли у вас версия однопроцессора или многопроцессора.

  1. Откройте Просмотр событий в консоли управления компьютером (compmgmt.msc).

  2. Найдите идентификатор события 6009 в системном журнале.

    Свойства для этого события указывают, установлен ли у вас один процессор или многопроцессорная версия образа операционной системы.

Например, ниже показана бесплатная сборка операционной системы с поддержкой многопроцессоров.

Microsoft (R) Windows (R) 6.00. 6001 Service Pack 1 Multiprocessor Free.

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

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

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

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

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

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

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

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

ntkrnlmp.exe

ntkrnlmp.chk

ntkrpamp.exe

ntkrpamp.chk

halmapic.dll

halmapic.chk

hal.dll

hal.chk

Шаг 3. Изменение параметров загрузки с помощью BCDEdit

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

Совет Вы можете скопировать существующую загрузочную запись, чтобы создать новую загрузочную запись, которую можно изменить для использования проверенного образа операционной системы и HAL. Например, чтобы создать копию текущей загрузочной записи, используйте следующую команду: bcdedit /copy {current} /d "Windows 8.1 частично проверенной сборки". Общие инструкции по использованию BCDEdit см. в статье Средства для изменения параметров загрузки для тестирования и отладки и редактированияпараметров загрузки драйверов.

Примечание Перед настройкой параметров BCDEdit может потребоваться отключить или приостановить BitLocker и безопасную загрузку на компьютере.

Чтобы настроить частично установленную сборку в Windows Vista и более поздних версиях, используйте команду BCDEdit /set , а также параметры ядра и hal .

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

bcdedit /set {44a942bf-d6ee-11e3-baf8-000ffee4f6cd} kernel ntkrnlmp.chk
bcdedit /set {44a942bf-d6ee-11e3-baf8-000ffee4f6cd} hal hal.chk

Необходимо также настроить компьютер для отладки ядра. В частности, необходимо включить загрузочную запись для отладки загрузки BCDEdit /bootdebug. Если отладка загрузки не включена и к компьютеру не подключен отладчик ядра, компьютер будет загружаться в среде восстановления Windows при выборе этой новой записи загрузки.

bcdedit /bootdebug {44a942bf-d6ee-11e3-baf8-000ffee4f6cd} on

Чтобы просмотреть результаты команд, введите bcdedit /enum. Параметр /enum выводит список всех записей загрузки. Например, следующая запись загрузки была изменена для использования проверенных версий ядра и HAL. Кроме того, необходимо включить загрузочную запись для отладки загрузки (bcdedit /bootdebug {ID} on).

## Windows Boot Loader
-------------------
identifier              {44a942bf-d6ee-11e3-baf8-000ffee4f6cd}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows 8.1 Partial Checked Build
locale                  en-US
inherit                 {bootloadersettings}
recoverysequence        {44a942bd-d6ee-11e3-baf8-000ffee4f6cd}
integrityservices       Disable
recoveryenabled         Yes
bootdebug               Yes
testsigning             Yes
allowedinmemorysettings 0x15000075
osdevice                partition=C:
systemroot              \Windows
kernel                  ntkrnlmp.chk
hal                     hal.chk
resumeobject            {44a942bb-d6ee-11e3-baf8-000ffee4f6cd}
nx                      OptIn
bootmenupolicy          Standard
debug                   Yes

Шаг 4. Перезагрузка компьютера

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

Чтобы убедиться, что сборка проверка выполняется, выполните следующую процедуру.

  1. Откройте Просмотр событий в консоли управления компьютером (compmgmt.msc).

  2. Найдите идентификатор события 6009 в системном журнале.

    Свойства этого события указывают, установлена ли у вас бесплатная или проверенная сборка образа операционной системы.

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

Microsoft (R) Windows (R) 6.00. 6001 Service Pack 1 Multiprocessor Checked.

Настройка отладки (режим ядра и пользовательский режим)

Средства отладки для Windows