Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для alegz81

Старожил


Сообщения: 164
Благодарности: 47

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: rar AUTOUNATTEND_OSZone.rar
(1.1 Kb, 920 просмотров)

Решил создать этот мануал потому что на сайте такого нет. В принципе, этот мануал можно рассматривать в более широком смысле как пошаговое руководство по созданию диска автоматической установки Windows.
Раньше создавал сборки только Windows XP, Windows Vista не пользовался и сборок не делал. Так что опыта в этом не было, приходилось пользоваться OSZone.net, справкой WAIK, головой и высоко научным методом ТЫКА. Когда начинал работу над этой сборкой у меня стояла Windows XP sp2 RU. Вот в ней я и пробовал, хотя в WAIKе прямо сказано что XP использовать нельзя, но мы же всё лучше знаем . Так вот там ПРАВИЛЬНО написано, лучше даже и не пробуйте слишком много проблем. Пришлось ставить VMware и разворачивать на ней Windows Vista sp1 RU и в ней всё мутить. Сейчас у меня Windows 7 x86 Ultim RU которую я сделал.

Итак приступим.
Подготовка:

Вот то что мне понадобилось для работы:
1. Установочный диск Microsoft Windows AIK для Windows 7 (у меня русская версия)
2. VMware Workstation 6.0 (виртуалка)
3. Оригинальный установочный диск Windows 7 EN x86 или Windows 7 EN x64
4. Языковые пакеты для Windows 7 (Я собирал диск с тремя языками – английский, русский и турецкий. Соответственно я использовал русский и турецкий пакеты. ВНИМАНИЕ пакеты для х86 и х64 разные. )
5. Эмулятор CD-DVD (Alcohol 120%)
6. Редактор SciTE (версия 1.79 .66 RU) или FAR
7. Последняя off-line версия сайта OSZone.net

Установите Microsoft Windows AIK для Windows 7.

Теперь надо создать структуру папок для работы.
Вот текст батника который это делает:
Код: Выделить весь код
@echo off
:Start
ECHO.
ECHO Этот командный файл создает структуру папок для
ECHO работы над автоматической установкой Windows 7.
ECHO.
ECHO Для начала просто нажмите любую клавишу.
PAUSE > NUL
:CreateFolders
CLS
ECHO.
ECHO Создание папок . . .
SET work=%CD%\window7_x32
IF NOT EXIST %work%\NUL MKDIR %work%
IF NOT EXIST %work%\DVD\NUL MKDIR %work%\DVD
IF NOT EXIST %work%\ISO\NUL MKDIR %work%\ISO
IF NOT EXIST %work%\Logs\NUL MKDIR %work%\Logs
IF NOT EXIST %work%\Mount\NUL MKDIR %work%\Mount
IF NOT EXIST %work%\wim\NUL MKDIR %work%\wim
IF NOT EXIST %work%\Sandbox\NUL MKDIR %work%\Sandbox
IF NOT EXIST %work%\Updates\NUL MKDIR %work%\Updates
IF NOT EXIST %work%\xml\NUL MKDIR %work%\xml
IF NOT EXIST %work%\bootwim\NUL MKDIR %work%\bootwim
IF NOT EXIST %work%\bootwim\lp\NUL MKDIR %work%\bootwim\lp
IF NOT EXIST %work%\bootwim\mount\NUL MKDIR %work%\bootwim\mount
IF NOT EXIST %work%\mui\NUL MKDIR %work%\mui
ECHO.
ECHO Процесс создания структуры папок завершен!
pause
exit
Сохраните его в файл с названием Windows7-32.cmd в DOS(OEM866) кодировке. Это можно сделать с помощью FARа или SciTE. Скопируйте файл в то место где вы хотите создать папки и запустите, учтите что на диске который вы будете использовать должно быть минимум 5 Гб свободного места. А для windows x64 сохраните в файл с названием Windows7-64.cmd, и измените строчку «SET work=%CD%\window7_x32» на «SET work=%CD%\window7_x64».
Копируем весь установочный диск windows в папку ..\DVD.

