пятница, 15 июля 2016 г.

Сборка собственного дистрибутива Windows 7 или Windows Server 2008 R2

Продолжая цикл статей по автоматизации развёртывания системы Windows, сегодня мы займёмся созданием собственного инсталляционного дистрибутива системы Windows 7, с установленными обновлениями и базовым набором пользовательского ПО.
Для сборки собственного дистрибутива Windows 7 или Windows Server 2008 R2, нам понадобится:
  1. Эталонная машина с Windows 7.
  2. Дистрибутив Windows PE.
Как я уже делал ранее в статье по подготовки образа Windows PE, все эксперименты по сборке и проверки работоспособности образов я буду проводить на виртуальных машинах VirtualBox и QUEMU/KVM.

Подготовка эталонного образа ОС Windows

Устанавливаем Windows на эталонную машину, и при появлении мастера, предлагающего нам ввести имя пользователя и имя компьютера, нажимаем сочетание клавиш CTRL+SHIFT+F3.
Машина перезагрузится, и войдёт в режим аудита со временной учётной записью "Administrator". Далее в появившемся приглашении SYSPREP подготовить систему, нажимаем "отмена", и приступаем к подготовке эталонной системы.
Устанавливаем все необходимые обновления.
17 мая 2016 года Майкрософт выпустила накопительный пакет обновлений для Windows 7 SP1 KB3125574 (https://support.microsoft.com/ru-ru/kb/3125574), включающий в себя обновления с момента выпуска SP1 и до апреля 2016, для уменьшения количества устанавливаемых обновлений, рекомендую скачать и установить обновление KB3125574 в ручную. Важный момент! Для его установки потребуется обновление KB3020369 (https://support.microsoft.com/ru-ru/kb/3020369).
После того, как всё необходимое ПО уже установлено, а система обновлена до актуального состояния, необходимо удалить все лишние файлы, которые не должны попасть в образ системы, это могут быть папки с дистрибутивами драйверов, ПО и выполнить полную очистку системы с помощью мастера очистки диска Windows 7 - Windows Cleanup Tool.

Запускаем командную строку от имени администратора:
cleanmgr.exe
Устанавливаем все галочки и очищаем всё.
Теперь наша система готова к снятию с неё образа. В командной строке вводим
c:\Windows\system32\sysprep\sysprep /oobe /generalize /shutdown

Снятие образа эталонной системы

Теперь определимся, куда мы будем копировать образ системы. Можно это делать на отдельный раздел, на флешку или в сеть.
Загружаемся с подготовленного нами ранее образа Windows PE, подключаем диск, куда будем  копировать образ нашей эталонной системы.
Подключить сетевой диск можно командой:
net use * \\server\share\ /user=DOMAIN\USER
И начинаем снимать образ эталонной системы с помощью утилиты imagex:
e:\imagex /capture d: Z:\Win7x86\install.wim "Win7_Pro_x86" /compress maximum  /boot /verify
Уровень компрессии (maximum, fast, none) влияет только на скорость снятия образа. На распаковку образа это практически никак не влияет.

Так же может возникнуть ситуация, когда ваш образ системы может быть более 3 Гб, в таком случае, полученный вами install.wim необходимо разделить на несколько частей с помощью аргумента /split. Подробнее об этом можно почитать в руководстве по imagex или набрав команду:
imagex /?

Подготовка установочного образа системы

Теперь берём установочный диск с Windows 7 x86 и копируем его содержимое в удобную для нас папку (например C:\Win7\x86\dist):
mkdir C:\Win7\x86\mount
mkdir C:\Win7\x86\dist
xcopy E:\* C:\Win7\x86\dist\
За загрузку среды предустановки отвечает файл, C:\Win7\x86\dist\sources\boot.wim в его установочный образ необходимо добавить драйверы контроллера при установке на не стандартные контроллеры. Сам образ устанавливаемой системы, находится в файле C:\Win7\x86\dist\sources\install.wim, в этот образ как раз нужно установить как можно больше драйверов, чтобы их установка происходила автоматически, при первой инициализации системы. Делать мы это будем, так же, как и при сборке системы Windows PE.

Подключаем загрузочный образ:
dism /mount-wim /wimfile:C:\Win7\x86\dist\sources\boot.wim /index:2 /mountdir:C:\Win7\x86\dist\mount
Указываем параметр "/index:2", т.к. "/index:1" в образе boot.wim из дистрибутива на самом деле является образом Windows PE, и загрузка с автоматическим запуском setup.exe происходит именно с образа 2.

Устанавливаем драйверы в загрузочный образ:
dism /image:C:\Win7\x86\dist\mount /add-driver /driver:"C:\Drv\KVM_Win7_x86\viostor\w7\x86\viostor.sys" /forceunsigned
Устанавливать вообще все драйверы в этот образ не имеет никакого смысла, более того, лучше сохранить как можно меньший размер этого образа, поэтому устанавливайте сюда только драйверы контроллеров жёсткого диска.

Сохраняем и отключаем загрузочный образ:
dism /unmount-wim /mountdir:C:\Win7\x86\dist\mount /commit
Если вы допустили где-то ошибку, то можно отключить образ без сохранения изменений, в таком случае замените команду /commit на /discard.

Устанавливаем все необходимые драйверы в установочный образ.

Подключаем установочный установочный образ:
dism /mount-wim /wimfile:C:\Win7\x86\dist\sources\install.wim /index:1 /mountdir:C:\Win7\x86\dist\mount
Устанавливаем драйверы в установочный образ:
dism /image:C:\Win7\x86\dist\mount /add-driver /driver:"C:\Drv\KVM_Win7_x86" /recurse /forceunsigned
dism /image:C:\Win7\x86\dist\mount /add-driver /driver:"C:\Drv\VirtualBox_x86" /recurse /forceunsigned
Сохраняем и отключаем установочный образ:
dism /unmount-wim /mountdir:C:\Win7\x86\dist\mount /commit
Записываем образ системы в ISO-файл:
oscdimg -u2 -m -o -lWIN7PROSP1X86RU -bC:\WinPE\x86\etfsboot.com c:\WinPE\x86\dist\ "c:\WinPE\x86\Windows 7 Professional SP1 x86 custom.iso"
Теперь вставляем iso-образ в виртуальный привод нашей тестовой виртуальной машины, и пробуем установить систему. Система должна нормально устанавливаться и благодаря интеграции в дистрибутив драйверов, все устройства должны работать сразу после загрузки.

Комментариев нет:

Отправить комментарий