Автоматизация установки Server2012R2 + WinPE + Virtio + Fog on Proxmox 6

Задача: Собрать образ Windows Server 2012 R2 Std для загрузки через FOG Project с интеграцией драйверов для работы внутри системы виртуализации Proxmox.

Такая задача возникла в следствии при ручной установке операционной системы на гипервизор и указании

  • SCSI Controller: VirtIO SCSI
  • Hard Disk: virtio0

Подключил два привода, с одного устанавливаю операционную систему, а в другом драйвера virtio-win-0.1.171.iso, но в момент, когда установщик не видит диск я указываю в ручном режиме на каталог d:\viostor\2k12R2\amd64\ мастер выдает ошибку:

No signed device drivers were found. Make sure that the installation media contains the correct drivers, and then click OK

Установщик Windows Server 2012 R2 не видит драйвера viostor

А потому и задача, проработать и в последствии использовать также как у меня сделано для W7X64W10X64. Просто по аналогии с Windows Server 2012 R2 я сделаю и для Server 2016 & Server 2019.

Шаг №1: Файл ответов беру из заметки

Файл ответов Autounattend.xml

Дистрибутив: SW_DVD9_Windows_Svr_Std_and_DataCtr_2012_R2_64Bit_English_-4_MLF_X19-82891.ISO

Шаг №2: Интегрирую драйвера Virtio в образ «Шаг №1»

Для этой цели небольшой автоматизирующий скрипт:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889@echo off rem for Proxmox rem SCSI Controller: VirtIO SCSI rem SATA0 if not exist c:\iso mkdir c:\iso if exist “c:\Program Files\7-Zip\7z.exe” goto 1 :1 if exist C:\iso\SW_DVD9_Windows_Svr_Std_and_DataCtr_2012_R2_64Bit_English_-4_MLF_X19-82891.ISO goto 2 :2 if exist C:\iso\virtio-win-0.1.171.iso goto 3 :3 rmdir /S /Q c:\mount rmdir /S /Q c:\virtio rmdir /S /Q c:\drivers rmdir /S /Q c:\isoproject if not exist c:\isoproject mkdir c:\isoproject if not exist c:\mount mkdir c:\mount if not exist c:\drivers mkdir c:\drivers if not exist c:\virtio mkdir c:\virtio cd /d “c:\Program Files\7-Zip” 7z.exe x c:\iso\SW_DVD9_Windows_Svr_Std_and_DataCtr_2012_R2_64Bit_English_-4_MLF_X19-82891.ISO -o”c:\isoproject\” 7z.exe x c:\iso\virtio-win-0.1.171.iso -o”c:\virtio” rem Copy Drivers to Drivers rem copy /Y c:\virtio\amd64\2k12R2\* c:\drivers copy /Y c:\virtio\viostor\2k12R2\amd64\* c:\drivers copy /Y c:\virtio\NetKVM\2k12R2\amd64\* c:\drivers copy /Y c:\virtio\Balloon\2k12R2\amd64\* c:\drivers copy /Y c:\virtio\vioserial\2k12R2\amd64\* c:\drivers copy /Y c:\virtio\vioinput\2k12R2\amd64\* c:\drivers dism /export-image /sourceimagefile:c:\isoproject\sources\install.wim /sourceindex:2 /destinationimagefile:c:\windows\temp\install.wim /compress:max /checkintegrity copy /Y c:\windows\temp\install.wim c:\isoproject\sources\install.wim del c:\windows\temp\install.wim rem mount install.win in catalog c:\mount dism /mount-image /imagefile:c:\isoproject\sources\install.wim /mountdir:c:\mount /index:1 dism /get-wiminfo /wimfile:c:\isoproject\sources\install.wim copy /Y c:\iso\Autounattend_server2012r2.xml c:\isoproject\Autounattend.xml rem add drivers to c:\mount dism /image:c:\mount /add-driver:c:\drivers /recurse /forceunsigned rem Sobiraem install.wim dism /unmount-wim /mountdir:c:\mount /commit dism /cleanup-wim rem Create ISO cd /d “c:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\Oscdimg” oscdimg -u2 -m -o -lServer2012R2Std_Proxmox -b”c:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\Oscdimg\etfsboot.com” c:\isoproject c:\Server2012R2Std_Proxmox.iso cd /d %systemroot%\system32

На заметку: Вот только установка Windows Server 2012 R2 Std будет вестись на Disk: Sata, на VirtIO не идет, а нет идет. От 29.10.2019 16:07

Достаточно на диске C:\iso разместить ISO Образ операционной системы и драйверов virtio и с учетом скрипта выше будет готово что задумывалось, хотя перед этим нужно убедиться сколько редакций содержит install.wim и поправить скрипт. Кто хочет может заморочиться и автоматизировать и этот момент.

Копирую полученный образ на FOG и распаковываю по адресу: \\172.35.35.7\windows\server2012r2proxmox

123ekzorchik@srv-fog:~$ ls /windows/server2012r2proxmox/ autorun.inf  Autounattend.xml  boot  bootmgr  bootmgr.efi  efi  setup.exe  sources  support

Шаг №3: Интегрирую драйвера virtio в загрузчик winpe

Из заметки применяю Шаг №14, дабы подготовить собственный winpe Образ.

Шаг №4: Копирую образ winpe на сервер с сервисом FOG Project

1ekzorchik@srv-fog:~$ sudo cp /windows/winpeserver2012r2std_amd64.iso /var/www/fog/iso

Шаг №5: Создаю iPXE меню выбрав которое при выставленной загрузке сперва по сети у меня на созданной виртуальной машине под гипервизором Debian 10 + Proxmox будет установлена автоматизированная установка с применением файла ответов Windows Server 2012 R2 Std + Драйвера virtio.

http://IP&DNS/fog - user&pass - FOG Configuration – iPXE New Menu Entry

Description: Win2012R2PE64BIT_PROXMOX

Parameenu Item: Win2012R2PE64BIT_PROXMOX

Desnters:

  • Set path /fog/iso
  • Initrd http://${fog-ip}${path}/winpeserver2012r2std_amd64.iso
  • Chain memdisk iso raw

Menu Show with: All Hosts

И нажимаем Save Changes для сохранения настроек. Вот, собственно, и всё.

Шаг №6: Тестируем данное меню запускающее WinPE + ISO + Autounattend.xml и на гипервизоре Debian 10 + Proxmox 6 операционная система успешно установлена с учетом всех предопределенных действий.

Как видно по большей части стоило разобраться с Windows 10, как далее все становится понятным и легко применяется к Server 2012 R2. На этом я прощаюсь, теперь еще одним моментом в плане моего системного администрирования стало больше. С уважением автор блога Олло Александр aka ekzorchik.