---
title: "Bring Your Own Image (BYOI)"
description: "Découvrez comment déployer facilement vos propres images sur des serveurs dédiés"
url: https://docs.ovhcloud.com/fr/guides/bare-metal-cloud/dedicated-servers/bring-your-own-image
lang: fr
lastUpdated: 2026-05-28
---
# Bring Your Own Image (BYOI)

## Objectif

La fonctionnalité Bring Your Own Image (BYOI) vous permet de déployer des images _cloudready_ directement sur votre serveur dédié. Vous pouvez ainsi utiliser le service bare metal comme ressource pour vos déploiements.

**Que signifie _cloudready_ ?**

La norme _cloudready_ signifie généralement être agnostique de l’infrastructure sur laquelle l’image est déployée.
En plus des prérequis et limitations mentionnés ci-dessous, vous devez vous assurer que l'image (téléchargée ou générée) répond correctement à la définition des attentes techniques d'une image cloudready.

**Ce guide vous explique comment utiliser Bring Your Own Image (BYOI) sur votre serveur dédié OVHcloud.**

## Prérequis

- Un [serveur dédié](https://www.ovhcloud.com/fr/bare-metal/) dans votre compte OVHcloud
- Avoir accès à l'[API OVHcloud](/fr/guides/manage-and-operate/api/first-steps.md) (pour la méthode de [déploiement via l'API](#viaapi) de ce guide)
- Votre image doit être inférieure à la RAM du serveur moins 3 Gio

:::info
Pour appliquer les personnalisations OVHcloud au premier démarrage, votre image doit inclure [cloud-init](https://cloud-init.io/) ou une alternative compatible (par exemple [`nuageinit`](https://cgit.freebsd.org/src/tree/libexec/nuageinit/) sur FreeBSD).

:::


***

### Accès à l'espace client OVHcloud

- **Lien direct :** <ManagerLink to="/#/dedicated-servers/server">Serveurs dédiés</ManagerLink>
- **Pour accéder à vos services :** <code className="action">Bare Metal Cloud</code> > <code className="action">Serveurs dédiés</code> > Sélectionnez votre serveur

***


:::warning
Tout comme une installation OS classique, une nouvelle installation par BYOI effacera l'intégralité des données présentes sur le serveur.

:::

## En pratique

**Limites techniques :**

Certaines limites techniques sont liées à l’utilisation de produits physiques comme les serveurs dédiés. Voici une liste non exhaustive à garder à l'esprit lors de la préparation de votre déploiement :

- Type de démarrage : **uefi** ou **legacy**
- Type de partition : **MBR** ou **GPT**
- Format de l'image : **qcow2** ou **raw**

:::warning
**À propos du RAID :**

- Bring Your Own Image (BYOI) ne prend pas en charge la configuration RAID logicielle au moment de l'installation, mais vous pouvez utiliser le service [Bring Your Own Linux (BYOLinux)](/fr/guides/bare-metal-cloud/dedicated-servers/bring-your-own-linux.md) pour le faire. Choisissez le type d'installation personnalisée le plus adapté : [Comparaison entre Bring Your Own Image (BYOI) et Bring Your Own Linux (BYOLinux)](/fr/guides/bare-metal-cloud/dedicated-servers/bring-your-own-image-versus-bring-your-own-linux.md).

- BYOI déploie l'image sur un seul disque : le premier disque du groupe de disques cible.

- Le RAID matériel fonctionne sur les serveurs équipés d'un contrôleur RAID, car il présente la matrice au système d'exploitation comme un seul disque virtuel.

:::

**Méthodes de déploiement :**

- [Déploiement via l'espace client](#viacontrolpanel) : vous permet de déployer simplement votre image depuis l'espace client OVHcloud.
- [Déploiement via API](#viaapi) : vous pouvez utiliser l’API OVHcloud pour intégrer des images dans vos propres scripts afin d’automatiser les déploiements.

### Déploiement de votre image via l’espace client [](#)
Dans l'onglet `Informations générales
`, cliquez sur le bouton `...
` à côté de « Système (OS) » puis cliquez sur `Installer
`.
![BringYourOwnImage Control Panel 01](/images/bare-metal-cloud/dedicated-servers/bring-your-own-image/byoi-controlpanel01.png)
À l'étape suivante, sélectionnez `Personnalisé`
 dans le menu puis `Bring Your Own Image - byoi`
 et cliquez sur `Suivant
`.
![BringYourOwnImage Control Panel 03](/images/bare-metal-cloud/dedicated-servers/bring-your-own-image/byoi-controlpanel03.png)
Vous allez être redirigé vers la page de configuration. Assurez-vous que l'URL de votre image est au bon format. Remplissez le reste des champs obligatoires de cette page. Une fois que vous avez confirmé que les informations sont correctes, cliquez sur `Confirmer
`.
Vous trouverez plus de détails sur les options dans la section « [options de déploiement](#options) » ci-dessous.

![BringYourOwnImage Control Panel 04](/images/bare-metal-cloud/dedicated-servers/bring-your-own-image/byoi-controlpanel04.png)
### Déploiement de votre image via l'API [](#)
Connectez-vous sur [https://api.ovh.com/](https://eu.api.ovh.com/)
 puis rendez-vous dans la section `/dedicated/server
`.

🇪🇺EU▾

[POST/dedicated/server/{serviceName}/reinstall](https://eu.api.ovh.com/console/?section=/dedicated/server&branch=v1#post-/dedicated/server/-serviceName-/reinstall)

Le contenu de la requête API de Bring Your Own Image (BYOI) doit être similaire au fichier JSON suivant :

:::warning
Dans la section `customizations`, seuls les champs `imageURL`, `imageType` et `efiBootloaderPath` sont obligatoires.

:::

```json
{
  "operatingSystem": "byoi_64",
  "customizations": {
    "hostname": "mon-tux",
    "imageURL": "https://cdimage.debian.org/cdimage/cloud/bullseye/20230124-1270/debian-11-generic-amd64-20230124-1270.raw",
    "imageType": "raw",
    "sshKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC9xPpdqP3sx2H+gcBm65tJEaUbuifQ1uGkgrWtNY0PRKNNPdy+3yoVOtxk6Vjo4YZ0EU/JhmQfnrK7X7Q5vhqYxmozi0LiTRt0BxgqHJ+4hWTWMIOgr+C2jLx7ZsCReRk+fy5AHr6h0PHQEuXVLXeUy/TDyuY2JPtUZ5jcqvLYgQ== my-nuclear-power-plant",
    "efiBootloaderPath": "\\efi\\debian\\grubx64.efi",
    "imageCheckSum": "2cbd3dd5606ef95a5cfa47943b3ad453fcc43522915be7f559a296a71395f82f88e621e558df7aa5f3d2e62c20043f9430ad18c900e565a1c070066e8d008aaa",
    "httpHeaders": {
      "Authorization": "Basic bG9naW46cGFzc3dvcmQ="
    },
    "imageCheckSumType": "sha512",
    "configDriveUserData": "I2Nsb3VkLWNvbmZpZwpzc2hfYXV0aG9yaXplZF9rZXlzOgogIC0gc3NoLXJzYSBBQUFBQjhkallpdz09IG15c2VsZkBteWRvbWFpbi5uZXQKCnVzZXJzOgogIC0gbmFtZTogcGF0aWVudDAKICAgIHN1ZG86IEFMTD0oQUxMKSBOT1BBU1NXRDpBTEwKICAgIGdyb3VwczogdXNlcnMsIHN1ZG8KICAgIHNoZWxsOiAvYmluL2Jhc2gKICAgIGxvY2tfcGFzc3dkOiBmYWxzZQogICAgc3NoX2F1dGhvcml6ZWRfa2V5czoKICAgICAgLSBzc2gtcnNhIEFBQUFCOGRqWWl3PT0gbXlzZWxmQG15ZG9tYWluLm5ldApkaXNhYmxlX3Jvb3Q6IGZhbHNlCnBhY2thZ2VzOgogIC0gdmltCiAgLSB0cmVlCmZpbmFsX21lc3NhZ2U6IFRoZSBzeXN0ZW0gaXMgZmluYWxseSB1cCwgYWZ0ZXIgJFVQVElNRSBzZWNvbmRzCg=="
  }
}
```

Même si `configDriveUserData` peut être envoyé à l'API directement en clair en échappant les bons caractères, il est recommandé d'envoyer à l'API le script encodé en base64 en utilisant par exemple la commande UNIX/Linux suivante :

```bash
cat my-data.yaml | base64 -w0
```

Voici la version en clair de `configDriveUserData` de l'exemple ci-dessus :

```yaml
#cloud-config
ssh_authorized_keys:
  - ssh-rsa AAAAB8djYiw== myself@mydomain.net

users:
  - name: patient0
    sudo: ALL=(ALL) NOPASSWD:ALL
    groups: users, sudo
    shell: /bin/bash
    lock_passwd: false
    ssh_authorized_keys:
      - ssh-rsa AAAAB8djYiw== myself@mydomain.net
disable_root: false
packages:
  - vim
  - tree
final_message: The system is finally up, after $UPTIME seconds
```

Une fois les champs complétés, démarrez le déploiement en cliquant sur `Execute
`.
#### Options de déploiement [](#)
| Champ                              | Description                                                                             | Obligatoire                 |
| ---------------------------------- | --------------------------------------------------------------------------------------- | --------------------------- |
| customizations/hostname            | Hostname                                                                                | ❌                           |
| customizations/sshKey              | Clé publique SSH                                                                        | ❌                           |
| customizations/imageURL            | URL de l'image                                                                          | ✅                           |
| customizations/imageType           | Type/format de l'image (qcow2, raw)                                                     | ✅                           |
| customizations/imageCheckSum       | Checksum de l'image                                                                     | ❌                           |
| customizations/imageCheckSumType   | Type de checksum de l'image (md5, sha1, sha256, sha512)                                 | ❌ (sauf si checksum fourni) |
| customizations/configDriveUserData | Données utilisateur (user-data) cloud-init¹                                             | ❌                           |
| customizations/configDriveMetadata | Métadonnées cloud-init personnalisées, exposées sous la clé `meta` de `meta_data.json`⁴ | ❌                           |
| customizations/httpHeaders?Key     | Clé des en-têtes HTTP                                                                   | ❌²                          |
| customizations/httpHeaders?Value   | Valeur des en-têtes HTTP                                                                | ❌²                          |
| userMetadata/efiBootloaderPath     | Chemin du bootloader EFI                                                                | ✅³                          |

¹ [Données utilisateur](https://cloudinit.readthedocs.io/en/latest/explanation/format.html)
 cloud-init standard — généralement un document `#cloud-config`
 ou un script (voir les [exemples officiels de cloud-init](https://docs.cloud-init.io/en/latest/reference/examples.html)
). Équivalent à `server create --user-data <fichier>`
 chez OpenStack. Sa représentation JSON doit être sur une seule ligne avec `\n`
 pour les retours à la ligne, car les chaînes JSON ne peuvent pas contenir de retours à la ligne littéraux.

² À utiliser uniquement si vous avez besoin d'en-têtes HTTP, tels que `Basic Auth`


³ Le chemin du bootloader EFI est utilisé par iPXE pour démarrer votre système d'exploitation. Pour plus d'informations, consultez notre guide « [Comprendre le processus de démarrage des serveurs dédiés](/fr/guides/bare-metal-cloud/dedicated-servers/boot-process.md)
 ». Exemples :
:::info
Les chemins ci-dessous utilisent l'échappement JSON : `\\` représente un seul antislash. Par exemple, `\\efi\\debian\\grubx64.efi` correspond au chemin `\efi\debian\grubx64.efi`.

:::

| Système d'exploitation | efiBootloaderPath                      |
| ---------------------- | -------------------------------------- |
| Debian                 | `\\efi\\debian\\grubx64.efi`           |
| Ubuntu                 | `\\efi\\ubuntu\\grubx64.efi`           |
| Windows                | `\\efi\\microsoft\\boot\\bootmgfw.efi` |
| FreeBSD                | `\\efi\\FreeBSD\\loader.efi`           |
| Alma                   | `\\efi\\almalinux\\shimx64.efi`        |
| Arch Linux             | `\\efi\\arch\\grubx64.efi`             |
| Gentoo                 | `\\efi\\boot\\bootx64.efi`             |

⁴ Objet JSON de couples clé/valeur arbitraires, équivalent à `server create --property clé=valeur` chez OpenStack. Les couples sont écrits dans le `meta_data.json` du config drive sous la clé `meta`, où cloud-init peut les lire. Exemple : `"configDriveMetadata": {"role": "webserver", "env": "prod"}` devient `"meta": {"role": "webserver", "env": "prod"}` dans `meta_data.json`. Voir la [documentation du service de métadonnées OpenStack](https://docs.openstack.org/nova/latest/user/metadata.html#openstack-format-metadata) pour le schéma complet.

:::info
Lorsque vous renseignez l'une des personnalisations de cette page, OVHcloud ajoute une petite partition de [config drive](https://docs.cloud-init.io/en/latest/reference/datasources/configdrive.html) lors de l'installation ; sinon, aucun config drive n'est créé. Cloud-init la lit au premier démarrage. Renseignez `configDriveUserData` pour ajouter vos propres données utilisateur (user-data) cloud-init.

:::

#### Les erreurs clients fréquentes [](#)
Le tableau suivant donne un aperçu des erreurs clients les plus connues et de la manière de les corriger.

| Message d'erreur                                                                                        | Détails                                                                                 | Solution(s)                                                                                                                                                                                                               |
| ------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Please provide checkSum AND checkSumType or none of them                                                | Vous avez précisé l'un des 2 champs parmi : `imageCheckSum` et `imageCheckSumType`.     | Précisez les 2 valeurs ou aucune d'entre elles.                                                                                                                                                                           |
| image provided format is `x` which does not match expected qcow2 format                                 | Peu importe l'extension du fichier, son format réel doit être qcow2.                    | - Changer la valeur de `imageType` à `raw`.<br />- Convertissez votre image au format qcow2.                                                                                                                              |
| image provided has a size of `n` bytes which is larger than `device` of `m` bytes                       | L'image spécifiée a une taille supérieure à celle du disque choisi pour l'installation. | - Si votre serveur possède plusieurs grappes de disques, vous pouvez réessayer une installation sur une autre grappe de disques à l'aide de l'argument `diskgroupid`.<br />- Vous devez réduire la taille de votre image. |
| Can't write `t` on disk                                                                                 | Impossible d'écrire l'image qcow2/raw sur le disque.                                    | Modifier votre image de telle sorte que la commande `qemu-img convert -f "$imageType" -O raw $pathToImageFile "$device"` fonctionne.                                                                                      |
| Could not download, `t` image is too big to download in memory.                                         | Il n'y a pas assez d'espace en RAM pour télécharger l'image.                            | Réduisez la taille de votre image.                                                                                                                                                                                        |
| Could not download image: `<message d'erreur>`                                                          | Impossible de télécharger l'image depuis `imageURL`.                                    | Vérifiez qu'un téléchargement avec `curl` depuis votre serveur en rescue fonctionne. Si des en-têtes HTTP sont requis, vous devez les spécifier à l'aide des paramètres `httpHeaders`.                                    |
| image provided format is not of type raw because no partition table was found. It seems to contain: `x` | Une image de type raw doit contenir une table de partitions                             | Vérifiez que votre image contient bien une table de partitions.                                                                                                                                                           |
| Bad `checkSumType` for downloaded file, got : `n` while expecting `m`.                                  | Le checksum est incorrect.                                                              | - Assurez-vous de spécifier le bon checksum<br />- Vérifiez qu'un téléchargement avec `curl` depuis votre serveur en rescue fonctionne.                                                                                   |

## Aller plus loin

[API OVHcloud et installation d'un OS](/fr/guides/bare-metal-cloud/dedicated-servers/api-os-installation.md)

[Bring Your Own Linux (BYOLinux)](/fr/guides/bare-metal-cloud/dedicated-servers/bring-your-own-linux.md)

[Comparaison entre Bring Your Own Image (BYOI) et Bring Your Own Linux (BYOLinux)](/fr/guides/bare-metal-cloud/dedicated-servers/bring-your-own-image-versus-bring-your-own-linux.md)

[Comprendre le processus de démarrage des serveurs dédiés](/fr/guides/bare-metal-cloud/dedicated-servers/boot-process.md)

Échangez avec notre [communauté d’utilisateurs](https://community.ovhcloud.com/).
