> 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/es/virtual-machines/import-rhel-centos-vm.md).

# Cómo importar una VM Linux (RHEL, CentOS, SUSE, Debian, Ubuntu)

## Resumen

{% hint style="info" %}
**Puntos clave**

* Las distribuciones Linux instalan controladores solo para el hardware detectado durante la instalación.
* Las VMs importadas pueden no arrancar debido a la falta de controladores virtio para el hardware de VergeOS.
* Puedes resolver los problemas de arranque ajustando la configuración de la VM y regenerando el initramfs.
* Esta guía cubre RHEL, CentOS, Fedora, SUSE, openSUSE, Debian y Ubuntu.
  {% endhint %}

Esta guía explica cómo importar máquinas virtuales Linux desde otros hipervisores a VergeOS. Aborda posibles problemas como que las VMs no arranquen o carezcan de conectividad de red después de la migración, y proporciona instrucciones específicas por distribución para regenerar el initramfs.

## Requisitos previos

* Acceso a VergeOS y a la interfaz de usuario de VergeOS.
* Familiaridad con el entorno del hipervisor y la configuración de la VM.
* Los archivos de la VM importada deben estar presentes en el entorno de VergeOS.

## Pasos

### 1. Actualizar la configuración de hardware de la VM

1. **Cambia todos los discos duros a `virtio-scsi`**:
   * En la interfaz de VergeOS, navega a la configuración de la VM.
   * Para cada disco duro, cambia la interfaz a `virtio-scsi` para un rendimiento y una compatibilidad óptimos.
2. **Cambia todas las NIC a `virtio`**:
   * Asegúrate de que todas las tarjetas de interfaz de red (NIC) estén configuradas como `virtio` para un soporte de red mejorado.
3. **Ajustar el orden de arranque**:
   * Asegúrate de que el disco del SO aparezca como **ID 0** en el orden de arranque.

### 2. Arrancar en modo de rescate

1. **Inicia la VM**:
   * Enciende la VM y, durante el arranque, mantén pulsada la tecla **Mayús izquierda** para acceder al menú de arranque de GRUB.
2. **Seleccionar modo de rescate**:
   * En el menú de GRUB, selecciona el modo de rescate para arrancar en un entorno mínimo de recuperación.

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

Si no puedes arrancar en modo de rescate desde GRUB (algo común en SLES15 y openSUSE Leap 15), monta una ISO de instalación en la VM e inicia desde ella. La ISO proporcionará una opción de "Sistema de rescate".
{% endhint %}

### 3. Montar el sistema de archivos raíz y usar chroot

{% hint style="success" %}
**Versión de RHEL 9+**

De forma predeterminada, las VMs de la familia RHEL 9 (por ejemplo, RHEL, AlmaLinux 9, Rocky Linux 9, CentOS Stream 9) usan un archivo de configuración de LVM para permitir explícitamente solo los dispositivos basados en el ID de hardware. Si una VM se importó sin conservar los ID/números de serie del hardware de la unidad, ejecuta `pvscan --cache` y `vgchange -ay` para obligar a LVM a volver a examinar todos los dispositivos de bloque. Consulta el artículo de KB: [Las VM de la familia RHEL 9 no arrancan después de clonar o restaurar una instantánea](/knowledge-base/es/backup-dr/rhel9-boot-failure-clone-snapshot-restore.md) para obtener información adicional.
{% endhint %}

Una vez arrancado en modo de rescate, inicia sesión como root y monta el sistema de archivos raíz.

1. **Buscar la partición raíz**:

   Si no sabes qué partición contiene el sistema de archivos raíz, enumera todas las particiones disponibles:

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

   En sistemas que usan LVM, enumera todos los volúmenes lógicos:

   ```bash
   lvdisplay
   ```
2. **Montar la partición raíz**:

   Monta la partición raíz o el volumen lógico en `/mnt`:

   ```bash
   mount /dev/<device_name> /mnt
   ```

   Reemplace `<device_name>` con tu partición raíz (p. ej., `sda2`, `mapper/vg0-root`).
3. **Verificar el montaje**:

   Comprueba que has montado el sistema de archivos correcto enumerando su contenido:

   ```bash
   ls /mnt
   ```

   Deberías ver directorios como `/root`, `/boot`, `/home`, `/etc`, y `/var`.
4. **Vincular los sistemas de archivos virtuales**:

   Usa el siguiente bucle for para enlazar los sistemas de archivos virtuales necesarios:

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

   Como alternativa, móntalos individualmente:

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

   Para sistemas EFI/UEFI, monta también la partición EFI:

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

   Reemplaza /dev/sdX1 por tu partición EFI real (compruébalo con lsblk o fdisk -l).
5. **Entrar en chroot en el sistema de archivos montado**:

   ```bash
   chroot /mnt
   ```
6. **Montar los sistemas de archivos restantes**:

   Después de entrar en chroot, monta cualquier partición adicional definida en fstab:

   ```bash
   mount -a
   ```

### 4. Reconstruir el initramfs

Después de entrar en chroot en el sistema, regenera el initramfs con los controladores virtio necesarios.

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

Ejecuta el siguiente comando para regenerar el initramfs:

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

Esto añade controladores para `virtio_blk` (dispositivo de bloque), `virtio_net` (dispositivo de red), y `virtio_pci` (bus PCI) al initramfs.

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

Si `dracut` no está disponible (algo común en Debian 10 y Ubuntu), usa `update-initramfs` en su lugar:

1. Añade los módulos virtio a la configuración de initramfs:

   ```bash
   cat >> /etc/initramfs-tools/modules << EOF
   virtio_pci
   virtio_blk
   virtio_net
   EOF
   ```
2. Regenera el initramfs:

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

### 5. Reiniciar y verificar

1. **Sal del entorno chroot**:

   ```bash
   exit
   ```
2. **Reinicie la VM**:

   ```bash
   reboot
   ```
3. **Verificar el arranque y la conectividad de red**:
   * Confirma que la VM arranca correctamente y que la conectividad de red funciona a través de la `virtio` NIC.

## Resolución de problemas

{% hint style="warning" %}
**Problemas comunes**

* **La VM no arranca**:
  * **Solución**: Vuelve a comprobar el orden de arranque en la configuración de la VM. El disco del SO debe estar configurado como **ID 0**.
* **Sin conectividad de red**:
  * **Solución**: Asegúrate de que las NIC estén configuradas como `virtio` y de que el initramfs se haya reconstruido con los controladores de red adecuados.
    {% endhint %}

## Recursos adicionales

* [Migración de VMs](/run-the-platform/virtual-machines/vm-migration-overview.md)
* [Mejores prácticas para VMs](/run-the-platform/virtual-machines/vm-best-practices.md)
* [Wiki de Dracut](https://github.com/dracutdevs/dracut/wiki/)

## Comentarios

{% hint style="info" %}
**¿Necesitas ayuda?**

Si tienes alguna pregunta o encuentras problemas al importar una VM, ponte en contacto con nuestro equipo de soporte para obtener ayuda.
{% 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/es/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.
