Перед системными администраторами стоит задача эффективно обслуживать парк вычислительной техники, поэтому каждый системный администратор должен стремиться автоматизировать свою работу и рутинные задачи. Сейчас я хочу начать цикл статей по автоматизации развёртывания ПО в гетерогенной среде, где рабочие станции пользователей работают по понятным причинам под управлением ОС Windows, а часть серверов под различными свободными системами типа Linux или FreeBSD. За основу образа взята Windows PE версия 3.1, что соответствует Windows 7 или Windows Server 2008 R2, т.к. Windows 7 - это наиболее ходовая ОС на рабочих станциях.
Все эксперименты по сборке и проверки работоспособности образов я буду проводить на виртуальных машинах VirtualBox и QUEMU/KVM.
В цикл статей будут входить следующие материалы:
Для начала нам портебутеся установить на машине администратора Windows Automated Installation Kit (AIK). Машина администратора будет задйствованна только для подготовки образов системы.
https://fedoraproject.org/wiki/Windows_Virtio_Drivers
или
https://launchpad.net/kvm-guest-drivers-windows/+download
Распаковываем их в:
Собирать будем образ x86, т.к. с образом amd64 всё происходит по аналогии, но по скольку Windows PE это усечённая версия Windows, x86 приложения работать в ней не будут, и такой образ будет годиться лишь для создания прединсталляционной среды.
Копируем загрузочный образ:
Подключаем образ Windows PE
Теперь копируем необходимый софт:
Можно открыть редактор реестра, в нём выбрать "Файл", "загрузить куст" и выбрать SYSTEM в C:\WinPE\x86\mount\Windows\System32\config\SYSTEM, а можно это сделать командой:
HKEY_LOCAL_MACHINE\WinPE_SYSTEM\ControlSet001\Control\Session Manager\Environment
и в праметр Path добавляем следующие строки:
И выгружаем WinPE_DEFAULT
c:\WinPE\x86\mount\Users\Default\NTUSER.DAT
После внесения всех необходимых изменений, отключаем образ и сохраняем в нём изменения командой:
Установить максимальное или необходимое разрешение можно с помощью Display Changer:
Если вы хотите, чтобы при запуске Windows PE не предлагалось нажать любую клавишу для загрузки, просто удалите файл bootfix.bin из папки ISO\boot перед созданием ISO-образа.
Все эксперименты по сборке и проверки работоспособности образов я буду проводить на виртуальных машинах VirtualBox и QUEMU/KVM.
В цикл статей будут входить следующие материалы:
- Создание образа Windows PE 3.1
- Создание собственного образа дистрибутива Windows 7 или Windows Server 2008 R2
- Настройка Linux PXE сервера сетевой установки Windows 7 или Windows Server 2008 R2
Создание образа Windows PE
Windows Preinstallation Environment (Windows PE), это такая усечённая версия Windows, предназначенная для установки полноценной ОС Windows. Windows PE нельзя рассматривать как полноценную ОС, т.к. на неё наложен ряд ограничений, в т.ч. и автоматическая перезагрузка через 72 часа работы, но как среда для резервного копирования, восстановление данных и подготовки ПК к переустановки системы она подходит как нельзя лучше. Поэтому прдлагаю снабдить нашу Windows PE некоторым набором утилит, которые нам очень помогут для спасения данных и повысят удобство работы.
Для начала нам портебутеся установить на машине администратора Windows Automated Installation Kit (AIK). Машина администратора будет задйствованна только для подготовки образов системы.
- Пакет автоматической установки Windows (AIK) для Windows 7 (KB3AIK_RU.iso)
- Утилита 12noon Display Changer
- Опционально Total Commander
Драйвер для VirtualBox
Копируем файлы VBoxWindowsAdditions-x86.exe или VBoxWindowsAdditions-amd64.exe в зависимости от вашйе системы со стандартного образа средств интеграции VirtualBox - VBoxGuestAdditions.iso.VBoxWindowsAdditions-x86.exe /extract /D=C:\Drivers\VBox-x86
VBoxWindowsAdditions-amd64.exe /extract /D=C:\Drivers\VBox-amd64
Драйвер для QEMU/KVM
Качаем стабильный образ драйверов под нашу архитектуру:https://fedoraproject.org/wiki/Windows_Virtio_Drivers
или
https://launchpad.net/kvm-guest-drivers-windows/+download
Распаковываем их в:
C:\Drivers\KVM-x86При этом необходимо удалить все драйверы не связанные с нашей ОС. Аналогично вы можете подготовить и необходимые вам драйверы для интеграции в дистрибутив.
C:\Drivers\KVM-amd64
Сборка образа
Устанавливаем Windows AIK, и запускаем от имени администратора "Пуск" -> "Все программы" -> "Microsoft Windows AIK" -> "Командная строка средств развертывания".Собирать будем образ x86, т.к. с образом amd64 всё происходит по аналогии, но по скольку Windows PE это усечённая версия Windows, x86 приложения работать в ней не будут, и такой образ будет годиться лишь для создания прединсталляционной среды.
Копируем загрузочный образ:
copype x86 C:\WinPE\x86\Для того, чтобы в будующем снять образ с системного диска, нам понадобится утилита imagex, копируем её:
xcopy "%ProgramFiles%\Windows AIK\Tools\x86\imagex.exe" C:\WinPE\x86\iso\И создаём для неё список исключений (файлов, которые она не будет захватывать при копировании):
notepad C:\WinPE\x86\iso\wimscript.iniСо следующим содержимым:
[ExclusionList]Добавляем диспетчер пакетов:
\$ntfs.log
\$RECYCLE.BIN
\hiberfil.sys
\pagefile.sys
"\System Volume Information"
\RECYCLER
\Windows\CSC
[CompressionExclusionList]
*.mp3
*.zip
*.cab
\WINDOWS\inf\*.pnf
xcopy "%ProgramFiles%\Windows AIK\Tools\x86\Servicing" C:\WinPE\x86\iso\Servicing /s
xcopy %windir%\system32\msxml6*.dll C:\WinPE\x86\iso\Servicing
Внесение изменений в образ Windows PE
Теперь отредактируем сам наш образ Windows PE, полный образ файловой системы, которая загружается в память находится в файле winpe.wim, который в готовом образе и установочном дистрибутиве находится перемещается в sources\boot.wim. Для его подключением воспользуемся утилитой dismПодключаем образ Windows PE
dism /mount-wim /wimfile:C:\WinPE\x86\winpe.wim /index:1 /mountdir:C:\WinPE\x86\mountУстановка драйверов в Windows PE:
dism /image:C:\WinPE\x86\mount /add-driver /driver:"C:\Drivers\KVM-x86" /recurse /forceunsignedПараметр /recurse используется, чтобы установить драйвера из вложенных каталогов, а /forceunsigned для установки не подписанных драйверов.
dism /image:C:\WinPE\x86\mount /add-driver /driver:"C:\Drivers\VBox-x86" /recurse /forceunsigned
Теперь копируем необходимый софт:
xcopy "%ProgramFiles(x86)%\Total Commander" "C:\WinPE\x86\mount\Program Files\Total Commander"
xcopy "%ProgramFiles(x86)%\12noon Display Changer" "C:\WinPE\x86\mount\Program Files\Display Changer"
xcopy "%ProgramFiles(x86)%\PuTTY" "C:\WinPE\x86\mount\Program Files\PuTTY"
Оформление
Копируем понравившуюся нам картинку рабочего стола:xcopy %homepath%\Pictures\winpe_wp_800x600.bmp C:\WinPE\x86\mount\Windows\winpe_wp_800x600.bmpТеперь для того, чтобы Total Commander, Display Changer и PuTTY можно было вызывать командами "totalcmd", "dc" и "putty", а не обращаться к файлам по полному пути, добавим пути в переменную "%Path%". Для этого нам понадобится ветка реестра System из системы Windows PE.
Можно открыть редактор реестра, в нём выбрать "Файл", "загрузить куст" и выбрать SYSTEM в C:\WinPE\x86\mount\Windows\System32\config\SYSTEM, а можно это сделать командой:
REG LOAD "HKLM\WinPE_SYSTEM" "C:\WinPE\x86\mount\Windows\System32\config\SYSTEM"Далее идём в:
HKEY_LOCAL_MACHINE\WinPE_SYSTEM\ControlSet001\Control\Session Manager\Environment
и в праметр Path добавляем следующие строки:
%SystemRoot%\system32;%SystemRoot%;%PROGRAMFILES%\Sysinternals\;%PROGRAMFILES%\Total Commander\;%PROGRAMFILES%\Display Changer\;%PROGRAMFILES%\PuTTY;Выгружаем ветку реестра WinPE_SYSTEM:
REG UNLOAD "HKLM\WinPE_SYSTEM"Аналогично устанавливаем наши обои:
REG LOAD "HKLM\WinPE_DEFAULT" "C:\WinPE\x86\mount\Windows\System32\config\default"REG ADD "HKLM\WinPE_DEFAULT\Control Panel\Desktop" изменяем параметр "Wallpaper" на путь к нашему файлу "%systemroot%\winpe_wp_800x600.bmp"
И выгружаем WinPE_DEFAULT
REG UNLOAD "HKLM\WinPE_DEFAULT"Пользовательский реестр находится в NTUSER.DAT:
c:\WinPE\x86\mount\Users\Default\NTUSER.DAT
После внесения всех необходимых изменений, отключаем образ и сохраняем в нём изменения командой:
dism /unmount-wim /mountdir:C:\WinPE\x86\mount /commitЕсли вы допустили где-то ошибку, то можно отключить образ без сохранения изменений, в таком случае замените команду /commit на /discard.
Создание ISO-образа Windows PE
Теперь настало время собрать загрузочный образ системы Windows PE. Копируем winpe.wim в директорию нашего будующего образа системы в качестве загрузочного образа:copy C:\WinPE\x86\winpe.wim C:\WinPE\x86\ISO\sources\boot.wimСоздаём ISO-образ:
oscdimg -n -lWinPEx86ru -bC:\WinPE\x86\etfsboot.com C:\WinPE\x86\ISO C:\WinPE\x86\WinPE_x86.isoПосле этого загружаемся и проверим, что у нас получилось, вставив полученный iso-файл в виртуальный привод виртуальной машины.
Работа в среде Windows PE
После выполнения команды wpeinit, система должна опознать все устройства, и в случае, если у вас установлены драйверы на сеть и у вас работает DHCP, то сеть должна заработать автоматически.Установить максимальное или необходимое разрешение можно с помощью Display Changer:
dc -width=max -height=max -depth=maxКоманда dc, totalcmd и putty будут работать только, если вы внесли пути к Display Changer, Total Commander и PuTTY в переменную %Path% при сборке образа. Если вы забыли это сделать или сделали не корректно, то можно обращаться по полному пути:
"c:\Program Files\Display Changer\dc.exe" -width=max -height=max -depth=maxПосмотреть информацию о сетевых интерфесах можно командой:
netsh interface ip show configЕсли нужно установить IP-адрес в ручную, то это можно сделать командой:
netsh interface ip set address name="Local Area Connection" static 192.168.1.25 255.255.255.0 192.168.1.1 1Для использования DHCP:
netsh interface ip set dns name="Local Area Connection" static 192.168.1.100
netsh interface ip add dns name="Local Area Connection" 192.168.1.200 index=2
netsh interface ip set address name="Local Area Connection" dhcpТак же можно подключить сетвые ресурсы:
netsh interface ip set dnsservers name="Local Area Connection" source=dhcp
net use * \\server\share /user:DOMAIN\USERДля автоматизации и упрощения настроек оболочки Windows PE, можно сделать меню на bat-файлах. После запуска командной строки в Windows PE выполняется файл c:\Windows\System32\startnet.cmd, именно в нём можно разместить меню. Либо можно напрямую запускать приложения, описав их в файле c:\Windows\System32\winpeshl.ini (его необходимо создать), командная строка при этом запускаться не будет, а файл startnet.cmd будет игнорироваться.
Если вы хотите, чтобы при запуске Windows PE не предлагалось нажать любую клавишу для загрузки, просто удалите файл bootfix.bin из папки ISO\boot перед созданием ISO-образа.
Комментариев нет:
Отправить комментарий