Скрипт для создания инсталляционного дистрибутива

Обсуждение статьи "Установка Windows XP по сети. RIS, но не Microsoft"

Модераторы: editor, Devils

Скрипт для создания инсталляционного дистрибутива

Сообщение Devils » 27 сен 2009, 08:13

Этот скрипт делает все те же действия, что и в этой статье

Требования:
Данный скрипт позволяет выбрать раздел, на который будет произведена установка. На текущий момент установить можно либо на раздел C, либо D. В будущем планируется увеличить выбор.
Так же необходимо наличие вставленного в привод чистого дистрибутива WINDOWS XP SP3, или смонтированного образа чистого дистрибутива WINDOWS XP SP3

Использование:
Т.к. скрипт делался для себя :), то соответсвенно файл winnt.sif вам придется либо корректироваться под себя или заменить своим. Перед запуском скрипта, если в системе больше одной сетевой карты, то отключите все, кроме активной, так же отключите 1394, если таковой имеется. Запускаете Install.cmd и ждете оканчания установки. После окончания, запустится Binl Server и Tftpd32. Так же необходимо в программе поменять диапозон выдачи адресов на свой.

Install.cmd - установочный скрипт. Производит процедуру создания готового варианта для установки Windows по сети.
Lan-drivers - папка с драверами на сетевые платы
RIS-Linux - папка со службой BINL (Boot Information Negotiation Layer - Служба уровня согласования информации загрузки)
Tftpd32-setup.exe - сервер Tftp (Trivial File Transfer Protocol — простой протокол передачи файлов)
Uninstall.cmd - Полное удаление как директорий с WINDOWS так и программ
renacc – Опциональная возможность изменить имя встроенной учетной записи «Администратор» - подробности в user_manual.pdf
$OEM$\registry_tweaks.reg – подробнее в user_manual.pdf
user_manual.pdf - ТОТ самый
winnt.sif - файл ответов. Автоматизация процесса установки.
Доп. информация: Перед использованием прочитайте user_manual.pdf

МиниFAQ
Сразу отвечу на возможные вопросы:
Изменен сам скрипт. Теперь показывается процесс установки

Если у вас есть папка NETBOOT, то в процессе установки, она будет затерта и создана заново. Сделано из расчета, чтоб файлы не смешивались, поэтому либо делайте ее бэкап, либо она будет удалена.
Изменен файл ответов winnt.sif. Теперь на 33 минуте просит ввести ключ.

Чтобы процесс был полностью автоматическим, нужно исправить строку в секции [Unattended] (UnattendMode=DefaultHide) на (UnattendMode=FullUnattended), также необходимо добавить строку в секцию [UserData] (ProductKey = "xxxxx-xxxxx-xxxxx-xxxxx-xxxxx" где xxxxx-xxxxx-xxxxx-xxxxx-xxxxx - ваш ключ.) между данными строчками (ComputerName = * и
;ProductKey = "xxxxx-xxxxx-xxxxx-xxxxx-xxxxx" winxp_pro_sp3_retail)
Q: Для чего указаны ключи в секции [UserData] после строки (ComputerName = *) и смогу ли я ее активировать?
A: Это необходимо для установки пробной версии на компьютеры. Активировать вы ее не сможете.

Changelog
version 1.3
- Обновленны драйвера на Atheros
- Обновленны драйвера на Broadcom
- подправлен скрипт.
- Начало введение лога изменений.
Version 1.4
- Небольшие изменения в работе скрипта.
-- Теперь предоставляется возможность сделать резервную копию папки "Netboot"
-- Предоставляется выбор: Вносить в автозагрузку Binl_server и Tftpd32 или нет.
- Добавлены драйвера MassStorage для графического этапа установки WindowsXP SP3
- Добавлен Updatepack
-- Добавлен Аддон MassStorage для текстовой установки WindowsXP SP3
- Добавлена консольная программа Shortcut.exe для создания ярлыков.
Version 1.5
- Добавлена возможность выбора диска. C: или D:
- Обновлена папка Updatepack (UP) -> http://forum.oszone.net/thread-163490.html
- Обновлена программа Tftpd32. -> http://tftpd32.jounin.net
Version 1.51
-Исправлены мелкие ошибки в скрипте.
Version 1.52
- Обновлена папка Updatepack (UP) -> http://forum.oszone.net/thread-163490.html
- Автовключение учетной записи "Гость"
Version 1.6
- Добавлена сетевая карта от Realtek, вызывавшая ошибку "Файл Rtenic64.sys испорчен" -> viewtopic.php?f=3&t=6046&start=0
- Обновлена папка Updatepack (UP).
- Обновлены драйвера MassStorage
- Подправлен скрипт. Удалось уменьшить размер скрипта на 2кб
Version 1.61
- Добавлен драйвер для сетевых карт Intel(R) PRO/100 VE
- Подправлен вышеуказанный драйвер, для предотвращения появления ошибки BSOD 0x000000BB.
- Добавлен драйвер для сетевых карт Intel(R) PRO/100 M
- Обновлен Updatepack (UP) -> http://forum.oszone.net/thread-186236.html
- Добавлен аддон с заменой IE6 -> IE8
Version 1.62
- Подправлен файл Netrtle.inf
Version 10.11.25
- Изменение принципа присвоения версии. Год.месяц.число.
- Изменения в Tftpd32
-- Обновлен TFTPD32 3.35 -> TFTPD32 3.51
-- Увеличен таймаут с 3 секунд до 10. (В Windows 7, при прежнем таймауте, клиент не успевал получать IP-адрес, как следствие прерывалась установка)
- Обновлен UP
-- Добавлен аддон WMP11
- Добавлена возможность изменить имя встроенной учетной записи Администратор (опционально)
- Добавлены твики реестра
Version 11.01.26
- Изменена утилита, которая имя встроенной учетной записи Администратор (опционально)
- Обновлен UP


