# Создать образ из диска

Чтобы создать образ из диска:

{% list tabs group=instructions %}

- Консоль управления {#console}

  {% note info %}
  
  С помощью консоли управления вы можете создать образы из сетевых SSD- и HDD-дисков. Чтобы создать образ из нереплицируемого SSD-диска или сверхбыстрого сетевого хранилища с тремя репликами (SSD), используйте интерфейсы CLI, Terraform или API.
  
  {% endnote %}

  1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, в котором нужно создать образ.
  1. Перейдите в сервис **Compute Cloud**.
  1. На панели слева выберите ![image](../../../_assets/console-icons/hard-drive.svg) **Диски**.
  1. В строке с нужным диском нажмите значок ![image](../../../_assets/console-icons/ellipsis.svg) и выберите **Создать образ**.
  1. Введите имя образа. Требования к имени:

      * длина — от 3 до 63 символов;
      * может содержать строчные буквы латинского алфавита, цифры и дефисы;
      * первый символ — буква, последний — не дефис.

  1. При необходимости укажите произвольное текстовое описание образа.
  1. Разверните блок **Дополнительно**.
  1. (Опционально) В поле **Поколение оборудования** выберите нужное [поколение](../../concepts/hardware-generations.md#configurations) виртуализированного оборудования, которое будет закреплено за создаваемым образом:

      * `Gen 1.2 (MBR, BIOS)` — поколение `Gen 1.2`.
      * `Gen 2 (GPT, UEFI)` — поколение `Gen 2`.
      * `Gen 1.1 (MBR, BIOS)` — поколение `Gen 1.1`.

      Если вы не зададите поколение оборудования, по умолчанию за создаваемым образом будет закреплено то же поколение, что и за диском-источником.
  1. (Опционально) Чтобы создать [оптимизированный образ](../../concepts/image.md#images-optimized-for-deployment), включите опцию **Оптимизация**.
  1. Нажмите **Создать**.

- CLI {#cli}

  Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../../cli/quickstart.md#install).

  По умолчанию используется каталог, указанный при [создании](../../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

  1. Посмотрите описание команды CLI для создания образа:
  
      ```bash
      yc compute image create --help
      ```
  
  1. Получите список дисков в каталоге по умолчанию:
  
      ```bash
      yc compute disk list
      ```
      
      Результат:
      
      ```text
      +----------------------+--------------+-------------+-------------------+--------+----------------------+-----------------+-------------+
      |          ID          |     NAME     |    SIZE     |       ZONE        | STATUS |     INSTANCE IDS     | PLACEMENT GROUP | DESCRIPTION |
      +----------------------+--------------+-------------+-------------------+--------+----------------------+-----------------+-------------+
      | a7lqgbt0bb9s******** | first-disk   | 20401094656 |   kz1-a   | READY  | a7lcvu28njbh******** |                 |             |
      | a7lv5j5hm1p1******** | second-disk  | 21474836480 |   kz1-a   | READY  |                      |                 |             |
      +----------------------+--------------+-------------+-------------------+--------+----------------------+-----------------+-------------+
      ```
  
  1. Выберите идентификатор (`ID`) или имя (`NAME`) нужного диска.
  1. Создайте образ в каталоге по умолчанию:

      ```bash
      yc compute image create \
        --name <имя_создаваемого_образа> \
        --source-disk-name <имя_диска-источника> \
        --pooled \
        --hardware-generation-id <поколение_оборудования> \
        --hardware-features pci_topology=<топология_PCI>
      ```

      Где:
      * `--name` — имя создаваемого образа. Требования к имени:

          * длина — от 3 до 63 символов;
          * может содержать строчные буквы латинского алфавита, цифры и дефисы;
          * первый символ — буква, последний — не дефис.

      * `--source-disk-name` — имя диска-источника. Вместо имени вы можете передать в команду идентификатор диска-источника в параметре `--source-disk-id`.
      * `--pooled` — параметр, позволяющий создать [оптимизированный образ](../../concepts/image.md#images-optimized-for-deployment). Необязательный параметр.
      * `--hardware-generation-id` — [поколение](../../concepts/hardware-generations.md#configurations) виртуализированного оборудования, закрепляемое за образом. Необязательный параметр. Возможные значения:

          * `legacy` — поколение `Gen 1`. При выборе этого поколения вы также можете задать топологию PCI в параметре `--hardware-features`.
          * `generation2` — поколение `Gen 2`. При выборе этого поколения задавать параметр `--hardware-features` не нужно.

          Если параметр не задан, за созданным образом будет закреплено то же поколение оборудования, которое закреплено за диском-источником.
      * `--hardware-features` — дополнительные настройки для поколения `Gen 1`. Необязательный параметр. Возможные значения:

          * `pci_topology=v1` — выбор топологии `PCI_TOPOLOGY_V1`.
          * `pci_topology=v2` — выбор топологии `PCI_TOPOLOGY_V2`.

          Если за диском-источником закреплено поколение `Gen 2`, по умолчанию у создаваемого образа для параметра `--hardware-features` будет задано значение `pci_topology=v1`.

          Если за диском-источником закреплено поколение `Gen 1`, по умолчанию у создаваемого образа для параметра `--hardware-features` будет задано то же значение, что и у диска-источника.

      Результат:

      ```text
      done (33s)
      id: fd8ar40hlfbk********
      folder_id: b1gt6g8ht345********
      created_at: "2025-06-23T18:53:39Z"
      name: my-first-image
      storage_size: "3116367872"
      min_disk_size: "21474836480"
      product_ids:
        - f2evcrm9ti79********
      status: READY
      os:
        type: LINUX
      hardware_generation:
        legacy_features:
          pci_topology: PCI_TOPOLOGY_V1
      ```

- Terraform {#tf}

  Если у вас еще нет Terraform, [установите его и настройте провайдер Yandex Cloud](../../../tutorials/infrastructure-management/terraform-quickstart.md#install-terraform).
  
  
  Чтобы управлять инфраструктурой с помощью Terraform от имени сервисного аккаунта или пользовательских аккаунтов: аккаунта на Яндексе, федеративного аккаунта и локального пользователя, [аутентифицируйтесь](../../../terraform/authentication.md) соответствующим способом.

  1. Опишите в конфигурационном файле параметры ресурса `yandex_compute_image`.

     Пример структуры конфигурационного файла:

     ```hcl
     resource "yandex_compute_image" "image-1" {
       name         = "<имя_образа>"
       source_disk  = "<идентификатор_диска-источника>"
       hardware_generation {
         legacy_features {
           pci_topology = "<топология_PCI>"
         }
       }
     }
     ```

      Где:
      * `name` — имя создаваемого образа. Требования к имени:

          * длина — от 3 до 63 символов;
          * может содержать строчные буквы латинского алфавита, цифры и дефисы;
          * первый символ — буква, последний — не дефис.

      * `source_disk` — идентификатор диска-источника.
      * `hardware_generation` — блок настроек с описанием [поколения](../../concepts/hardware-generations.md#configurations) виртуализированного оборудования, закрепляемого за образом. Необязательный параметр. Включает в себя следующие блоки настроек:

          * `legacy_features` — блок настроек с описанием параметров при выборе поколения `Gen 1`:
          
              * `pci_topology` — выбор топологии PCI. Возможные значения:
          
                  * `PCI_TOPOLOGY_V1` — выбор топологии `PCI_TOPOLOGY_V1`.
                  * `PCI_TOPOLOGY_V2` — выбор топологии `PCI_TOPOLOGY_V2`.
          
              Использование блока `legacy_features` делает невозможным использование блока `generation2_features`.
          * `generation2_features` — блок настроек для выбора поколения `Gen 2`. При выборе поколения `Gen 2` задавать дополнительные настройки не требуется.
          
              Использование блока `generation2_features` делает невозможным использование блока `legacy_features`.

          {% note info %}

          Если блок `hardware_generation` не задан, за созданным образом будет закреплено то же поколение оборудования, которое закреплено за диском-источником.

          {% endnote %}

     Более подробную информацию о ресурсе `yandex_compute_image` читайте в [документации провайдера](../../../terraform/resources/compute_image.md).

  1. Проверьте корректность конфигурационных файлов.

     1. В командной строке перейдите в папку, где вы создали конфигурационный файл.
     1. Выполните проверку с помощью команды:

        ```bash
        terraform plan
        ```

       Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.

  1. Разверните облачные ресурсы.

     1. Выполните команду:

        ```bash
        terraform apply
        ```

     1. Подтвердите создание ресурсов.

     После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в [консоли управления](https://kz.console.yandex.cloud).

- API {#api}

  1. Получите список дисков с помощью метода REST API [list](../../api-ref/Disk/list.md) для ресурса [Disk](../../api-ref/Disk/index.md) или вызова gRPC API [DiskService/List](../../api-ref/grpc/Disk/list.md).
  1. Создайте образ с помощью метода REST API [create](../../api-ref/Image/create.md) для ресурса [Image](../../api-ref/Image/index.md) или вызова gRPC API [ImageService/Create](../../api-ref/grpc/Image/create.md). В запросе укажите идентификатор диска-источника, а также при необходимости задайте нужное [поколение](../../concepts/hardware-generations.md#configurations) виртуализированного оборудования в [объекте `hardwareGeneration`](../../api-ref/Image/create.md#yandex.cloud.compute.v1.HardwareGeneration) ([`hardware_generation`](../../api-ref/grpc/Image/create.md#yandex.cloud.compute.v1.HardwareGeneration) при использовании gRPC API).

{% endlist %}

После создания образ перейдет в статус `CREATING`. Дождитесь, когда образ перейдет в статус `READY`, прежде чем его использовать.