[Yandex Cloud documentation](../../../index.md) > [Yandex BareMetal](../../index.md) > [Step-by-step guides](../index.md) > Servers > Reinstalling the server OS > Reinstalling the OS from a Marketplace image

# Reinstalling an OS from a Marketplace image

Marketplace is a catalog of preconfigured images of operating systems available for installation on BareMetal servers.

In Yandex BareMetal, you can reinstall a server OS from a public [Marketplace image](../../concepts/images.md#marketplace-images). During reinstallation, you can select any BareMetal server OS available in Marketplace, redistribute disk space, rebuild RAID arrays, and reconfigure root user access settings.

{% note warning %}

After reinstalling the OS, data on the disks will be deleted. The server configuration will remain intact.

{% endnote %}

To reinstall a BareMetal server OS:

{% list tabs group=instructions %}

- Management console {#console}

  1. In the [management console](https://console.yandex.cloud), select the folder containing your server.
  1. Navigate to **BareMetal**.
  1. Find the server you need in the list, click ![ellipsis](../../../_assets/console-icons/ellipsis.svg) in its row, and select ![ArrowsRotateLeft](../../../_assets/console-icons/arrows-rotate-left.svg) **Re-install OS**.
  1. In the window that opens:

      1. Under **Image**, select one of the available OS images.
      1. Optionally, under **Disk**, configure [disk](../../concepts/disks/disk-types.md) partitioning:
         
         1. Click **Configure disk layout**.
         1. Specify partition settings. To create a new partition, click ![icon](../../../_assets/console-icons/plus.svg) **Add partition**.
         
             To configure [RAID](../../concepts/disks/raid.md) arrays and disk partitions by yourself, click **Remove RAID**.
         1. Click **Save**.

          If you do not modify the disk partitioning, the server will maintain its existing RAID configuration and disk allocation settings.
      1. Under **Access**:

          1. In the **Password** field, select one of the following options to create a root password:
          
              * To generate a new root password, select `New password` and click **Generate**.
          
                  {% note warning %}
                  
                  This option requires you to maintain password security. Save the password you generated in a secure location. Yandex Cloud does not store it, and you will not be able to retrieve it once the server is deployed.
                  
                  {% endnote %}
          
              * To use the root password saved in a Yandex Lockbox [secret](../../../lockbox/concepts/secret.md), select `Lockbox secret`.
          
                  In the **Name**, **Version**, and **Key** fields, select the secret containing your password, its version, and its key, respectively.
                  
                  If you do not have a Yandex Lockbox secret, click **Create** to create it.
          
                  Choose the `Custom` secret type to specify a custom password or `Generated` to generate password automatically.
          
          1. In the **Public SSH key** field, select the SSH key saved in your [organization user](../../../organization/concepts/membership.md) profile.
          
              If there are no SSH keys in your profile or you want to add a new key:
              
              1. Click **Add key**.
              1. Enter a name for the SSH key.
              1. Select one of the following:
              
                  * `Enter manually`: Paste the contents of the public SSH key. You need to [create](../../../compute/operations/vm-connect/ssh.md#creating-ssh-keys) an SSH key pair on your own.
                  * `Load from file`: Upload the public part of the SSH key. You need to create an SSH key pair on your own.
                  * `Generate key`: Automatically create an SSH key pair.
                  
                    When adding a new SSH key, an archive containing the key pair will be created and downloaded. In Linux or macOS-based operating systems, unpack the archive to the `/home/<user_name>/.ssh` directory. In Windows, unpack the archive to the `C:\Users\<user_name>/.ssh` directory. You do not need additionally enter the public key in the management console.
              
              1. Click **Add**.
              
              The system will add the SSH key to your organization user profile. If the organization has [disabled](../../../organization/operations/os-login-access.md) the ability for users to add SSH keys to their profiles, the added public SSH key will only be saved in the user profile inside the newly created resource.

      1. Click **Re-install** and wait for the server OS reinstallation to complete.

- CLI {#cli}

   If you do not have the Yandex Cloud CLI yet, [install and initialize it](../../../cli/quickstart.md#install).

   The folder used by default is the one specified when [creating](../../../cli/operations/profile/profile-create.md) the CLI profile. To change the default folder, use the `yc config set folder-id <folder_ID>` command. You can also specify a different folder for any command using `--folder-name` or `--folder-id`. If you access a resource by its name, the search will be limited to the default folder. If you access a resource by its ID, the search will be global, i.e., through all folders based on access permissions.

   1. View the description of the command for reinstalling the OS:

      ```bash
      yc baremetal server reinstall --help
      ```

   1. Reinstall the OS:

      ```bash
      yc baremetal server reinstall \
        --name <server_name> \
        --os-settings "image-id=<image_ID>,image-name=<image_name>,ssh-key-public=<public_SSH_key_contents>,ssh-key-user-id=<SSH_key_user_ID>,password-plain-text=<user_password>,password-lockbox-secret={secret-id=<secret_ID>,version-id=<secret_version>,key=<secret_key>}" \
        --storage "partition={type=<file_system>,size-gib=<partition_size>,mount-point=<mount_point>},raid-type=<RAID array level>,disk={id=<disk_number>,size-gib=<disk_size>,type=<disk_type>}"
      ```

      Where:
      * `--name`: Server name.
      * `--os-settings`: OS settings. To lease a server without an operating system, skip this parameter. Possible settings:
        
        * `image-id`: ID of an available Yandex Cloud Marketplace public OS [image](../../concepts/images.md#marketplace-images).
        * `image-name`: Name of one of the available Yandex Cloud Marketplace public OS images.
        * `ssh-key-public`: Public SSH key contents. You will need to [create](../../../compute/operations/vm-connect/ssh.md#creating-ssh-keys) your own SSH key pair to establish a secure server connection.
        * `ssh-key-user-id`: SSH key user ID.
        * `password-plain-text`: Root user's password.
        
          {% note warning %}
          
          This option requires you to maintain password security. Save the password you generated in a secure location. Yandex Cloud does not store it, and you will not be able to retrieve it once the server is deployed.
          
          {% endnote %}
        
        * `password-lockbox-secret`: Yandex Lockbox [secret](../../../lockbox/concepts/secret.md):
          * `secret-id`: Secret ID.
          * `version-id`: Secret version.
          * `key`: Secret key.
      * `--storage`: [Disk](../../concepts/disks/disk-types.md) partitioning settings. This is an optional setting. Possible settings:
        
        * `partition`: Disk partition:
          
          * `type`: File system. The possible values are `Ext3`, `Ext4`, `Swap`, or `Xfs`.
          * `size-gib`: Partition size in GB.
          * `mount-point`: Mount point.
        
        * `disk`: Disk:
          
          * `id`: Disk number.
          * `size-gib`: Disk size in GB.
          * `type`: Disk type.
        * `raid-type`: [RAID array level](../../concepts/disks/raid.md#levels).

- API {#api}

  To reinstall a server OS, use the [reinstall](../../api-ref/Server/reinstall.md) REST API method for the [Server](../../api-ref/Server/index.md) resource or the [ServerService/Reinstall](../../api-ref/grpc/Server/reinstall.md) gRPC API call.

{% endlist %}

## Example {#example}

Reinstall the OS:

{% list tabs group=instructions %}

- CLI {#cli}

  ```bash
  yc baremetal server reinstall \
    --name demo-baremetal-server \
    --os-settings "image-id=ly5vtno2mjr3k4iuecur,password-plain-text=FDrxicR********,ssh-key-public=ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGcM4tRfRHJGrlLMT+YJFr+aOdSQ********"
  ```

  Result:

  ```text
  done (22m47s)
  id: ly5u2442ulmz********
  cloud_id: b1gia87mbaom********
  folder_id: b1g0ijbfaqsn********
  name: demo-baremetal-server
  description: My first BareMetal server
  zone_id: ru-central1-m
  hardware_pool_id: ru-central1-m4
  status: RUNNING
  os_settings:
    image_id: ly5vtno2mjr3k4iuecur
    ssh_public_key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGcM4tRfRHJGrlLMT+YJFr+aOdSQYnYYjAoj********
    storages:
      - partitions:
          - type: EXT3
            size_gib: "9"
            mount_point: /boot
          - type: SWAP
            size_gib: "4"
          - type: EXT4
            mount_point: /
        raid:
          type: RAID10
          disks:
            - id: ly54aes2ecmb********
              type: HDD
              size_gib: "1862"
            - id: ly5nrgud6zrt********
              type: HDD
              size_gib: "1862"
            - id: ly5yf2ylmchh********
              type: HDD
              size_gib: "1862"
            - id: ly5loug77ciu********
              type: HDD
              size_gib: "1862"
  configuration_id: ly5lymxdltk3xitpkrmi
  created_at: "2025-07-09T07:23:39.323794Z"
  labels:
    env: test
  ```

- API {#api}

  ```bash
  curl -X POST \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer <IAM_token>" \
    -d '{
    "osSettingsSpec": {
    "imageId": "ly5vyzcggvci********",
    "storages": [
      {
        "partitions": [
          {
            "type": "EXT3",
            "sizeGib": "9",
            "mountPoint": "/boot"
          },
          {
            "type": "SWAP",
            "sizeGib": "4"
          },
          {
            "type": "EXT4",
            "mountPoint": "/"
          }
        ],
        "raid": {
          "disks": [
            {
              "id": "ly536lgz5cdo********",
              "type": "HDD",
              "sizeGib": "1862"
            },
            {
              "id": "ly55nr77qcgq********",
              "type": "HDD",
              "sizeGib": "1862"
            },
            {
              "id": "ly57e5ouat4r********",
              "type": "HDD",
              "sizeGib": "1862"
            },
            {
              "id": "ly5g77vbnavh********",
              "type": "HDD",
              "sizeGib": "1862"
            }
          ],
          "type": "RAID10"
        }
       }
      ],
      "sshPublicKey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMYMj0PbB7ObhwL0z3y+vN0BfNK********",
      "passwordLockboxSecret": {
        "secretId": "e6q44i0gmlrh********",
        "versionId": "e6q3ba84ur0a********",
        "key": "password"
      }
     }
    }' \
    "https://baremetal.api.cloud.yandex.net/baremetal/v1alpha/servers/<server_ID>:reinstall"
  ```

  Where:

  * `<server_ID>`: ID of the server you want to update. To find out the ID, follow [this guide](get-info.md).

  * `osSettingsSpec`: OS settings. To lease a server without an operating system, skip this parameter.
  Possible settings:
    * `imageId`: ID of an available Yandex Cloud Marketplace public OS [image](../../concepts/images.md#marketplace-images).
    * `storages[]`: Disk partitioning settings. This is an optional parameter. Possible settings:
      * `partitions[]`: Disk partition:
        * `type`: File system. The possible values are `EXT4`, `EXT3`, `SWAP`, or `XFS`.
        * `sizeGib`: Partition size in GB.
        * `mountPoint`: Mount point.
      * `disk`: Disk settings:
        * `id`: Disk ID.
        * `type`: Disk type. The possible values are `HDD`, `SSD`, and `NVME`.
        * `sizeGib`: Disk size in GB.
      * `raid`: RAID array settings:
        * `type`: RAID type. The possible values are `RAID0`, `RAID1`, and `RAID10`.
        * `disks[]`: Disk array in a RAID configuration. Each disk contains the following fields: `id`, `type`, and `sizeGib`.
    * `sshPublicKey`: Public SSH key contents. You will need to [create](../../../compute/operations/vm-connect/ssh.md#creating-ssh-keys) your own SSH key pair to establish a secure server connection.
    * `userSshId`: SSH key user ID. This is an optional parameter.
    * `passwordPlainText`: Root user's password. This is an optional parameter.
  
      {% note warning %}
      
      This option requires you to maintain password security. Save the password you generated in a secure location. Yandex Cloud does not store it, and you will not be able to retrieve it once the server is deployed.
      
      {% endnote %}
  
    * `passwordLockboxSecret`: Yandex Lockbox [secret](../../../lockbox/concepts/secret.md):
      * `secretId`: Secret ID.
      * `versionId`: Secret version.
      * `key`: Secret key.

  Result:

  ```bash
  {
    "done": false,
    "metadata": {
      "@type": "type.googleapis.com/yandex.cloud.baremetal.v1alpha.ReinstallServerMetadata",
      "serverId": "ly56xpblirh4********"
    },
    "id": "ly5ryflh7v5p********",
    "description": "Server reinstall",
    "createdAt": "2025-12-07T20:47:23.928014Z",
    "createdBy": "ajeb9l33h6mu********",
    "modifiedAt": "2025-12-07T20:47:23.928014Z"
  }
  ```

  Follow the status of the operation by the `done` field.

{% endlist %}