Сам скрипт:Ссылка
Последний раз редактировалось Devils 26 сен 2010, 08:19, всего редактировалось 8 раз(а).
Devils
 
Сообщения: 231
Зарегистрирован: 25 июн 2009, 16:40
Откуда: Подмосковье

Re: Скрипт для создания инсталляционного дистрибутива

Сообщение root » 14 ноя 2009, 04:39

Devils писал(а):Если у вас есть папка NETBOOT, то в процессе установки, она будет затерта и создана заново. Сделано из расчета, чтоб файлы не смешивались, поэтому либо делайте ее бэкап, либо она будет удалена.

Я думаю лучше пользователю дать возможность изнутри install.cmd дать возможность сделать бэкап D:\NETBOOT или его удалить. Считаю что эта возможность поможет предотвратить случайное удаление "тюнингованого" D:\NETBOOT.
Сделать это можно, например, так.
В файле install.cmd найти строки
Код: Выделить всё
reg delete HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\Shares\Security /f /v "WINXPSP3" >nul 2>&1
rd /S /Q %disk% >nul 2>&1
Echo Создание директорий

И заменить их на
Код: Выделить всё
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\Shares\Security /f /v "WINXPSP3" >nul 2>&1
if not exist %disk% goto skip
for /f "tokens=1,2,3,4,5,6,7 delims=,.:/ " %%a in ("%date% %time%") do set sufix=%%a%%b%%c_%%d%%e%%f
:error_choice
echo Каталог %disk% существует. Что будем с ним делать?
set /P answer=Нажмайте 1 чтобы переименовать, 2 чтобы удалить или 3 для выхода:
if %answer% EQU 3 exit /b
if %answer% EQU 1 (
set answer=
echo Ваш старый каталог будет переименован в %disk%_%sufix%
move /Y %disk% %disk%_%sufix% >nul
)
if not defined answer goto skip
if %answer% EQU 2 (
set answer=
echo Ваш старый каталог будет удален
rd /S /Q %disk% >nul 2>&1
)
if defined answer goto error_choice
:skip
Echo Создание директорий

Если каталог D:\NETBOOT существует, то спросить что с ним делать: "Каталог D:\NETBOOT существует. Что будем с ним делать?". При выборе 1 каталог D:\NETBOOT будет переименован в D:\NETBOOT_дата_время (это для получения уникального, не повторяющегося имени каталога). При выборе 2 каталог будет удален. И при выборе 3 будет произведен выход из install.cmd.
root
Site Admin
 
Сообщения: 439
Зарегистрирован: 20 июл 2006, 00:45

Сообщение Devils » 14 ноя 2009, 17:17

root, согласен. Можно сделать выбор. Хотя лично я делаю тюнинг на установленном дистрибутиве, а потом вношу изменения в сам скрипт. В ближайщее время выложу скрипт.
Devils
 
Сообщения: 231
Зарегистрирован: 25 июн 2009, 16:40
Откуда: Подмосковье

Re: Скрипт для создания инсталляционного дистрибутива

Сообщение Devils » 08 дек 2009, 10:56

Garry проверял, иначе не добавлял бы, но проверял на 100mb/s платах. С драйверами под SIS платы действительно проблемы с загрузкой. Ищу оптимальный вариант драйверов под SIS платы.
Devils
 
Сообщения: 231
Зарегистрирован: 25 июн 2009, 16:40
Откуда: Подмосковье

Re: Скрипт для создания инсталляционного дистрибутива

Сообщение Garry » 08 дек 2009, 11:07

Devils писал(а):Garry по поводу моего скрипта пишите в данную тему.

Разобрался, в I386 какой-то древнючий совсем лежал. Везде заменил на новые файлы - всё загрузилось.
Сорри за беспокойство!..
Garry
 
