Так или иначе, нашелся человек по имени Michael Hollinger, который взял на себя труд объединить в одно
руководство информацию, разбросанную по форуму MSFN и сайтам участников форума. Его руководство показалось мне
несложным и дающим достаточно информации для осуществления процесса интеграции "от и до". Michael любезно разрешил
перевести его руководство на русский язык. Оригинальное
руководство (PDF, 1.28 Mb) является публично доступной информацией и может быть использовано только в бесплатных
или некоммерческих публикациях. Дисклэймер и контактную информацию автора можно найти в тексте руководства. Недавно
Мichael прислал мне новую версию своего руководства, которое и выложено сейчас у меня. Руководство стало максимально
подробным, с громадным количеством скриншотов (в основном Проводника и Блокнота ;-). Но поскольку суть осталась
прежней, я не стал менять содержание своей статьи.
Примечание. В статье описан ручной метод интеграции драйверов. Процесс можно автоматизировать при помощи nLite.
Надеюсь, что статья будет полезна не только людям, интересующимся автоматической установкой, но и всем, кто не
имеет возможности установить SATA/RAID драйверы в процессе установки Windows по причине отсутствия флоппи привода.
Все вопросы или замечания по данной статье, пожалуйста, задавайте в форуме. Теперь к делу.
Шаг 1 - Создание директорий
Создайте директорию для размещения всех драйверов и промежуточных файлов, которые будут конфигурироваться на
предварительном этапе. В данной статье будет использоваться директория C:\preload, в которой надо создать
поддиректории следующим образом C:\preload\$OEM$\$1\drivers
Шаг 2 - Распаковка драйверов
Вам понадобятся драйверы для SATA и/или RAID контроллеров. Их можно взять с CD, поставлявшегося в комплекте с
материнской платой или ноутбуком. Более новые версии драйверов могут находиться на сайте производителя.
Распакуйте драйверы в директорию, названную по имени контроллера. Например, возможна такая структура
C:\preload\$OEM$\$1\drivers\motherboard\controller
Примечание: названия поддиректорий, содержащих драйверы, должны состоять из не более
чем восьми символов. Например, для материнской платы ABIT IC7-MAXIII есть два набора драйверов Silicon Images:
Si3112r и Si3114r. В таком случае нужно создать следующие директории
C:\preload\$OEM$\$1\drivers\IC7_MAX3\Si3112r
C:\preload\$OEM$\$1\drivers\IC7_MAX3\Si3114r
Если ваши драйверы находятся внутри установочной программы (нередко встречается у Intel), то распакуйте их из
*.ехе при помощи WinRAR, например.
На данном этапе у вас в соответствующих директориях должны быть, по крайней мере, следующие файлы
*.sys
*.cat
*.inf
Шаг 2а - Распаковка драйверов Intel
Драйверы Intel представляют собой особый случай. Если у вас нет вышеуказанных файлов, то вероятнее всего у вас
есть два кабинетных архива (*.cab) и setup.exe. В таком случае выполните следующую команду из командной
строки:
c:\setup.exe –a –p c:\path
где path - директория, которую вы выбрали для распаковки. После распаковки ваши драйверы будут либо в
поддиректори XP либо drivers. Скопируйте содержимое данной директории. Следуя нашей структуре, вы должны скопировать
содержимое в
C:\preload\$OEM$\$1\drivers\motherboard\intel
Шаг 3 - Подбор файлов
Вы можете смело удалить файлы readme и любые директории, относящиеся к другим операционным системам (Windows 2000 и
Windows 98). Если одни и те же драйверы предназначаются для XP и 2000, то их, понятное дело, удалять не надо.
Продолжая пример с ABIT IC7-MAXIII у нас теперь такая картина:
В директории C:\preload\$OEM$\$1\drivers\IC7_MAX3\Intel находятся файлы
TXTSETUP.OEM
iaAHCI.cat
iaStor.cat
iaAHCI.inf
iaStor.inf
iaStor.sys
А в директории C:\preload\$OEM$\$1\drivers\IC7_MAX3\Si3112r находятся файлы
SilSupp.cpl
TxtSetup.oem
si3112r.cat
Si3112r.inf
Si3112r.sys
SIWinAcc.sys
SiiSupp.vxd
и так далее для каждого из контроллеров.
Шаг 4 - Копирование файлов
Если содержимое установочного диска Windows XP у вас еще не скопировано на жесткий диск, но сейчас самое время это
сделать. Копируем в C:\XPCD. Затем скопируйте директорию $ОЕМ$ из C:\preload в C:\XPCD.
Теперь нужно сделать сжатые копии всех *.sys файлов и скопировать их в C:\XPCD\i386 при помощи утилиты makecab. Из
командной строки запустите следующую команду:
makecab C:\XPCD\$OEM$\$1\drivers\motherboard\controller\controller.sys C:\XPCD\I386\controller.SY_
где motherboard - название директории, которое вы дали по названию материнской платы, controller - соответственно
название директории контроллера, а controller.sys и controller.SY_ - названия ваших *.sys файлов. У
вас может быть более одного *.sys файла в каждой директории, однако вам нужен только тот, имя которого совпадает с
именем *.inf файла. Если взять за пример шаг 6, то из директории Si3112r нам нужен только Si3112r.sys.
Аналогичным образом добавьте в i386 все остальные *.sys файлы.
Шаг 5 - Редактирование секции [SourceDisksFiles] файла txtsetup.sif
Откройте в текстовом редакторе файл txtsetup.sif расположенный в C:\XPCD\i386. Блокнот подойдет, хотя и
не слишком удобен для данной цели. Главное, чтобы редактор не создавал ненужного форматирования, такого как переносы
строк, например.
Найдите первую секцию [SourceDisksFiles], которая располжена в районе 189 строки. В самом начале секции
[SourceDisksFiles] добавьте следующую строку
controller.sys = 1,,,,,,3_,4,1
где controller.sys - имя файла, созданного на четвертом шаге. Аналогичным образом добавьте строки, соответствующие
остальным *.sys файлам. Каждому файлу должна соответствовать одна строка. В нашем примере:
[SourceDisksFiles]
iaStor.sys = 1,,,,,,3_,4,1
Si3112r.sys = 1,,,,,,3_,4,1
Si3114r.sys = 1,,,,,,3_,4,1
viasraid.sys = 1,,,,,,3_,4,1
Рассказ о формате этих строк я решил вынести на отдельную
страницу ввиду сложности материала.
Внимание!
Для того, чтобы драйверы корректно устанавливались при инсталляции
системы с жесткого диска или ее обновления с компакт-диска, вам нужно
также внести изменения в файл dosnet.inf следующим образом:
[FloppyFiles.2]
d1,iaStor.sys
d1,Si3112r.sys
d1,Si3114r.sys
d1,viasraid.sys
[Files]
d1,iaStor.sys
d1,Si3112r.sys
d1,Si3114r.sys
d1,viasraid.sys
Шаг 6 - Редактирование секции [HardwareIdsDatabase] файла txtsetup.sif
Не закрывайте txtsetup.sif и найдите секцию [HardwareIdsDatabase], находящуюся в районе строки 18800. Мы
через минуту вернемся к этой секции, а пока рассмотрим файлы, находящиеся в директориях с драйверами. Там есть файлы,
информацию из которых нужно скопировать в txtsetup.sif. Нам понадобится либо *.oem либо *.inf файл из каждой из них.
Идем в первую директорию и действуем по следующему принципу: если есть одноименный *.sys файлу *.oem файл, то
открываем его, а если нет, то открываем одноименный *.inf файл. Если используете *.oem файл, то найдите все строки,
начинающиеся с PCI\VEN_, заключенные в кавычки. Если используете *.inf файл, то найдите секцию [Strings], где
есть аналогичные строки (но без кавычек). Проигнорируйте строки, начинающиеся с %. Скопируйте каждую строку от начала
до первой точки (не включая точку). Например, если строка PCI\VEN_8086&DEV_2652&CC_0104.DeviceDesc =
"Intel(R) 82801FR SATA RAID Controller", то скопировать нужно только PCI\VEN_8086&DEV_2652&CC_0104
и больше ничего.
Теперь поместите скопированные строки в секцию [HardwareIdsDatabase] файла txtsetup.sif и добавьте к
каждой = "sysfile", где sysfile - имя вашего *.sys файла одноименного *.oem или *inf. файлу. В нашем
примере в секции [HardwareIdsDatabase] это выглядит так:
[HardwareIdsDatabase]
PCI\VEN_8086&DEV_2652&CC_0104 = "iaStor"
PCI\VEN_8086&DEV_2652&CC_0106 = "iaStor"
PCI\VEN_8086&DEV_24DF&CC_0104 = "iaStor"
PCI\VEN_8086&DEV_25B0&CC_0104 = "iaStor"
PCI\VEN_1095&DEV_3112 = "Si3112r"
PCI\VEN_1095&DEV_3512 = "Si3112r"
PCI\VEN_1002&DEV_436E = "Si3112r"
PCI\VEN_1002&DEV_4379 = "Si3112r"
PCI\VEN_1002&DEV_437A = "Si3112r"
PCI\VEN_1095&DEV_3114 = "Si3114r"
PCI\VEN_1106&DEV_3149 = "viasraid"
Шаг 7 - Редактирование секциий [SCSI.load] и [SCSI] файла txtsetup.sif
Теперь найдите секцию [SCSI.load] в районе строки 19266. Добавьте следующую строку для каждого *.sys файла
sysfile = sysfile.sys,4
где sysfile опять же имя вашего *.sys файла. В нашем примере в секции [SCSI.load] это выглядит так:
[SCSI.Load]
iaStor = iaStor.sys,4
Si3112r = Si3112r.sys,4
Si3114r = Si3114r.sys,4
viasraid = viasraid.sys,4
Теперь найдите секцию [SCSI] в районе строки 21613. Добавьте следующие строки для каждого *.sys файла.
sysfile = "Description"
где sysfile - имя вашего *.sys файла, a Description - любое описание, которое вы хотите дать контроллеру. Проще
всего использовать описания из *.inf файла. В нашем примере это выглядит так:
[SCSI]
iaStor = "Intel(R) 82801FR/82801ER/6300ESB SATA RAID Controller"
Si3112r = "Silicon Image SiI 3x12 SATARaid Controller"
Si3114r = "Silicon Image SiI 3114 SATARaid Controller"
viasraid = "VIA Serial ATA RAID Controller"
На этом редактирование txtsetup.sif закончено. Закройте и сохраните файл.
Шаг 8 - Редактирование (создание) winnt.sif
Теперь настало время изменить winnt.sif (или создать новый, если у вас его еще нет). Подробнее о
winnt.sif я рассказываю тут, поэтому остановлюсь лишь на
секции [Unattended]. Для успешной установки драйверов необходимо наличие в секции следующих параметров
[Unattended]
OEMPreinstall=Yes
OemPnPDriversPath="Drivers\path"
где path - путь к директории с драйверами контроллера. В нашем примере это выглядит так:
[Unattended]
OEMPreinstall=Yes
OemPnPDriversPath="drivers\IC7_MAX3\intel;drivers\IC7_MAX3\Si3112r;drivers\IC7_MAX3\Si3114r;drivers\IC7_MAX3\via"
Поскольку у нас драйвера расположены в нескольких директориях, мы заключаем их перечисление в кавычки и разделяем
"точкой с запятой". Все значения параметра OemPnPDriversPath должны быть в одну строку, переносы недопустимы.
Если
вас интересует только интеграция драйверов, и файл ответов создается
исключительно для этой цели, то помимо указанных выше параметров
добавьте секцию [Data] с таким содержимым:
[Data]
MsDosInitiated="0"
Закройте winnt.sif и сохраните изменения (или сохраните ваш файл с именем winnt.sif в i386).
Заключение
В общем, на этом процедуру интеграции SATA/RAID драйверов можно считать законченной. Дальнейшие шаги оригинального
руководства рассказывают о том, как создать загрузочный диск Windows XP. Не вижу смысла повторяться.
Благодарности
Остается лишь поблагодарить Майкла Холлингера и отдать должное тем людям, чьи книги, статьи и сообщения в форумах
были использованы в его руководстве. Автор следует одному из общепринятых Американских стилей, используемых в научных
публикациях. Я, уж извините, стиль выдерживать не буду ;-)
- Chandra, Omeeda. (2004 October). Книга Update Your Windows XP CD. Maximum PC, 68-70
- GreenMachine. Slipstreaming SATA/RAID Drivers (ссылки на статью больше нет)
- Gosh. Txtsetup.sif.
- raskren (2004, January 5) Сообщение в теме Unattended install, SATA drivers, and NO Floppy , I finally got it to work!
- raskren (2004, February 9) Сообщение в теме
Switches in TXTSETUP.SIF.
Источник: http://unattended.oszone.net |