> For the complete documentation index, see [llms.txt](https://docs.verge.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.verge.io/knowledge-base/fr/virtual-machines/import-rhel-centos-vm.md).

# Comment importer une VM Linux (RHEL, CentOS, SUSE, Debian, Ubuntu)

## Vue d’ensemble

{% hint style="info" %}
**Points clés**

* Les distributions Linux installent uniquement les pilotes pour le matériel détecté lors de l’installation.
* Les VM importées peuvent ne pas démarrer en raison de pilotes virtio manquants pour le matériel VergeOS.
* Vous pouvez résoudre les problèmes de démarrage en ajustant la configuration de la VM et en régénérant l’initramfs.
* Ce guide couvre RHEL, CentOS, Fedora, SUSE, openSUSE, Debian et Ubuntu.
  {% endhint %}

Ce guide explique comment importer des machines virtuelles Linux depuis d’autres hyperviseurs vers VergeOS. Il traite des problèmes potentiels comme des VM qui ne démarrent pas ou qui n’ont pas de connectivité réseau après la migration, et fournit des instructions spécifiques à chaque distribution pour régénérer l’initramfs.

## Prérequis

* L’accès à VergeOS et à l’interface utilisateur VergeOS.
* La familiarité avec l’environnement de l’hyperviseur et la configuration de la VM.
* Les fichiers de la VM importée doivent être présents dans l’environnement VergeOS.

## Étapes

### 1. Mettre à jour la configuration matérielle de la VM

1. **Changez tous les disques durs en `virtio-scsi`**:
   * Dans l’interface utilisateur VergeOS, accédez aux paramètres de la VM.
   * Pour chaque disque dur, changez l’interface en `virtio-scsi` pour des performances et une compatibilité optimales.
2. **Changez tous les NIC en `virtio`**:
   * Assurez-vous que toutes les cartes d’interface réseau (NIC) sont réglées sur `virtio` pour une prise en charge réseau améliorée.
3. **Ajuster l’ordre de démarrage**:
   * Assurez-vous que le disque du système d’exploitation est répertorié comme **ID 0** dans l’ordre de démarrage.

### 2. Démarrer en mode de secours

1. **Démarrez la VM**:
   * Mettez la VM sous tension et, pendant le démarrage, maintenez la touche **Maj gauche** enfoncée pour accéder au menu de démarrage GRUB.
2. **Sélectionner le mode de secours**:
   * Dans le menu GRUB, sélectionnez le mode de secours pour démarrer dans un environnement de récupération minimal.

{% hint style="success" %}
**Alternative SUSE/openSUSE**

Si vous ne pouvez pas démarrer en mode de secours depuis GRUB (ce qui est courant avec SLES15 et openSUSE Leap 15), montez une ISO d’installation sur la VM et démarrez à partir de celle-ci. L’ISO fournira une option « Rescue System ».
{% endhint %}

### 3. Monter le système de fichiers racine et effectuer un chroot

{% hint style="success" %}
**Version RHEL 9+**

Par défaut, les VM de la famille RHEL 9 (par exemple RHEL, AlmaLinux 9, Rocky Linux 9, CentOS Stream 9) utilisent un fichier de configuration LVM pour autoriser explicitement les périphériques en fonction de l’ID matériel. Si une VM a été importée sans conserver les ID matériels/numéros de série des disques, exécutez `pvscan --cache` et `vgchange -ay` pour forcer LVM à rescanner tous les périphériques de bloc. Voir l’article KB : [Les VM de la famille RHEL 9 ne parviennent pas à démarrer après un clonage ou une restauration d’instantané](/knowledge-base/fr/backup-dr/rhel9-boot-failure-clone-snapshot-restore.md) pour obtenir des informations supplémentaires.
{% endhint %}

Une fois démarré en mode de secours, connectez-vous en tant que root et montez le système de fichiers racine.

1. **Trouver la partition racine**:

   Si vous ne savez pas quelle partition contient le système de fichiers racine, listez toutes les partitions disponibles :

   ```bash
   cat /proc/partitions
   ```

   Pour les systèmes utilisant LVM, listez tous les volumes logiques :

   ```bash
   lvdisplay
   ```
2. **Monter la partition racine**:

   Montez la partition racine ou le volume logique dans `/mnt`:

   ```bash
   mount /dev/<nom_périphérique> /mnt
   ```

   Remplacez `<device_name>` avec votre partition racine (par ex., `sda2`, `mapper/vg0-root`).
3. **Vérifier le point de montage**:

   Vérifiez que vous avez monté le bon système de fichiers en listant son contenu :

   ```bash
   ls /mnt
   ```

   Vous devriez voir des répertoires tels que `/root`, `/boot`, `/home`, `/etc`et `/var`.
4. **Montez en liaison les systèmes de fichiers virtuels**:

   Utilisez la boucle for suivante pour lier les systèmes de fichiers virtuels nécessaires :

   ```bash
   for i in proc sys dev run; do mount --rbind /$i /mnt/$i; done
   ```

   Sinon, montez-les individuellement :

   ```bash
   mount --rbind /proc /mnt/proc
   mount --rbind /sys /mnt/sys
   mount --rbind /dev /mnt/dev
   mount --rbind /run /mnt/run
   ```

   Pour les systèmes EFI/UEFI, montez également la partition EFI :

   ```bash
   mount /dev/sdX1 /mnt/boot/efi
   ```

   Remplacez /dev/sdX1 par votre partition EFI réelle (vérifiez avec lsblk ou fdisk -l).
5. **Effectuez un chroot dans le système de fichiers monté**:

   ```bash
   chroot /mnt
   ```
6. **Montez les autres systèmes de fichiers**:

   Après être entré dans le chroot, montez les partitions supplémentaires définies dans fstab :

   ```bash
   mount -a
   ```

### 4. Régénérer l’initramfs

Après être entré dans le chroot du système, régénérez l’initramfs avec les pilotes virtio nécessaires.

#### RHEL / CentOS / Fedora / SUSE (avec dracut)

Exécutez la commande suivante pour régénérer l’initramfs :

```bash
dracut -f --regenerate-all --add-drivers "virtio_blk virtio_net virtio_pci"
```

Cela ajoute les pilotes pour `virtio_blk` (périphérique de bloc), `virtio_net` (périphérique réseau), et `virtio_pci` (bus PCI) à l’initramfs.

#### Debian / Ubuntu (avec update-initramfs)

Si `dracut` n’est pas disponible (ce qui est courant sur Debian 10 et Ubuntu), utilisez `update-initramfs` à la place :

1. Ajoutez les modules virtio à la configuration de l’initramfs :

   ```bash
   cat >> /etc/initramfs-tools/modules << EOF
   virtio_pci
   virtio_blk
   virtio_net
   EOF
   ```
2. Régénérez l’initramfs :

   ```bash
   update-initramfs -u
   ```

### 5. Redémarrer et vérifier

1. **Quittez l’environnement chroot**:

   ```bash
   exit
   ```
2. **Redémarrez la VM**:

   ```bash
   reboot
   ```
3. **Vérifier le démarrage et la connectivité réseau**:
   * Confirmez que la VM démarre correctement et que la connectivité réseau fonctionne via la `virtio` carte réseau (NIC).

## Dépannage

{% hint style="warning" %}
**Problèmes courants**

* **La VM ne démarre pas**:
  * **Solution**: Vérifiez à nouveau l’ordre de démarrage dans les paramètres de la VM. Le disque du système d’exploitation doit être défini comme **ID 0**.
* **Pas de connectivité réseau**:
  * **Solution**: Assurez-vous que les NIC sont réglées sur `virtio` et que l’initramfs a été régénéré avec les pilotes réseau appropriés.
    {% endhint %}

## Ressources supplémentaires

* [Migration des VM](/run-the-platform/virtual-machines/vm-migration-overview.md)
* [Bonnes pratiques VM](/run-the-platform/virtual-machines/vm-best-practices.md)
* [Wiki Dracut](https://github.com/dracutdevs/dracut/wiki/)

## Retour

{% hint style="info" %}
**Besoin d’aide ?**

Si vous avez des questions ou rencontrez des problèmes lors de l’importation d’une VM, veuillez contacter notre équipe d’assistance pour obtenir de l’aide.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.verge.io/knowledge-base/fr/virtual-machines/import-rhel-centos-vm.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
