Причины несовместимости

В большинстве статей Microsoft на эту тему указывается на существование только лишь двух источников несовместимости - контроллера накопителей и HAL (Hardware Abstraction Layer). Правда, в части документов упоминается, что проблемы могут быть также вызваны особенностями реализации BIOS.

Несовместимость по контроллеру накопителей обычно приводит к «выпадению» Windows в синий экран с сообщением INACCESSIBLE_BOOT_DEVICE. Если ограничить рассмотрение только системами с ATA/SATA-накопителями, то решение этой проблемы не составит труда. Достаточно перед созданием образа в Диспетчере устройств на эталонном компьютере заменить конкретный драйвер для контроллера накопителей, скажем VIA Bus Master IDE Controller, на Standart Dual Channel PCI IDE Controller (в русском варианте - «Стандартный двухканальный контроллер PCI IDE»). Не надо даже перезагружать Windows, чтобы изменения вступили в силу - можно сразу переходить к копированию системы. Тем же, кому необходимо включить в процесс клонирования компьютеры с дисковыми интерфейсами, отличными от ATA, например SCSI, придется освоить использование Sysprep-сценариев, в частности научиться добавлять записи в секцию [SysprepMassStorage].

Несовместимость по HAL в типичном случае приводит к прерыванию загрузки Windows без каких-либо сообщений – вы видите только пустой экран, в левом верхнем углу которого одиноко мерцает курсор. Базовая рекомендация Microsoft по решению этой проблемы - иметь отдельный образ для каждой версии HAL.

Что такое HAL и как с ним бороться?

Узнать текущую версию HAL на компьютере с уже установленным Windows проще всего, открыв Диспетчер устройств и проверив название драйвера устройства Компьютер. Последнее обстоятельство наводит на мысль, что HAL - это просто один из системных драйверов и с ним можно обращаться так же, как с прочими драйверами. Скажем, перед созданием образа просто сменить на эталонной машине драйвер для устройства Компьютер на нужный.

Увы, все не так просто. На самом деле HAL играет роль прослойки между компьютерным железом и драйверами, при этом последние обращаются к оборудованию не напрямую, а именно посредством HAL, что предопределяет его выделенную роль в системе. Выбор нужной версии HAL происходит на ранних стадиях установки Windows, поэтому заменить его впоследствии через Диспетчер устройств не всегда возможно - если Win 2000 ограничений на смену HAL не накладывает, то XP/2003 предлагает существенно урезанный список вариантов замены. При большом желании можно, разобравшись с документацией, организовать принудительную смену HAL на уровне файлов. Проще всего это сделать путем редактирования файла boot.ini - ключи /HAL и /kernel позволяют выбрать нужную версию HAL на стадии загрузки Windows.

Составим список, в котором будут присутствовать официальные названия версий HAL, обычно используемые в документации, и соответствующие им названия драйвера устройства Компьютер для английской и русской версий Windows:

Non-ACPI PIC HAL

Standard PC

Стандартный компьютер

ACPI PIC HAL

Advanced Configuration and Power Interface (ACPI) PC

Компьютер с ACPI

ACPI APIC UP HAL

ACPI Uniprocessor PC

Однопроцессорный компьютер с ACPI

ACPI APIC MP HAL

ACPI Multiprocessor PC

Многопроцессорный компьютер с ACPI

Приведенный список намного короче фигурирующего в документации Microsoft. Дело в том, что в него включены только те аппаратные платформы, которые реально имеют широкое распространение (или имели в недавнем прошлом).

Кстати, расположенная вверху списка платформа non-ACPI APIC на данный момент времени безнадежно устарела. Типичными ее представителями были компьютеры на базе Pentium без поддержки ACPI, реально к этой же категории следует отнести самые первые системы, в которых ACPI была реализована (первые Celeron’ы), но сделано это было зачастую настолько “криво”, что функцию ACPI приходилось просто выключать. Компьютеры без поддержки ACPI обладали рядом существенных ограничений, наиболее видимым из которых была невозможность совместного использования одного прерывания несколькими устройствами, что при настройке «навороченных» конфигураций вызывало проблемы с обеспечением каждого устройства отдельным прерыванием.

Систем с ACPI PIC HAL в эксплуатации находится еще довольно много (большинство машин с Socket 370, часть компьютеров с Socket A), но на данный момент наиболее представленный вариант однопроцессорной системы - это ACPI APIC UniProcessor (UP). Это обстоятельство подчеркнуто специально, потому что в ряде документов Microsoft говорится, что ACPI APIC UP соответствует многопроцессорным машинам с одним вставленным процессором. Все действительно так, но сейчас под эту версию HAL выпускается большая часть обычных однопроцессорных плат. Ну и, наконец, ACPI APIC MP HAL соответствует многопроцессорным компьютерам, как «настоящим», так и системам с поддержкой Hyper-threading.

Клонирование на практике

Для создания клона потребуются:

дистрибутив Microsoft Windows XP;

дистрибутив Microsoft Office 2003;

загрузочный диск Acronis TrueImage (для создания образа раздела);

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

Для начала в BIOS“е ставим загрузку с CD/DVD-привода.

На «чистом» компьютере устанавливаем операционную систему, ставим «офис», все необходимые программы и сервис паки.

