Поиск на сайте: Расширенный поиск


Новые программы oszone.net Читать ленту новостей RSS
CheckBootSpeed - это диагностический пакет на основе скриптов PowerShell, создающий отчет о скорости загрузки Windows 7 ...
Вы когда-нибудь хотели создать установочный диск Windows, который бы автоматически установил систему, не задавая вопросо...
Если после установки Windows XP у вас перестала загружаться Windows Vista или Windows 7, вам необходимо восстановить заг...
Программа подготовки документов и ведения учетных и отчетных данных по командировкам. Используются формы, утвержденные п...
Red Button – это мощная утилита для оптимизации и очистки всех актуальных клиентских версий операционной системы Windows...

Интеграция SATA/RAID драйверов

Текущий рейтинг: 4.17 (проголосовало 697)
 Посетителей: 376775 | Просмотров: 548779 (сегодня 2)  Шрифт: - +

Описать интеграцию SATA/RAID драйверов я собирался давно. К сожалению, моя конфигурация не позволяет протестировать интеграцию таких драйверов, и следовательно самостоятельное написание статьи исключалось. В первоначальном варианте сайта на странице драйверов была ссылка на хорошую статью участника конференции MSFN GreenMachine, но она требовала от читателя некоторой подготовки. Именно на этой статье и основана страница, рассказывающая о SATA/RAID драйверах, на сайте MSFN. Эта страница появилась там относительно недавно, и не существовала на момент написания первой редакции данной статьи.

Так или иначе, нашелся человек по имени 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. Не вижу смысла повторяться.

Благодарности

Остается лишь поблагодарить Майкла Холлингера и отдать должное тем людям, чьи книги, статьи и сообщения в форумах были использованы в его руководстве. Автор следует одному из общепринятых Американских стилей, используемых в научных публикациях. Я, уж извините, стиль выдерживать не буду ;-)

  1. Chandra, Omeeda. (2004 October). Книга Update Your Windows XP CD. Maximum PC, 68-70
  2. GreenMachine. Slipstreaming SATA/RAID Drivers (ссылки на статью больше нет)
  3. Gosh. Txtsetup.sif.
  4. raskren (2004, January 5) Сообщение в теме Unattended install, SATA drivers, and NO Floppy , I finally got it to work!
  5. raskren (2004, February 9) Сообщение в теме Switches in TXTSETUP.SIF.
Автор: Вадим Стеркин aka Vadikan  •  Иcточник: unattended.oszone.net  •  Опубликована: 02.03.2005
Нашли ошибку в тексте? Сообщите о ней автору: выделите мышкой и нажмите CTRL + ENTER


Оценить статью:
Вверх
Комментарии посетителей
25.03.2009/10:19  intersk

Скажите, если при установке Windows XP отключить в BIOS режим AHCI (поставить в Disable) то XP установиться без доп.драйверов SATA. НО МОЖНО ли потом. уже в системе. установить драйвера для режима AHCI, потом включить в BIOS режим AHCI... При загрузке компьютер распознает вновь установленные драйвера для режима AHCI?
05.05.2009/18:20  vitalii69

сайт просто супер.огромное спасибо создателям!!!!
11.05.2009/15:16  vladil19

Сайт для меня неожиданность!!!
Огромное спасибо!!!!!!!!!!!!!
08.04.2010/16:11  Gol

Возник вопрос. Может быть кому то он уже приходил в голову и есть ответ. На диске Windows Server 2008 уже интегрированы драйвера SATA/RAID (и куча других драйверов). Нельзя ли, каким либо образом использовать это при установке 2003 ?
26.04.2010/13:18  maxim_x

Можно установить без AHCI, а потом установить их под ХР, но не всегда срабатывает.
можно получить синий экран после обновления дров под ХР.
30.07.2011/22:43  tikhonja

To intersk>>>
Да, можно. Я сегодня именно так и сделал на ноуте Lenovo ThinkPad SL510.
Намного проще чем тут понаписано!!!
---
Отключаешь в БИОСе AHCI, устанавливаешь Windows с форматированием раздела для системы, устанавливаешь SATA драйвера (принудительно) и при перезагрузке опять включаешь в БИОСе AHCI. Windows нормально грузится и уже видит винчестер и все разделы на нём. Только после этого можно ставить другие драйвера, настраивать систему и устанавливать программы.
20.09.2011/12:43  faetonets

Мой метод по установке системы, любой что требует FDD (w2k, XP, w2k3).
Без интеграции в дистрибутив.
Используемые инструменты:
MultiBoot USB - Мультизагрузочная флешка
Windows
winimag
сами дровишки