Сообщения: 14
Зарегистрирован: 20 окт 2008, 20:49

Re: Скрипт для создания инсталляционного дистрибутива

Сообщение Devils » 02 фев 2010, 12:33

Обновлен скрипт. Ссылку смотреть выше.
Devils
 
Сообщения: 231
Зарегистрирован: 25 июн 2009, 16:40
Откуда: Подмосковье

Re: Скрипт для создания инсталляционного дистрибутива

Сообщение lrm » 02 фев 2010, 15:23

а почему бы не сделать возможность выбрать на какой раздел производить установку, а не только на с или д?
(правда, я смотрел скрипт когда он еще был привязан исключительно к д, пришлось правиить руками для установки на е))

и еще вопрос - в вашем файле winnt.sif есть секция [OobeProxy] - какой смысл она несет? в файле ref.chm она не упоминается, гугление результатов не приносит. могу предположить, что секция имеет смысл исключительно в случае Proxy_Enable=1

ну и напоследок. имхо, нектороые параметры в вашем файле winnt.sif указывать необязательно, ибо они и так имеют установленные вами значения по-умолчанию. а именно:
[Unattended]
UnattendMode=DefaultHide
AutoActivate=No
DUDisable = Yes

[GuiUnattended]
EncryptedAdminPassword=No

и если мои предположения насчет [OobeProxy] верны, то можно полностью убрать секции [Branding], [Proxy] и [OobeProxy]

я это к тому, что хотелось бы максимально облегчить файлик winnt.sif для ковыряния пользователям скрипта
lrm
 
Сообщения: 59
Зарегистрирован: 01 фев 2010, 16:40

Re: Скрипт для создания инсталляционного дистрибутива

Сообщение Devils » 02 фев 2010, 23:41

и еще вопрос - в вашем файле winnt.sif есть секция [OobeProxy] - какой смысл она несет? в файле ref.chm она не упоминается, гугление результатов не приносит. могу предположить, что секция имеет смысл исключительно в случае Proxy_Enable=1

Если вы найдете данную секцию в текущем файле winnt.sif, т.е. тот который раздается со скриптом на указанной выше ссылке, то я вам куплю ящик хорошего пива )))
насчет параметров, которые будут выделены зеленым, согласен, в следующем релизе они будут отсутствовать.

[Unattended]
AutoActivate=No
DUDisable = Yes
[GuiUnattended]
EncryptedAdminPassword=No

Насчет параметра
[Unattended]
DefaultHide - скроет уже заданные параметры от глаз пользователя. Т.е. в данном случае вам останется только ввести ваш лицензионный, или нет, ключ, когда это затребует система при установке.
Насчет разделов. Если вам необходимо ставить его на раздел е, то я могу добавить его к тому выбору что уже есть. Не думаю что большинство пользователей будет производить установку ИД (Инсталяционного дистрибутива) на раздел f и далее, но если таких много, то скрипт переделаю.
Devils
 
Сообщения: 231
Зарегистрирован: 25 июн 2009, 16:40
Откуда: Подмосковье

Re: Скрипт для создания инсталляционного дистрибутива

Сообщение lrm » 03 фев 2010, 18:36

насчет OobeProxy - действительно, ошибся, это не у вас)
а по поводу UnattendMode=DefaultHide - это значение параметр имеет по умолчанию. То есть если вообще убрать строчку UnattendMode=DefaultHide, то установка пойдет в таком же режиме, как и без нее (проверил лично). То есть специально указывать его ненужно.

а что до разделов и путей к дистрибутиву - то переделать, сопсно, можно и ручками, кому надо. всего четыре файлика поправить. просто абсолютные пути - не комильфо :D

да, и еще, cleaning.cmd не удаляет ссылки из главного меню в русских виндах. некритично, конечно, но если добавить
Код: Выделить всё
del "%AllUsersProfile%\Главное меню\*.lnk >nul"
будет универсальнее (все равно винда там только эти три ярлыка создает). и нюанс - русские символы в бат-файлах надо сохранять в dos-866 кодировке (столкнулся, ибо мой акелпад-блокнот по-умолчанию сохраняет фалы в кодировке win-1251)

а что за конструкция 2>&1 ?
lrm
 
Сообщения: 59
Зарегистрирован: 01 фев 2010, 16:40

Re: Скрипт для создания инсталляционного дистрибутива

Сообщение root » 03 фев 2010, 21:31

lrm писал(а):а что за конструкция 2>&1 ?

Перенаправить поток вывода ошибок в стандартный поток вывода.
root
Site Admin
 
Сообщения: 439
Зарегистрирован: 20 июл 2006, 00:45

След.

Вернуться в Установка Windows XP по сети. RIS, но не Microsoft

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron
@Mail.ru