--------------- WWW.FORUMOK.EU --------------- Интеграция SATA/RAID драйверов Описать интеграцию SATA/RAID драйверов я собирался давно. К сожалению, моя конфигурация не позволяет протестировать интеграцию таких драйверов, и следовательно самостоятельное написание статьи исключалось. В первоначальном варианте сайта на странице драйверов была ссылка на хорошую статью GreenMachine, но она требовала от читателя некторой подготовки. Именно на этой статье и основана страница, рассказывающая о SATA/RAID драйверах, на сайте MSFN. Эта страница появилась там относительно недавно, и не существовала на момент написания первой редакции данной статьи. Так или иначе, нашелся человек по имени Michael Hollinger, который взял на себя труд объединить в одно руководство информацию, разбросанную по форуму MSFN и сайтам участников форума. Его руководство показалось мне несложным и дающим достаточно информации для осуществления процесса интеграции "от и до". Michael любезно разрешил перевести его руководство на русский язык. Оригинальное руководство (PDF, 1.28 Mb) является публично доступной информацией и может быть использовано только в бесплатных или некоммерческих публикациях. Дисклэймер и контактную информацию автора можно найти в тексте руководства. Недавно Мichael прислал мне новую версию своего руководства, которое и выложено сейчас у меня. Руководство стало максимально подробным, с громадным количеством скриншотов (в основном Проводника и Блокнота ;-). Но поскольку суть осталась прежней, я не стал менять содержание своей статьи. Надеюсь, что статья будет полезна не только людям, интересующимся автоматической установкой, но и всем, кто не имеет возможности установить 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 Рассказ о формате этих строк я решил вынести на отдельную страницу ввиду сложности материала. Шаг 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 должны быть в одну строку, переносы недопустимы. Закройте winnt.sif и сохраните изменения (или сохраните ваш файл как winnt.sif в i386). Заключение В общем, на этом процедуру интеграции SATA/RAID драйверов можно считать законченой. Дальнейшие шаги оригинального руководства рассказывают о том, как создать загрузочный диск Windows XP. Не вижу смысла повторяться. --------------- WWW.FORUMOK.EU ---------------