Автоматизация установки 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
А потому и задача, проработать и в последствии использовать также как у меня сделано для W7X64, W10X64
. Просто по аналогии с 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
123 | ekzorchik@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
1 | ekzorchik@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.