VK Cloud logo
Обновлена27 марта 2024 г. в 15:20

Подготовка образа ОС Windows для создания ВМ

В качестве примера использован образ Windows Server 2016 редакции CORE, команды приведены на языке PowerShell.

Подготовительные шаги

  1. Убедитесь, что у вас установлен и настроен Git.

  2. Клонируйте репозиторий со скриптами автоматизированной сборки windows-imaging-tools.

  3. Клонируйте репозиторий для обновления образа системы WindowsUpdateCLI.

  4. Настройте инструментарий:

  5. Скачайте ISO-образ операционной системы, для которого планируется миграция в VK Cloud. Рекомендуется использовать en-US версию образа.

  6. Убедитесь, что клиент OpenStack установлен, и пройдите аутентификацию в проекте.

1. Подготовьте установочный WIM-файл ОС

  1. Подключите скачанный ISO-образ ОС.

  2. Выведите список всех версий Windows с помощью выполненной от имени администратора команды:

    Get-WindowsImage -ImagePath E:\sources\Install.wim

    Здесь E:\sources\Install.wim — полный пусть к WIM-файлу системы на смонтированном диске.

    Появится список редакций с указанием ImageIndex ее номера:

    1ImageIndex      : 1
    2ImageName       : Windows Server 2016 Standard
    3ImageDescription: Это рекомендуемый вариант. Он сокращает управление и обслуживание за счет установки только того, что требуется для большинства приложений и ролей сервера. Он не включает графический интерфейс пользователя, однако вы можете полностью управлять сервером локально или удаленно с помощью Windows PowerShell или других средств. См. раздел "Варианты установки Windows Server".
    4ImageSize       : 9 146 079 566 bytes
    5
    6ImageIndex      : 2
    7ImageName       : Windows Server 2016 Standard (возможности рабочего стола)
    8ImageDescription: Этот вариант подходит, если нужен графический пользовательский интерфейс (например, для обеспечения обратной совместимости приложения, которое не может работать при установке основных серверных компонентов). Поддерживаются все роли и компоненты сервера. Подробнее: "Варианты установки Windows Server".
    9ImageSize       : 15 219 002 744 bytes
  3. Экспортируйте редакцию с ImageIndex = 1 с помощью команды:

    1dism `
    2/export-image `
    3/SourceImageFile:E:\sources\Install.wim `
    4/SourceIndex:1 `
    5/DestinationImageFile:D:\Temp\install.wim `
    6/Compress:max `
    7/CheckIntegrity

    Здесь:

    • D:\Temp\install.wim — полный путь на локальном диске, где будет сохранен экспортируемый образ;
    • SourceIndex:1 — номер индекса необходимой редакции.

2. Настройте внешний коммутатор в Hyper-V

Создайте виртуальный коммутатор external с подключением в интернет.

3. Соберите образ локально

  1. Перейдите в каталог windows-imaging-tools и импортируйте модули:

    1Import-Module .\WinImageBuilder.psm1
    2Import-Module .\Config.psm1
    3Import-Module .\UnattendResources\ini.psm1
  2. Перенесите содержимое каталога WindowsUpdateCLI в windows-imaging-tools\UnattendResources\WindowsUpdates.

  3. Создайте конфигурационный файл config.ini:

    1$ConfigFilePath = ".\config.ini"
    2New-WindowsImageConfig -ConfigFilePath $ConfigFilePath
  4. Откройте созданный файл и проверьте параметры:

    1wim_file_path=D:\Temp\install.wim
    2image_name=Windows Server 2016 SERVERSTANDARDCORE
    3image_path=D:\Win_Server_2016_img.qcow2
    4virtual_disk_format=QCOW2
    5image_type=KVM
    6external_switch=external
    7virtio_iso_path="D:\Drivers\virtio.iso"
    8time_zone="Russian Standard Time"
    9install_qemu_ga=True
    10install_updates=True
    11purge_updates=False
    12compress_qcow2=True

    Здесь:

    • external_switch=external — имя созданного коммутатора;
    • virtio_iso_path="D:\Drivers\virtio.iso" — полный путь к ISO-файлу с драйверами VirtIO;
    • time_zone="Russian Standard Time" — временная зона, можно узнать с помощью команды tzutil /l;
    • purge_updates=False — не очищать каталог WinSXS после установки обновлений.
  5. Запустите локальную сборку образа с помощью команды:

    New-WindowsOnlineImage -ConfigFilePath $ConfigFilePath
  6. Дождитесь завершения выполнения операции и убедитесь, что файл D:\Win_Server_2016_img.qcow2 создан.

4. Импортируйте образ в облако VK Cloud

Воспользуйтесь CLI для импорта образа:

openstack image create --private --container-format bare --disk-format qcow2 --file D:\Win_Server_2016_img.qcow2 --property hw_qemu_guest_agent=yes --property store=s3 --property min_ram=2048 --property os_require_quiesce=yes --property min_disk=40 --property os_type=windows --property os_admin_user=Administrator --property mcs:lic:mswinsrv=true --property mcs_name='Windows Server 2016 Standard (en)' --property mcs_os_distro='server' --property mcs_os_edition='std' --property mcs_os_type='windows' --property mcs_os_lang='en' --property mcs_os_type='windows' --property mcs_os_version='2016' --property os_distro='win2k16' <Наименование образа>

Дождитесь завершения операции. После загрузки образа появится возможность создавать ВМ стандартными средствами платформы VK Cloud.

Удалите неиспользуемые ресурсы

Если импортированный образ вам больше не нужен, удалите его.