Итак,
Инструкция "от китайцев" 1. Вначале готовим образ образцовой системы со всеми твиками и программами или без этого - это уж как душа пожелает
Мнения на чем готовить - на реальном компе или на виртуалке у китайских товарищей - гуру универсальных образов - разделились, так что решать вам. Я пробовал оба варианта, но вариант на виртуалке мне больше нравится - можно отключить почти ВСЕ железо, включая привод CD - после первого этапа копирования файлов, когда комп уходит в перезагрузку, удаляете его из профиля оборудования, остается только память, процессор и жесткий диск
Да и фича подключения виртуального диска как логического в систему очень упрощает редактирование настраиваемой системы офф-лайн (добавить-убрать файлы-папки). Эта же фича позволяет иметь только один раздел с системой в образе, а значит можно даже не удалять параметр реестра MountedDevices
Опять же - никакой необходимости использовать программы снятия образа с виртуалки, можно просто заархивирова в файл (очень хорошо получается пожать в WIM файл для применения с LiveCD или сделать имидж подключенного виртуального диска любимой програмой прямо в системе
2. "Обезличиваем" готовую систему-матрицу. Сделать это можно разными способами: используя Sysprep (китайцы используют именно его, но большого смысла в этом, ИМХО, вроде нет), с помощью DEVCON.EXE (батником очень удобно
или по инструкции из шапки из
этой темы - удаляем максимум устройств, мусор и т.д. Не буду описывать то, что что уже хорошо изложено, но мне лично очень помогло применение файла
mergeide.reg и добавление соответствующих файлов в системную папку DRIVERS.
ГЛАВНОЕ!, обращаем внимание на два момента:
- Контроллер жесткого диска меняем на
Standard Dual Chanel PCI IDE Controller.
- Тип компьютера на
Standard PC.
3. Добавляем в system32 следующие файлы, некоторые из которых нужно будет вытащить из SP*.CAB:
halstnd.dll (переименованный hal.dll, хотя и оригинал я тоже добавляю)
halaacpi.dll
halacpi.dll
halapic.dll
halmacpi.dll
halmps.dll
halsp.dll (этот файл вроде как для Compaq, скорее всего он и не нужен?)
ntkrnlmp.exe
ntkrnlpa.exe
ntkrnlup.exe (переименованный ntoskrnl.exe, на всякий случай и оригинал тоже)
ntkrpamp.exe
4. Также надо оригинальные файлы из дистрибутива (не переименованные как выше!) положить в DLLCACHE и, возможно, в Driver Cache.
5. Открываем Блокнот, копируем содержание и сохраняем как DTECTHAL.INF в папке INF:
Цитата: [Version]
signature="$Windows NT$"
DriverVer=07/01/2001
[hal]
acpiapic_mp = halmacpi.dll
acpiapic_up = halaacpi.dll
acpipic_up = halacpi.dll
e_isa_up = halstnd.dll
mps_mp = halmps.dll
mps_up = halapic.dll
[ACPIOptions]
ACPIEnable = 2
ACPIBiosDate = 01,01,1999
6. Добавляем в BOOT.INI строчку:
Цитата: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Detecting HAL" /noexecute=optin /fastdetect /detecthal
При первой загрузке в систему выбираем из появляющегося меню пункт "Detecting HAL".
7. Заменяем файл NTLDR в корне диска на аналогичный файл от
Longhorn beta 1.
8. Еще китайцы в корень диска ложат оригинальные BOOT.INI и NTLDR, переименованные с расширением типа BI_ или BAK. В процессе загрузки системы файл от Логхорна и измененный BOOT.INI заменяются на оригинальные. Мне вполне хватает замены только NTLDR и пока не батником, а вручную после первой загрузки (еще до полной автоматизации не дошел
Еще китайцы зачем-то заполняют папку DLLCACHE во время первой загрузки? с помощью своих утилит (я туда, на всякий случай, тоже добаляю все вышеперечисленные файлы).
К интересным фичам относится также возможность выбора какие драйвера установить в систему - насколько я понял, работает программа на основе AutoScript, которая разархивирует в папку DRIVERS в корне диска драйверы устройств, согласно выделенных юзером чек-боксов в оболочке (типа: "Выделите какие драйвера устройств вы хотели бы установить: видеоадаптеры, сетевые карты и т.д" - выбираешь нужные и поиск ободования будет проходить и по ним). Наверняка эта папка еще и прописана в параметре реестра DevicePath, чтобы поиск драйверов для нового оборудования автоматически происходил и в этой папке.
ЗЫ На китайских форумах есть сообщения, что способ иногда не работает, но обычно заканчивается это все тем, что находят причину в чем-то другом. И очень много внимания уделяется внедрению драйверов для контроллеров жесткого диска типа SATA (но это уже другая история, в принципе, я уже излагал
здесь основную идею
, а основывается она на том же методе, что и mergeide.reg (болгарин Илко описывает этот же способ, только китайские товарищи его пытаются автоматизировать). У китайцев сейчас несколько разных "школ" создания таких универсальных образов. Я насчитал около 5 и у каждой "школы" свои "ништяки" и "примочки" в виде своих вариантов утилит для заполнения кэша, установки драйверов, замены файлов на оригинальные и прочих действий (у одного гуру есть даже одна утилитка, схожая по функционалу с XPLite).
Вот пока такие пироги. Продолжаю изучать вопрос