Так вот,
1) с помощью Winimag содаю *.img образ дискет с дровами,
2) с помощью MultiBoot USB создаю Boot Flesh,
3) кидаю на флешку *.img,
4) прописываю в menu.lst

Это примеры:

title install Windows XP Home SP3
root (hd0,0)
map --mem /WINSETUP/XPhSP3.ISO (0xff)
map --mem /flp-rst.IMA (fd0)
map --mem /jraid.IMA (fd1)
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
root (0xff)
chainloader /I386/SETUPLDR.BIN

title install Windows 2003 SP2
root (hd0,0)
map --mem /WINSETUP/23SP2.ISO (0xff)
map --mem /boot/HP/cp011324-.IMG.gz (fd0)
map --mem /boot/HP/cp014590-.IMG.gz (fd1)
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
root (0xff)
chainloader /I386/SETUPLDR.BIN

5) и грузимся с флешки, по ходу жмём F6, и выбираем требуемый драйвер.

От и всё малята. Дерзайте!
19.12.2011/10:50  void.tm

faetonets
пробовал вашим способом, добавить райд контроллер. После нажатия F6 все хорошо подчиталось, только после разбивки диска и копирования файлов установка пытается скопировать драйвер рейда с образа дискеты а его уже в системе нет.

выход из ситуации нашел следующий nLite формирую дистрибутив с драйверами и упаковываю туда нужные драйвера потом их копирую на флешку в I386 и все проходит.
27.02.2012/12:50  vasugan

Большое спасибо!Интегрировал по вашему способу драйвера на Raid контроллер к меа. плате GA-8I945P-G-RH. Всё получилось!:)
22.03.2012/19:22  yurybx

Убил день в попытках установить Windows 2003 на RAID1 на мат. плату MSI 870S-C45. Не видит жесктий диск, хоть убейся. Нафаршировал все драйверы, которые нашёл на компакт-диске из комплекта мат. платы в папках вида floppy32. Смотрел на начальный процесс запуска установки (копирование файлов), они действительно копировались. Не видит жесткий диск и всё тут.
Пробовал также способ, приведённый faetonets. На этапе опроса жесткого диска вылетает синий экран.
Жаль потраченного времени. Интересует также неразбериха в железе: кто-нибуть знает, как можно узнать производителя и модель встроенного в мат. плату RAID контроллера до установки операционки? Прикол в том, что я потратил бы гораздо меньше времени, если бы знал, какой из четырёх драйверов, находящихся на компакт-диске, пихать в дистрибутив. Бесит также то, что даже зайдя в биос RAID-контроллера нельза лицезреть модель контроллера. В user manual это тоже не указано. К стати такая же ситуация с некоторыми ноутбуками: покупаешь ноут, драйверов в комплекте нет, и ты начинаешь скачивать с сайта производителя все драйверы (а некоторые из них весят по 100 метров) и тыкать каждый, пока на наткнёшься на нужный драйвер. Это идиотизм с отсутствием информации о комплектации или я чего-то не знаю?
16.02.2013/14:52  kolli

Внимание! Для того, чтобы драйверы корректно устанавливались при инсталляции системы с жесткого диска или ее обновления с компакт-диска, вам нужно также внести изменения в файл 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
Это в файл dosnet.inf нужно добавить или заменить или как?

Найдите первую секцию [SourceDisksFiles], которая расположена в районе 189 строки. В самом начале секции [SourceDisksFiles] добавьте следующую строку
controller.sys = 1,,,,,,3_,4,1
где controller.sys - имя файла, созданного на четвертом шаге. Аналогичным образом добавьте строки, соответствующие остальным *.sys файлам.
Вообще то на четвертом шаге создаётся файл controller.SY_а не controller.sys.Вот это тож непонятно.
12.04.2013/11:58  FAN1

пробовал интегрировать с помощью этой инструкцыи... результат Не удаётся найти файл amd_sata.sys ..
Впрочем такойже результат был и с nLite.
Я думаю проблема в том что .sys файлу одноимённый у меня не .oem а .inf файл а там в секцыи [Strings] нету строк наподобие этой PCI\VEN_8086&DEV_2652&CC_0104 там кроме прочего текста есть PCI\CC_010601 а вот в .oem файле есть но он неодноимённый файлу
.sys :(
Но я думаю не у всех такие проблемы...
Спасибо автору статья полезная и перевидена достойна хоть местами можно было и поподробней разписать.
14.04.2013/23:02  Dennila2

А что делать если нет *.sys файла? Есть только cougahci.cat и cougahci.inf. Как их интегрировать?
Комментарии отключены. С вопросами по статьям обращайтесь в форум.