Вся работа делится на два этапа. С начала будем модифицировать Windows PE, а потом уже сам Windows 7.
Модификация Windows PE:

Windows PE (WinPE) - это операционная система в минимальной конфигурации, предназначенная для подготовки компьютера к установке Windows. А по простому это то что ставит Windows на комп. Копируем файл boot.wim из ..\DVD\sources в ..\bootwim, а файл boot.wim из ..\DVD\sources переименовываем в boot.wim.bac и перемещаем в ..\wim. Если что-либо не получится с первого раза и вы испортите файл, то у вас есть его резервная копия. Теперь нам понадобятся языковые пакеты для WinPE, они находятся на установочном диске Microsoft Windows AIK для Windows 7 в папке WinPE_LangPacks\x86 для x86, а в WinPE_LangPacks\amd64 для x64. Я взял папки «ru-ru» и «tr-tr», и скопировал их в ..\bootwim\lp.
В boot.wim находятся два образа, и модифицировать надо оба. Запускаем с правами Администратора «Командная строка средств развертывания».
Указываем рабочую папку для удобства, пишем - set wd=H:\window7_x32 (это у меня, вы подправляете под себя).
Просмотр имеющихся образов и их индексы в boot.wim
Код: Выделить весь код
Dism /Get-WIMInfo /WimFile:%wd%\bootwim\boot.wim
Подключение первого образа (index:1)
Код: Выделить весь код
Dism /Mount-Wim /WimFile:%wd%\bootwim\boot.wim /index:1 /MountDir:%wd%\bootwim\mount
Просмотр установленных языков
Код: Выделить весь код
Dism /image:%wd%\bootwim\mount /Get-Intl
Просмотр установленных пакетов
Код: Выделить весь код
Dism /image:%wd%\bootwim\mount /Get-Packages
У меня показывает что язык один EN, и пять пакетов – WinPE, winpe-scripting, winpe-srt, winpe-wds-tools, winpe-wmi. Нужно добавить язык для каждого пакета.
Установка языков
Код: Выделить весь код
Dism /image:%wd%\bootwim\mount /Add-Package /PackagePath:%wd%\bootwim\lp\ru-ru\lp.cab /PackagePath:%wd%\bootwim\lp\tr-tr\lp.cab
Установка пакетов
Код: Выделить весь код
Dism /image:%wd%\bootwim\mount /Add-Package /PackagePath:%wd%\bootwim\lp\ru-ru\winpe-scripting_ru-ru.cab /PackagePath:%wd%\bootwim\lp\tr-tr\winpe-scripting_tr-tr.cab /PackagePath:%wd%\bootwim\lp\ru-ru\winpe-srt_ru-ru.cab /PackagePath:%wd%\bootwim\lp\tr-tr\winpe-srt_tr-tr.cab /PackagePath:%wd%\bootwim\lp\ru-ru\winpe-wds-tools_ru-ru.cab /PackagePath:%wd%\bootwim\lp\tr-tr\winpe-wds-tools_tr-tr.cab /PackagePath:%wd%\bootwim\lp\ru-ru\winpe-wmi_ru-ru.cab /PackagePath:%wd%\bootwim\lp\tr-tr\winpe-wmi_tr-tr.cab
Теперь можно опять посмотреть установленные языки и пакеты для контроля. Если всё правильно, то идём дальше.
Создание нового файла lang.ini (Это нужно что бы WinPE «увидел» языки.)
Код: Выделить весь код
Dism /image:%wd%\bootwim\mount /Gen-LangINI /distribution:%wd%\bootwim\mount
Отключение образа с сохранением всех изменений
Код: Выделить весь код
Dism /unmount-Wim /MountDir:%wd%\bootwim\mount /Commit
Повторить всё для индекса 2.
ВНИМАНИЕ во втором образе пакетов больше, будьте внимательны.