Теперь нужно подготовить систему к клонированию.

1. Меняем котроллер дисков на «Стандартный двухканальный контроллер PCI IDE» («Standart Dual Channel PCI IDE Controller»). Для этого из архива C:WindowsDriver Cachei386driver.cab извлекаем файлы atapi.sys, intelide.sys, pciide.sys, pciidex.sys в каталог C:WindowsSystem32Drivers. Если один или несколько файлов уже есть в каталоге, можно его (их) заменить или оставить старые. Далее следует скачать и запустить файл mergeide.reg (7 Кб, http://mdforum.dynu.com/files/XP/mergeide.reg). Он добавляет в реестр информацию обо всех доступных Windows типах ide-контроллеров.

2. Убираем ветку реестра HKEY_LOCAL_MACHINESYSTEM MountedDevices, чтобы избежать проблем с сопоставлением сигнатур разделов.

3. Копируем с дистрибутива в C:WindowsSystem32 несколько разных hal-ов, чтобы выбирать их на этапе первой загрузки. С диска [cd]:I386, по маске hal*.dl_, распаковываем hal*.dll в каталог C:WindowsSystem32. (У меня получился список: hal.dll, halapic.dll, halmps.dll, halaacpi.dll, halacpi.dll, halmacpi.dll.)

5. Правим файл C:oot.ini, после чего он должен получиться примерно такого содержания:

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(1)WINDOWS

[operating systems]

multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Microsoft Windows XP Professional" /fastdetect

multi(0)disk(0)rdisk(0)partition(1)WINDOWS="Standart PC (Non-ACPI PIC HAL)" /fastdetect /hal=hal.dll

multi(0)disk(0)rdisk(0)partition(1)WINDOWS="PC One-CPU & MPS (Non-ACPI APIC UP HAL)" /fastdetect /hal=halapic.dll

multi(0)disk(0)rdisk(0)partition(1)WINDOWS="PC Uni-CPU & MPS (Non-ACPI APIC MP HAL)" /fastdetect /hal=halmps.dll

multi(0)disk(0)rdisk(0)partition(1)WINDOWS="PC One-CPU & ACPI (ACPI APIC UP HAL)" /fastdetect /hal=halaacpi.dll

multi(0)disk(0)rdisk(0)partition(1)WINDOWS="PC One-CPU & ACPI (ACPI APIC HAL)" /fastdetect /hal=halacpi.dll

multi(0)disk(0)rdisk(0)partition(1)WINDOWS="PC Uni-CPU & ACPI (ACPI APIC MP HAL)" /fastdetect /hal=halmacpi.dll

6. На дисках c дистрибутивом Windows XP ищем файл [cd]:SupportToolsdeploy.cab. Файлы setupcl.exe, setupmgr.exe, sysprep.exe из этого архива распаковываем в папку C:Sysprep.

Запускаем Диспетчер установки setupmgr.exe. (он помогает подготовить конфигурацию и файл ответов для автоматизированной предустановки Windows на компьютер.) Создаем новый файл ответов и выбираем установку Sysprep. Использовать полностью автоматическую установку или нет - решать вам. Далее заполняем все поля для файла ответов и сохраняем файл с именем sysprep.inf в каталоге C:Sysprep.

7. В CD/DVD-привод ставим загрузочный диск Acronis True Image.

8. Запускаем sysprep.exe. В появившемся окне ставим галочку Мини-установка, и режим завершения работы - Перезагрузка. Жмем кнопку Запечатать компьютер.

Sysprep скидывает идентификатор SID и готовит мини-установку, в результате компьютер перезагружается.

9. Загрузка должна пройти с CD/DVD-привода, соответственно должен загрузиться True Image. Осталось сделать образ раздела, на котором установлен эталон системы.

И наконец, можно перенести образ (файл *.tib) на CD/DVD-диск.

(Подробную информацию о том, как этот диск сделать boot cd и поместить туда загрузчик Acronis (c пунктом меню - загрузка и восстановление, используя Acronis True Image), можно найти на сайте http://bootcd.narod.ru.)

Процесс восстановления образа на (новый) компьютер достаточно прост:

запускаемся с загрузочного диска Acronis True Image;

восстанавливаем образ системного раздела на (новый) жесткий диск;

перезагружаем компьютер.

Последующая первая загрузка системы с восстановленного раздела занимает примерно 10-15 минут (включает выбор одного из вариантов загрузки, которые прописывали в файле boot.ini, процедуру смены SID, фазу определения оборудования, заполнение serial number, определение имени компьютера и одну перезагрузку).

Возможные проблемы и их решение

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

обновите BIOS до последней версии;

при наличии в настройках CMOS переключения PIC/APIC воспользуйтесь им для установки правильной раскладки;

при наличии режима Hyper-threading - выключите его.

Тем не менее даже после выполнения всех этих действий какая-то часть ваших компьютеров (обычно очень небольшая) может отказаться участвовать в процессе клонирования. Microsoft в своей документации склонен объяснять такие случаи особенностями реализации BIOS. Возможно, правильнее всего было бы просто избавиться от таких компьютеров (или их системных плат).

Дмитрий РЯБЧЕВСКИХ, системный администратор районного информационно-методического центра, село Елово, Пермская область