Цель данной статьи - продемонстрировать возможность использования WADK для развёртывания Microsoft Nano Server, что в дальнейшем позволит применять стандартный Windows Deployment Service для массового развертывания. Все действия можно провести под операционной системой Windows 8.1 или выше. Если планируется развертывать на Hyper-V, то необходимо включить роль Hyper-V или использовать реальный компьютер. В данной статье я использовал Windows 8.1 с включенной ролью Hyper-V и HP Microserver Gen 8.
В мае 2015 года на конференции Microsoft Ignite был представлен революционный продукт - Microsoft Nano Server. Данный продукт является полностью переработанной версией Windows с минимальным размером кода и только необходимыми функциями. Серверные роли и дополнительные функции находятся вне Nano Server. Самостоятельные пакеты устанавливаются как приложения. Ключевые роли и функции продукта - это Hyper-V, системы хранения (SoFS) и кластеризация, а также поддержка ядра CLR, ASP.NET 5 и PaaS. Размер дистрибутива с установленными пакетами не превышает 1GB и может располагаться на SD карте.
Процесс развертывания состоит несколько шагов. Начнем с первого шага. Нам необходим дистрибутив Windows Server Technical Preview 2. Как обычно, ссылки находятся в конце статьи. После того, как мы скачали дистрибутив в виде ISO файла, нам необходимо его открыть и извлечь из корня директорию NanoServer.
Увеличить
(нажмите на изображение для его увеличения)
Далее нам необходимо скачать Windows Assessment and Deployment Kit (ADK) RC for Windows 10. Продукт скачивается в виде небольшого исполняемого файла, при запуске которого можно выбрать установку либо полное скачивание, после чего можно запустить установку. Весь пакет для данной работы нам не нужен, выбираем только опции для развертывания.
Увеличить
(нажмите на изображение для его увеличения)
После установки данного пакета запускаем с правами администратора ярлык “Deployment and Imaging tool Environment”
и выполняем команду «copype amd64W:\WinPE_64». Сopype не является командой Windows, а является скриптом, поставляемым в комплекте с WADK. Смысл данной команды - скопировать файлы Windows Preinstallation Environment на W:\WinPE_64. На своей машине под дополнительные данные я использую диск W, в вашем случае это может быть любой диск и любая директория.
Увеличить
(нажмите на изображение для его увеличения)
После создания директории с файлами Windows Preinstallation Environment (Windows PE) первый шаг закончен.
На втором шаге нам необходимо разобраться, каким образом будет происходить загрузка машины с Windows Nano Server. Это важно, потому что мы будем развертывать Windows Nano Server с чистого листа. Итак, у нас есть два варианта загрузки нашей машины: с использованием классического BIOS или современного UEFI. Для Hyper-V также есть два варианта, которые зависят от типа виртуальной машины. Ниже приведен пример для Hyper-V.
Увеличить
(нажмите на изображение для его увеличения)
Обыкновенный современный компьютер.
Увеличить
Данный вопрос имеет для нас ключевое значение, так как от него зависит, как мы будем размечать диск.
Начнем с классического BIOS. По умолчанию разделы на диске выглядят так:
Увеличить
Увеличить
Однако есть еще один вариант разметки диска, который, как правило, используют в клиентских операционных системах при OEM развертываниях. Recovery Image - это образ операционной системы плюс утилиты, которые позволяют развернуть операционную систему заново на раздел Windows после аварии.
В нашем случаем мы ограничимся простым случаем, с использованием простой версии скрипта. Ссылка на оригинальную статью Microsoft с расширенной версий скрипта и комментариями приведена в конце.
select disk 0
clean
create partition primary size=350
format quick fs=ntfs label="System"
assign letter="S"
active
create partition primary
format quick fs=ntfs label="Windows"
assign letter="W"
exit
Обратите внимание на буквы томов. Данные буквы после применения образа и перезагрузки системы встанут на свои места. Данные буквы используются только во время операций, когда машина загружена с Windows PE. Окончательный вид разделов и томов после применения скрипта, применения образа и перезагрузки выглядит так.
Увеличить
(нажмите на изображение для его увеличения)
Увеличить
(нажмите на изображение для его увеличения)
Перейдем на современный UEFI. Вместо MBR пришла GPT со своими разделами. Одна из причин перехода на UEFI - поддержка загрузочных томов больше 2TB. По умолчанию разметка диска выглядит так:
Увеличить
Увеличить
Однако есть еще один вариант разметки диска, который, как правило, используют в клиентских операционных системах при OEM развертываниях. Recovery Image - это образ операционной системы плюс утилиты, которые позволяют развернуть операционную систему заново на раздел Windows после аварии.
В нашем случаем мы ограничимся простым случаем, с использованием простой версии скрипта. Ссылка на оригинальную статью Microsoft с расширенной версий скрипта и комментариями приведена в конце.
select disk 0
clean
convert gpt
create partition primary size=300
format quick fs=ntfs label="Windows RE tools"
assign letter="T"
create partition efi size=100
rem == Note: for Advanced Format Generation One drives, change to size=260.
format quick fs=fat32 label="System"
assign letter="S"
create partition msr size=128
create partition primary
format quick fs=ntfs label="Windows"
assign letter="W"
Обратите внимание на буквы томов, данные буквы после применения образа и перезагрузки системы встанут на свои места. Данные буквы используются только во время операций, когда машина загружена с Windows PE. Окончательный вид разделов и томов после применения скрипта, применения образа и перезагрузки выглядит так.
Увеличить
(нажмите на изображение для его увеличения)
Увеличить
(нажмите на изображение для его увеличения)
В данной статье я не буду останавливаться, для чего нужны эти разделы. Для тех, кому это интересно, есть ссылка на материалы в конце. В результате рассмотренного выше, мы можем создать два тестовых файла Bios_Partition_Structure.txt и UEFI_Partition_Structure.txt, в которых будут лежать наши скрипты. В дальнейшем мы будем запускать команду diskpart /s Bios_Partition_Structure.txt или diskpart /s UEFI_Partition_Structure.txt. Выбор команды, которая будет создавать разделы, определяется типом загрузки.
Третий шаг — это создание файла ответов и скрипта, который запустится после установки. Образец файла ответов unattend.xml возьмем из“Getting Started with Nano Server”. Обратим внимание на теги, которые приведены ниже, красным цветом выделены значения, которые вы можете поменять.
<ComputerName>NanoServer1503</ComputerName>
<AdministratorPassword>
<Value>P@ssw0rd</Value>
<PlainText>true</PlainText>
</AdministratorPassword>
<RegisteredOwner>Mikhail Komarov</RegisteredOwner>
<RegisteredOrganization>Virtual Lab</RegisteredOrganization>
Относительно скрипта после установки - сначала необходимо создать директорию
md W:\Windows\Setup, потом положить туда файл SetupComplete.cmd со следующим содержанием:
ping 127.0.0.1 -n 4
hostname
ipconfig
netsh advfirewall set domainprofile state off
netsh advfirewall set privateprofile state off
netsh advfirewall set publicprofile state off
netsh advfirewall set currentprofile state off
Из содержания в общем видно, что IP адрес будем получать по DHCP и отключим межсетевой экран.
Четвертый шаг - это создание итоговых скриптов, которые будут развертывать образ, добавлять пакеты и применять файл ответов. Итак, создадим два файла, по названию которых ясно, для чего они предназначены: Apply_on_Hardware.bat и Apply_on_Hyper-V_VM.bat. У этих двух файлов будет общая часть.
Развертываем образ надиск.
dism /Apply-Image /ImageFile:d:\NanoServer\nanoserver.wim /Index:1 /ApplyDir:W:\
Добавляем пакеты (будет разный состав для файлов).
Добавляем файл ответов.
dism /Apply-Unattend:d:\NanoServer\unattend.xml /image:W:\
Место для дополнительных логов.
Копируем файл ответов.
copy d:\NanoServer\unattend.xml W:\Windows\panther\
Создаем директорию для запуска скриптов после установки.
Копируем файл ответов.
copy d:\NanoServer\SetupComplete.cmd W:\Windows\Setup\Scripts\
Создаем загрузочную запись.
Разница в файлах обусловлена различиями в платформах.
Увеличить
(нажмите на изображение для его увеличения)
Поэтому в файле Apply_on_Hardware.bat будут следующие пакеты:
dism /Add-Package /PackagePath:d:\NanoServer\Packages\Microsoft-NanoServer-Compute-Package.cab /Image:W:\
dism /Add-Package /PackagePath:d:\NanoServer\Packages\en-us\Microsoft-NanoServer-Compute-Package.cab /Image:W:\
Package.cab /Image:W:\
dism /Add-Package /PackagePath:d:\NanoServer\Packages\Microsoft-OneCore-ReverseForwarders-Package.cab /Image:W:\
dism /Add-Package /PackagePath:d:\NanoServer\Packages\en-us\Microsoft-OneCore-ReverseForwarders-Package.cab /Image:W:\
dism /Add-Package /PackagePath:d:\NanoServer\Packages\Microsoft-NanoServer-Storage-Package.cab /Image:W:\
dism /Add-Package /PackagePath:d:\NanoServer\Packages\en-us\Microsoft-NanoServer-Storage-Package.cab /Image:W:\
dism /Add-Package /PackagePath:d:\NanoServer\Packages\Microsoft-NanoServer-OEM-Drivers-Package.cab /Image:W:\
dism /Add-Package /PackagePath:d:\NanoServer\Packages\en-us\Microsoft-NanoServer-OEM-Drivers-Package.cab /Image:W:\
dism /Add-Package /PackagePath:d:\NanoServer\Packages\Microsoft-NanoServer-FailoverCluster-Package.cab /Image:W:\
dism /Add-Package /PackagePath:d:\NanoServer\Packages\en-us\Microsoft-NanoServer-FailoverCluster-Package.cab /Image:W:\
А в файле Apply_on_Hyper-V_VM.bat будут следующие пакеты:
dism /Add-Package /PackagePath:d:\NanoServer\Packages\Microsoft-NanoServer-Guest-Package.cab /Image:W:\
dism /Add-Package /PackagePath:d:\NanoServer\Packages\en-us\Microsoft-NanoServer-Guest-Package.cab /Image:W:\
dism /Add-Package /PackagePath:d:\NanoServer\Packages\Microsoft-OneCore-ReverseForwarders-Package.cab /Image:W:\
dism /Add-Package /PackagePath:d:\NanoServer\Packages\en-us\Microsoft-OneCore-ReverseForwarders-Package.cab /Image:W:\
dism /Add-Package /PackagePath:d:\NanoServer\Packages\Microsoft-NanoServer-Storage-Package.cab /Image:W:\
dism /Add-Package /PackagePath:d:\NanoServer\Packages\en-us\Microsoft-NanoServer-Storage-Package.cab /Image:W:\
dism /Add-Package /PackagePath:d:\NanoServer\Packages\Microsoft-NanoServer-FailoverCluster-Package.cab /Image:W:\
dism /Add-Package /PackagePath:d:\NanoServer\Packages\en-us\Microsoft-NanoServer-FailoverCluster-Package.cab /Image:W:\
В итоге получим набор файлов, которые поместим в директорию с Nano Server.
Увеличить
(нажмите на изображение для его увеличения)
На пятом шаге нам необходимо определиться, каким образом будет загружаться Windows PE и где будут находиться наши файлы и файлы Nano Server. Существует несколько путей, например, сделать загрузочный USB стикер и провести загрузку и установку с него, или, например, сделать загрузочный ISO, а файлы Nano Server поместить на USBи провести инсталляцию на реальный компьютер. Либо сделать ISO образ, в котором будет Windows PE и файлы Nano Server. Мы пойдем этим путем. Копируем директорию NanoServer в W:\WinPE_64\media\. После этого создаём ISO образ командой MakeWinPEMedia /ISO W:\WinPE_64 W:\WinPE_64.iso Обратим внимание, что MakeWinPEMedia - это скрипт в составе WADK, и, если поменять ключ, он с тем же успехом сделает загрузочный USB стикер.
Увеличить
(нажмите на изображение для его увеличения)
По окончанию данной процедуры мы получаем файл образа WinPE_64.iso, в котором подготовлена Windows PE и находятся файлы Nano Server.
Шестой шаг - это загрузка с образа на только что созданной виртуальной машине или физическом компьютере, после которой попадаем в командную строку, в которой необходимо перейти в директорию на диске d:\nanoServer. Если диск D пустой или вы не нашли директорию, попробуйте следующее:
Внимание!!! Выполняем только в командной строке Windows PE:
Diskpart (вызываем редактор разделов)
Select disk 0 (выбираем 0 диск)
Clean (удаляем все разделы с этого диска)
Exit (выходим из редактора разделов
exit (после этой команды произойдёт перезагрузка компьютера)
Далее попробуйте перейти в директорию d:\nanoserver. Затем запустите команду diskpart /s Bios_Partition_Structure.txt или diskpart /s UEFI_Partition_Structure.txt. Выбор команды, которая будет создавать разделы, определяется типом загрузки. Содержимое Bios_Partition_Structure.txt и UEFI_Partition_Structure.txt мы обсуждали в конце второго раздела.
После создания разделов запустим скрипт Apply_on_Hardware_Bios.bat или Apply_on_Hyper-V_VM.bat, в зависимости от типа машины. После окончания работы скрипта машина уйдет в перезагрузку. После перезагрузки на экране долго ничего не появляется, все равно управление с экрана не будет доступно.
Седьмой заключительный шаг - подключение к Nano Server. Заглянем на наш DHCP сервер, который выдал нам адрес, и запомним его. Запустим PowerShell от имени администратора на локальной машине:
$ip = "192.168.10.105"
$user = "Administrator"
Set-Item WSMAN:\\localhost\client\TrustedHosts $ip -Force
chcp 65001
Enter-PSSession -ComputerName $ip -Credential $user
введем пароль и запустим cmdlet get-process/
Увеличить
(нажмите на изображение для его увеличения)
Ресурсы: