# Restoring a VM or Yandex BareMetal server from a backup


{% note info %}

You can restore neither a VM backup to a BareMetal server, nor a BareMetal server backup to a VM.

{% endnote %}

To avoid errors when recovering from a backup, start by comparing the parameters of the disks and partitions of the backup against those of the [VM](../../../compute/concepts/vm.md) or Yandex BareMetal [server](../../../baremetal/concepts/servers.md). For more information, see [Viewing the parameters of backup disks and partitions](view-disk-layout.md).

{% note tip %}

If the current VM is down, [create](../index.md#connect-vm) a new one with a connection to Cloud Backup and [restore](non-native-recovery.md) a backup to it. To restore from a backup, the new VM must have the `Running` [status](../../../compute/concepts/vm-statuses.md#list-of-statuses).

{% endnote %}

To restore a VM or BareMetal server from a backup:

{% list tabs group=instructions %}

- Management console {#console}

  1. In the [management console](https://console.yandex.cloud), select the folder containing the backup.
  1. Navigate to **Cloud Backup**.
  1. In the left-hand panel, select ![backups](../../../_assets/console-icons/archive.svg) **Backups**.
  1. Depending on the resource you want to recover from the backup, select the **Virtual machines** or **BareMetal servers** tab.
  1. In the line with the backup to restore the VM or BareMetal server from, click ![image](../../../_assets/console-icons/ellipsis.svg) and select **Restore VM** or **Recover BareMetal server**, respectively.
  1. In the window that opens, select the VM or BareMetal server you backed up. In the list, this VM or server will be labeled `(current)` or `(current)`, respectively.
  1. Click **Restore**.

- 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 CLI command to restore a VM or BareMetal server from a backup:

      ```bash
      yc backup backups recover --help
      ```

  1. Get the ID of the backup:

      ```bash
      yc backup backups list
      ```
      
      Result:
      
      ```text
      +--------------------------------------+--------------------------------------+----------------------+--------------------------------------+----------------------+------+------------------+--------+---------------------+
      |                  ID                  |              ARCHIVE ID              | COMPUTE INSTANCE ID  |             RESOURCE ID              |      POLICY ID       | TYPE |      DISKS       |  SIZE  |     CREATED AT      |
      +--------------------------------------+--------------------------------------+----------------------+--------------------------------------+----------------------+------+------------------+--------+---------------------+
      | ab55286e-795f-44dc-90af-b718******** | ef3e8144-fb65-6a59-5ec1-3162******** | jklp0o9i8012******** | 2465BE59-5687-4539-9589-DF7E******** | abc7n3wln123******** | FULL | Disk 1 (15.0 GB) | 1.5 GB | 2023-07-07 16:00:15 |
      | cd50e147-7dfa-449f-816b-67f8******** | gh06b195-c095-1234-7809-0700******** | mnoa5s6d8345******** | 135C519D-B5A3-4781-8DFA-40B3******** | deflqbiwc456******** | FULL | Disk 1 (15.0 GB) | 1.6 GB | 2023-07-03 10:00:10 |
      +--------------------------------------+--------------------------------------+----------------------+--------------------------------------+----------------------+------+------------------+--------+---------------------+
      ```

  1. Get the ID of the VM to restore:

      ```bash
      yc compute instance list
      ```
      
      Result:
      
      ```text
      +----------------------+---------+---------------+---------+--------------+-------------+
      |          ID          |  NAME   |    ZONE ID    | STATUS  | EXTERNAL IP  | INTERNAL IP |
      +----------------------+---------+---------------+---------+--------------+-------------+
      | jklp0o9i8012******** | my-vm-1 | ru-central1-b | RUNNING | 51.250.**.** | 192.168.*.* |
      | mnoa5s6d8345******** | my-vm-2 | ru-central1-b | RUNNING | 84.201.**.** | 192.168.*.* |
      +----------------------+---------+---------------+---------+--------------+-------------+
      ```

      To get the BareMetal server IDs, select **BareMetal** from the list of services of the relevant [folder](../../../resource-manager/concepts/resources-hierarchy.md#folder) in the [management console](https://console.yandex.cloud). The IDs are specified in the server list in the **ID** field.

  1. Restore your VM or BareMetal server from the backup:

      ```bash
      yc backup backups recover \
        --source-backup-id <backup_ID> \
        --destination-instance-id <VM_or_BareMetal_server_ID>
      ```

      Where:

      * `--source-backup-id`: ID of the backup to restore the VM or BareMetal server from.
      * `--destination-instance-id`: ID of the VM or BareMetal server to restore the backup to.

      Result:

      ```text
      ...1s...6s...11s ... 9m4s...9m9s...done (9m9s)
      ```

      For more information about the command, see the [CLI reference](../../../cli/cli-ref/backup/cli-ref/backup/recover.md).

- API {#api}

  Use the [startRecovery](../../backup/api-ref/Backup/startRecovery.md) REST API method for the [Backup](../../backup/api-ref/Backup/index.md) resource or the [BackupService/StartRecovery](../../backup/api-ref/grpc/Backup/startRecovery.md) gRPC API call.

{% endlist %}

{% note info %}

If you are using [LVM](https://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux)) to manage the disk space of the protected resource, learn [how to restore](../../concepts/backup.md#lvm) resources with LVM in Cloud Backup.

{% endnote %}

#### See also {#see-also}

* [Restoring a VM or BareMetal server from a backup of another VM or BareMetal server](non-native-recovery.md)