BartPEДискиСозданиеУстановкаТвикиНастройкаВосстановлениеИнтересные сайты

Куда в i386 можно добавить свои компоненты?

Для добавления своих компонентов (например, драйверов или программ) можно воспользоваться несколькими способами. Первый способ предназначен для автоматического обновления Windows при установке — он применяет все нужные Post-service packs (хотфиксы). Он хорошо документирован для Windows 2000 — смотри предыдущую статью, либо статью Q296723 в базе знаний Microsoft. О том, работает ли он для Windows XP — пока неизвестно. К тому же он не может ничего, кроме применения хотфиксов, поскольку в обязательном порядке использует каталог цифровых подписей от Microsoft, и, следовательно, вы не сможете таким образом установить никакой "чужой" файл помимо подписанных Microsoft.

Второй способ заключается в использовании папки $OEM$. Папку с таким именем необходимо создать в корне диска, на одном уровне с папкой i386. Об этом также подробно рассказано на сайте Microsoft. Я приведу перевод части этой статьи, описывающий назначение и смысл отдельных папок дистрибутива:

Папка \i386
Это дистрибутивная папка. Она может включать следующий файл:

файл $$Rename.txt

Этот файл содержит список файлов, имена которых программа установки должна преобразовать из коротких в длинные (помните об ограничении 8.3 для ISO9660?). Такой файл должен находиться в каждой папке дистрибутива, включающий файлы, имена которых нужно преобразовать в длинные.

\$OEM$

Эта папка, которая должна быть создана в CD-дистрибутиве на одном уровне с папкой \i386, и содержать дополнительные файлы, необходимые для завершения установки. Если вы используете файл ответов с ключом OemFilesPath в разделе [Unattended], то эту папку вы можете создать в любом месте, в т.ч. и вне дистрибутивной папки.

ПРИМЕЧАНИЕ: обратите внимание, что для создания загрузочного дистрибутива Windows на компакт-диске эта папка должна лежать на одном уровне с папкой i386 (обычно обе папки кладутся в корень диска). Если же вы создаёте дистрибутив для установки из другого места (например, по сети), то папка $OEM$ должна располагаться ВНУТРИ папки i386.

Один из дополнительных файлов, который вы можете добавить в папку \$OEM$ это Cmdlines.txt. Этот файл содержит список команд, которые программа установки выполнит во время графической фазы установки. Эти команды могут, к примеру, запустить INF файл, программу установки приложения, команду Sysdiff.exe или другой исполняемый файл.

Каждый раз, когда программа установки находит подпапку \$OEM$ в корне дистрибутивной папки, она копирует всё её содержимое во временную папку, создаваемую во время текстовой фазы установки.

\$OEM$\Textmode

Эта папка содержит аппаратно-зависимые файлы, которые загрузчик программы установки и программа установки в текстовой фазе устанавливает на компьютер. Это могут быть, например, HAL от производителя компьютера, драйвера нестандартных накопителей, а также файл Txtsetup.oem, содержащий директивы о загрузке и установке этих компонентов.

Удостоверьтесь, что файл Txtsetup.oem и все файлы, помещённые в эту папку (HAL и драйверы) перечислены в разделе [OEMBootFiles] файла ответов.

\$OEM$\$$

Папка $OEM$\$$ эквивалентра переменной окружения %systemroot% или %windir%. Она содержит дополнительные файлы, которые вы хотите скопировать в папку с установленной системой (для Windows XP по умолчанию это \Windows). Структура этой папки должна соответствовать структуре системной папки, где $OEM$\$$ означает %systemroot% или %windir% (например, C:\windows), $OEM$\$$\System32 означает %windir%\System32, и так далее. Каждая подпапка должна содержать файлы, которые необходимо скопировать в соответствующую системную папку на компьютере назначения.

\$OEM$\$$\Help

Эта папка содержит файлы справки, которые будут скопированы в папку C:\Windows\Help во время установки.

\$OEM$\$$\System32

Эта папка содержит файлы, которые будут скопированы во время установки в папку C:\Winnt\System32.

\$OEM$\$1

Эта папка эквивалентна переменной окружения SystemDrive. Например, если операционная система установлена на диск C, то \$OEM$\$1 ссылается на диск C. Использование переменной делает возможным изменение буквы диска без возникновения ошибок в приложениях, явно указывающих букву диска.

\$OEM$\$1\PnPdrvrs

Эта папка содержит дополнительные драйвера Plug and Play, не включённые в оригинальный дистрибутив Windows. Вы можете заменить PnPdrvrs любым именем по вашему выбору, состоящим из восьми и менее символов.

\$OEM$\Drive_letter

Каждая из таких папок содержит структуру файлов и подпапок, которая будет скопирована в корень соответствующего диска на компьютере назначения во время текстовой фазы установки. Например, файлы, находящиеся в папке \$OEM$\C будут скопированы в корень диска C. Вы можете также создавать таким образом вложенные папки. Например, \$OEM$\D\Misc создаст папку \Misc на диске D.

Файлы, которые нужно переименовать, должны быть перечислены в файле $$Rename.txt. Заметьте, что файлы в этих папках должны иметь короткие имена. Этот файл имеет следующую структуру:

[имя_секции_1] короткое_имя_1 = "длинное_имя_1"
короткое_имя_2 = "длинное_имя_2"

короткое_имя_х = "длинное_имя_х"

[имя_секции_2] короткое_имя_1 = "длинное_имя_1"
короткое_имя_2 = "длинное_имя_2"
короткое_имя_х = "длинное_имя_х"

Где:

имя_секции_x — путь к папке, содержащей файлы. Секция вовсе не обязательно должна быть названа, или может иметь в качестве имени обратный слэш (\), что означает, что секция содержит имена файлов и подпапок, находящихся в корне диска.

короткое_имя_x — имя файла или папки внутри заданной папки, которое должно быть переименовано. Это имя НЕ должно быть заключено в кавычки.

длинное_имя_x — новое имя файла или папки. Это имя ДОЛЖНО быть заключено в кавычки, если содержит пробелы или запятые.

Подсказка: если вы запускаете программу установки из под MS-DOS, то вы не можете копировать файлы или папки с путём длиннее 64 символов. Поэтому используйте короткие имена и файл $$Rename.txt, чтобы переделать их в длинные.

Файл Cmdlines.txt имеет следующий синтаксис:

[Commands]
"<команда_1>"
"<команда_2>"
.
.
"<команда_x>"

Смысл ключей следующий:

"<команда_1>", "<команда_2>", и далее, "<команда_x>" определяют команды, которые вы желаете выполнить (а также порядок, в котором они должны запускаться), во время графической фазы установки. Заметьте, что все команды должны быть заключены в кавычки.

При использовании Cmdlines.txt, обратите внимание на следующие моменты:

Во время исполнения команд из файла Cmdlines.txt ни один из пользователей ещё не активен, а также не гарантируется наличие какого-либо сетевого подключения. Поэтому информация, специфичная для пользователя, записывается в реестр пользователя по умолчанию (Default user). Соответственно, при создании новых пользователей эта информация будет скопирована в их ветви реестра.

Cmdlines.txt требует, чтобы все файлы, которые могут потребоваться для запуска приложений или утилит были доступны во время процесса установки, т.е. они должны находиться на жёстком диске.

ВНИМАНИЕ! Приложения, которые устанавливаются через Windows Installer нельзя добавлять при помощи Cmdlines.txt.