Подключение второго образа (index:2)
Код: Выделить весь код
Dism /Mount-Wim /WimFile:%wd%\bootwim\boot.wim /index:2 /MountDir:%wd%\bootwim\mount
Просмотр установленных языков
Код: Выделить весь код
Dism /image:%wd%\bootwim\mount /Get-Intl
Просмотр установленных пакетов
Код: Выделить весь код
Dism /image:%wd%\bootwim\mount /Get-Packages
У меня показывает что язык один EN, и семь пакетов – WinPE, winpe-scripting, winpe-setup-client, winpe-setup, winpe-srt, winpe-wds-tools, winpe-wmi.
Установка языков
Код: Выделить весь код
Dism /image:%wd%\bootwim\mount /Add-Package /PackagePath:%wd%\bootwim\lp\ru-ru\lp.cab /PackagePath:%wd%\bootwim\lp\tr-tr\lp.cab
Установка пакетов
Код: Выделить весь код
Dism /image:%wd%\bootwim\mount /Add-Package /PackagePath:%wd%\bootwim\lp\ru-ru\winpe-scripting_ru-ru.cab /PackagePath:%wd%\bootwim\lp\tr-tr\winpe-scripting_tr-tr.cab /PackagePath:%wd%\bootwim\lp\ru-ru\winpe-setup-client_ru-ru.cab /PackagePath:%wd%\bootwim\lp\tr-tr\winpe-setup-client_tr-tr.cab /PackagePath:%wd%\bootwim\lp\ru-ru\winpe-setup_ru-ru.cab /PackagePath:%wd%\bootwim\lp\tr-tr\winpe-setup_tr-tr.cab /PackagePath:%wd%\bootwim\lp\ru-ru\winpe-srt_ru-ru.cab /PackagePath:%wd%\bootwim\lp\tr-tr\winpe-srt_tr-tr.cab /PackagePath:%wd%\bootwim\lp\ru-ru\winpe-wds-tools_ru-ru.cab /PackagePath:%wd%\bootwim\lp\tr-tr\winpe-wds-tools_tr-tr.cab /PackagePath:%wd%\bootwim\lp\ru-ru\winpe-wmi_ru-ru.cab /PackagePath:%wd%\bootwim\lp\tr-tr\winpe-wmi_tr-tr.cab
Теперь можно опять посмотреть установленные языки и пакеты для контроля. Если всё правильно, то идём дальше.
Создание нового файла lang.ini
Код: Выделить весь код
Dism /image:%wd%\bootwim\mount /Gen-LangINI /distribution:%wd%\bootwim\mount
Отключение образа с сохранением всех изменений
Код: Выделить весь код
Dism /unmount-Wim /MountDir:%wd%\bootwim\mount /Commit
Можно сравнить размеры нашего boot.wim с оригинальным. У меня так – 137Мб и 170Мб. Теперь копируем наш boot.wim в ..\DVD\sources.

Модификация Windows 7:

Для тех кто делал в работе перерыв и закрывал «Командная строка средств развертывания», не забывайте о вводе «set wd=H:\window7_x32» при новом запуске, а то будет куча ошибок.

Ну, а теперь переходим к самому вкусному.
Подготовка.
Напоминаю что языковые пакеты для x86 и x64 разные, и друг к другу не подходят. У меня названия пакетов были какие-то не произносимые, и я их переименовал в lp.cab. В папке ..\mui я создал две папки «ru-RU» и «tr-TR», в которые соответственно и поместил пакеты. Теперь можно и начать.
Просмотр имеющихся образов и их индексы в install.wim
Код: Выделить весь код
Dism /Get-WIMInfo /WimFile:%wd%\DVD\sources\install.wim
Я работаю только с ULTIMATE, ну а вы можете с той версией Windows Которая вам нужна.
Подключение образа ULTIMATE (в х86 индекс равен 5, а в х64 равен 4)
Код: Выделить весь код
Dism /Mount-WIM /WimFile:%wd%\DVD\sources\install.wim /index:5 /MountDir:%wd%\Mount    (х86)

Dism /Mount-WIM /WimFile:%wd%\DVD\sources\install.wim /index:4 /MountDir:%wd%\Mount    (х64)
Надеюсь все поняли – ПИСАТЬ ТО ЧТО В СКОБКАХ НЕ НАДО!!!
Просмотр установленных языков
Код: Выделить весь код
Dism /image:%wd%\Mount /Get-Intl
Кстати в Windows уже вставлено несколько пакетов. Можете на них посмотреть
Код: Выделить весь код
Dism /image:%wd%\Mount /Get-Packages
Установка языков
Код: Выделить весь код
Dism /Image:%wd%\Mount /ScratchDir:%wd%\Sandbox /Add-Package /PackagePath:%wd%\mui\ru-RU\lp.cab /PackagePath:%wd%\mui\tr-TR\lp.cab
Параметр /ScratchDir:%wd%\Sandbox указывает на папку для временных файлов. Если его убрать, то будет использована %TEMP%.

Теперь можно опять посмотреть установленные языки и пакеты, и если всё в порядке –
Отключение образа с сохранением всех изменений
Код: Выделить весь код
Dism /unmount-Wim /MountDir:%wd%\Mount /Commit
У меня на компе все это занимает примерно 45 мин. Но это ещё не всё.
Теперь запускаем «Диспетчер образов системы Windows», всё так же с правами Администратора. Открываем наш Install.wim(..\DVD\sources) – Файл-Выбрать образ Windows. Потом выбираем нужную версию Windows (у меня ULTIMATE). Появится предупреждение о том что файл каталога устарел, и его надо создать заново. Говорим «Да», и очень долго ждем. Может показаться что компьютер завис, но это не так, процедура очень долгая, особенно на слабых машинах. После завершения операции можно создавать файл ответов.
На эту тему есть свой раздел, так что подробно об этом не буду, только напомню он должен называться «AUTOUNATTEND.XML», и лежать в ..\DVD. Прилагаю свой файл ответов. В нём оставлена возможность выбора языка для установки, выбора диска и раздела для установки, ввод имени пользователя (не хотелось делать всех User), сетевая безопасность (ProtectYourPC) равна 3, т.е. выключена . У меня устанавливается Ultimate, это указывается здесь - 1windowsPE в x86_Microsoft-Windows-Setup__neutral-ImageInstal-OSImage-InstallFrom-MetaData-Key-/IMAGE/INDEX и Value-5(то есть устанавливать по индексу образа. Ultimate номер 5, а в x64 - 4 ). Так же установлен часовой пояс GMT+5, если хотите поменять, то это здесь - x86_Microsoft-Windows-Shell-Setup_neutral-TimeZone, который добавляется к 7 oobeSystem. Значения TimeZone можно посматреть в REGEDIT здесь - HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones. И ещё у меня в 4specialize определяется буква DVD-привода по файлу CD.ROM, и ему назначается переменная %DiskRoot%. Что бы это заработало создайте файл-пустышку «CD.ROM» (например создайте файл Блокнота и переименуйте его, согласившись с изменением расширения), и поместите его в ..\DVD. Я ещё создавал там папку Install, и сложил туда всё что хотел установить автоматом (кряк windows7,твики и т.д.). Потом в x86_Microsoft-Windows-Shell-Setup_neutral-FirstLogonCommand, который добавляется к 7 oobeSystem создаю команды, типа такой «cmd /c %DiskRoot%\Install\setupProg.exe».
Если будете делать свой файл ответов, то в нём обязательно должно быть вот так - x86_Microsoft-Windows-International-Core-WinPE_neutral-SetupUILanguage-WillShowUI-Always в 1windowsPE. Эта настройка заставляет всегда показывать окно выбора языка для системы. Ну и для x64 вместо «x86_», будет «amd64_».

Интеграция обновлений в Windows 7:

Если у вас нет обновлений, то можете перейти к созданию загрузочного образа.
Обновления для windows имеют расширение MSU.
У меня было 49 файлов в 3-х категориях - критические, важные и обновления для .Net.
В папке ..\Updates я создал папки Critical, Important и NET, в которые и разложил обновления.
Запускаем с правами Администратора «Командная строка средств развертывания». Не забываем про «set wd=H:\window7_x32».
Подключение образа
Код: Выделить весь код
Dism /Mount-WIM /WimFile:%wd%\DVD\sources\install.wim /index:5 /MountDir:%wd%\Mount
Просмотр установленных пакетов
Код: Выделить весь код
Dism /image:%wd%\Mount /Get-Packages
установка обновлений
Код: Выделить весь код
Dism /Image:%wd%\Mount /ScratchDir:%wd%\Sandbox /Add-Package /PackagePath:%wd%\Updates\Critical /PackagePath:%wd%\Updates\Important /PackagePath:%wd%\Updates\NET
Отключение образа с сохранением всех изменений
Код: Выделить весь код
Dism /unmount-Wim /MountDir:%wd%\Mount /Commit
Теперь надо обновить файл каталога. Запускаем «Диспетчер образов системы Windows», всё так же с правами Администратора. Открываем наш Install.wim(..\DVD\sources) – Файл-Выбрать образ Windows. Потом выбираем нужную версию Windows (у меня ULTIMATE).
После того, как каталог обновится и образ откроется, в ветке Packages появятся подветки hotFix, Update и т.д. В которых и можно посмотреть установленные обнавления.

Создание загрузочного образа Windows 7:

Запускаем с правами Администратора «Командная строка средств развертывания». Не забываем про «set wd=H:\window7_x32».
Создание загрузочного образа x86
Код: Выделить весь код
oscdimg -n -m -o -b"C:\Program Files\Windows AIK\Tools\PETools\x86\boot\etfsboot.com" %wd%\DVD %wd%\ISO\windows7_x86.iso
Создание загрузочного образа x64
Код: Выделить весь код
oscdimg -n -m -o -b"C:\Program Files\Windows AIK\Tools\PETools\amd64\boot\etfsboot.com" %wd%\DVD %wd%\ISO\windows7_x64.iso
Если у вас WAIK установлен не в C:\Program Files, то корректируем путь.


Вот так у нас появился 3-х язычный диск Windows 7 Ultimate EN RU TR, с возможностью выбора языка установки, места установки, имени пользователя и его пароля. Так как ключ продукта в файл ответа не введён, то появится окно где его предложат ввести. Ключ можно не вводить, а галочку с пункта об автоматической регистрации Windows по Internet снять, и получите систему на 30 дней. Ну а там уж сами, сами ).

Сборку Windows x86 по приведенному рецепту я создал в декабре 2009. Она была поставлена на большое количество компов, как десктопов, так и ноутов. Везде работает отлично, ни каких косяков и проблем. Сборку Windows x64 сделал месяц назад. Установил на четырёх компах. Пока проблем нет. Сейчас работаю над диском Windows7 x86+x64.

Осталось только проверить.
Устанавливаем VMware Workstation и Alcohol 120%. Монтируем наш образ на виртуальный привод. Создаём в VMware виндовус, и ставим. Одно но, таким образом удастся проверить только Windows x86. А вот x64 не пойдёт, нужна реальная машина, но если ваша система x64, то всё пойдёт.
А под конец один совет – если вы ставите Windows 7 на машину в первый раз, то обязательно из программы установки удалите тот раздел на который будете ставить, и создайте его заново. При этом вам будет предложено создать скрытый раздел на 100Мб, куда будет записан виндовский загрузчик.
Хочу поблагодарить Мишу за установочный диск Windows 7 EN x86, и за русский языковой пакет для x86. Так же большое спасибо Мердану за установочный диск Windows 7 EN x64, установочный диск Microsoft Windows AIK для Windows 7, обновления для Windows 7 x86 и x64 и за языковые пакеты для x64. И благодарность группе "Linkin Park", чья музыка способствует усилению мозговой активности.
Ну вот и всё. Надеюсь этот мануал, а вернее статья кому-нибудь будут полезны. Если найдёте неточности или ошибки, а так же мысли об улучшении приведенного здесь, то сообщите. Всегда готов учиться.

Последний раз редактировалось alegz81, 10-09-2010 в 18:50. Причина: добавлено описание интеграции обновлений

Это сообщение посчитали полезным следующие участники:

Отправлено: 04:42, 15-03-2010 | #5