--- title: "Cómo migrar de CentOS 7 u 8 a Rocky Linux o AlmaLinux" description: "Migra un servidor CentOS 7 o CentOS 8 a Rocky Linux o AlmaLinux sin reinstalar, con ELevate, migrate2rocky o almalinux-deploy, y verifica el resultado." category: "Sistemas Operativos" language: es source: https://cubepath.com/es/docs/sistemas-operativos/migracion-de-centos-a-rocky-linux-o-almalinux updated: 2026-09-25 --- # Cómo migrar de CentOS 7 u 8 a Rocky Linux o AlmaLinux CentOS Linux ya no recibe actualizaciones: CentOS 8 dejó de tener soporte el 31 de diciembre de 2021 y CentOS 7 el 30 de junio de 2024. Un servidor que sigue con CentOS acumula vulnerabilidades sin parchear y ni siquiera puede instalar paquetes desde los espejos originales. En este tutorial migrarás un servidor CentOS a Rocky Linux o AlmaLinux, las dos distribuciones compatibles con RHEL que lo sustituyen, usando las herramientas oficiales de cada proyecto y comprobando después que el sistema queda limpio. ## Requisitos previos - Un servidor con CentOS Linux 7.9 o CentOS Linux 8 (x86_64), con acceso root o un usuario con `sudo`. - Un snapshot o copia de seguridad completa del servidor. Las migraciones in situ no se pueden deshacer. - Acceso a la consola web (VNC) del proveedor, porque el servidor se reinicia y en el caso de CentOS 7 arranca en un entorno especial de actualización. - Al menos 5 GB libres en `/` y 200 MB en `/boot`. - Una ventana de mantenimiento de una a dos horas. ## Paso 1: Elegir el camino de migración El procedimiento depende de la versión de partida. Compruébala: ```bash cat /etc/centos-release ``` ```output CentOS Linux release 7.9.2009 (Core) ``` | Versión actual | Destino directo | Herramienta | |----------------|-----------------|-------------| | CentOS Linux 7.9 | Rocky Linux 8 o AlmaLinux 8 | ELevate (basada en Leapp) | | CentOS Linux 8 | Rocky Linux 8 o AlmaLinux 8 | `migrate2rocky` o `almalinux-deploy` | | CentOS Stream 8 o 9 | No recomendado in situ | Reinstalación | CentOS Stream va por delante de RHEL, así que migrarlo a Rocky Linux o AlmaLinux implica bajar de versión paquetes, algo que las herramientas no garantizan. En ese caso, y en general en servidores de producción complejos, la opción más segura es instalar Rocky Linux 9 o AlmaLinux 9 en un servidor nuevo y mover los datos, como se explica al final. Rocky Linux y AlmaLinux son equivalentes a efectos prácticos: los mismos paquetes, rutas y comandos. Rocky Linux busca ser idéntica a RHEL y AlmaLinux busca compatibilidad binaria con RHEL y mantiene la herramienta ELevate. Si un proveedor de software solo certifica una de ellas, elige esa; si no, cualquiera sirve. ## Paso 2: Hacer una copia de seguridad e inventario Además del snapshot, guarda fuera del servidor lo que necesitarías para reconstruirlo a mano: ```bash sudo tar -czf /root/etc-backup-$(date +%F).tar.gz /etc rpm -qa | sort > ~/paquetes-centos.txt systemctl list-units --type=service --state=running > ~/servicios-centos.txt ``` Localiza los paquetes que no vienen de los repositorios de CentOS, porque son los que más problemas dan durante la migración (paneles de control, controladores propietarios, RPMs instalados a mano): ```bash rpm -qa --qf '%{NAME} %{VENDOR}\n' | grep -v 'CentOS' | sort ``` Copia `/root/etc-backup-*.tar.gz` y los listados a otra máquina con `scp` o `rsync`, junto con los volcados de tus bases de datos. ## Paso 3: Reparar los repositorios de CentOS Como CentOS ya no tiene soporte, los espejos `mirror.centos.org` están vacíos y `yum` falla con errores como `Cannot find a valid baseurl for repo: base`. Los paquetes finales siguen disponibles en el archivo histórico `vault.centos.org`. Apunta los repositorios oficiales a ese archivo: ```bash sudo sed -i -e 's/^mirrorlist=/#mirrorlist=/' -e 's|^#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|' /etc/yum.repos.d/CentOS-*.repo ``` Limpia la caché y comprueba que los repositorios responden: ```bash sudo yum clean all sudo yum repolist ``` ```output repo id repo name status base/7/x86_64 CentOS-7 - Base 10,072 extras/7/x86_64 CentOS-7 - Extras 526 updates/7/x86_64 CentOS-7 - Updates 6,173 repolist: 23,771 ``` Ahora instala todas las actualizaciones pendientes y reinicia para arrancar con el último kernel: ```bash sudo yum -y update sudo reboot ``` A partir de aquí, sigue el camino A (CentOS 7) o el camino B (CentOS 8). ## Camino A: CentOS 7 a AlmaLinux 8 o Rocky Linux 8 con ELevate ELevate es un proyecto de AlmaLinux que adapta Leapp, la herramienta de Red Hat para actualizar RHEL entre versiones mayores, para que funcione con CentOS 7 y permita elegir el destino. ### Instalar ELevate Instala el repositorio de ELevate: ```bash sudo yum install -y http://repo.almalinux.org/elevate/elevate-release-latest-el7.noarch.rpm ``` Instala Leapp y los datos de migración del destino que hayas elegido. Para AlmaLinux 8: ```bash sudo yum install -y leapp-upgrade leapp-data-almalinux ``` Para Rocky Linux 8, usa `leapp-data-rocky` en lugar de `leapp-data-almalinux`. ### Ejecutar la comprobación previa `leapp preupgrade` analiza el sistema sin cambiar nada y genera un informe con los problemas encontrados: ```bash sudo leapp preupgrade ``` Revisa el informe, sobre todo las entradas marcadas como `inhibitor`, que bloquean la migración: ```bash sudo less /var/log/leapp/leapp-report.txt ``` Estos son los tres inhibidores más habituales en CentOS 7 y su solución: - **Módulo `pata_acpi` cargado**: descárgalo con `sudo rmmod pata_acpi`. - **Falta una respuesta sobre `pam_pkcs11`**: confirma la eliminación del módulo con `sudo leapp answer --section remove_pam_pkcs11_module_check.confirm=True`. - **`PermitRootLogin` sin valor explícito en SSH**: RHEL 8 cambia el valor por defecto, así que Leapp exige que lo fijes. Edita `/etc/ssh/sshd_config` y añade la línea con el valor que quieras mantener, por ejemplo `PermitRootLogin no` si entras con un usuario con `sudo`. Vuelve a ejecutar `sudo leapp preupgrade` hasta que el informe no contenga inhibidores. ### Lanzar la migración Cuando la comprobación esté limpia, inicia la migración: ```bash sudo leapp upgrade ``` Leapp descarga los paquetes del nuevo sistema y prepara un entorno de arranque temporal. Al terminar, reinicia: ```bash sudo reboot ``` El servidor arranca la entrada `ELevate-Upgrade-Initramfs` y aplica la migración sin intervención. Tarda entre 15 y 40 minutos y hace un reinicio adicional; puedes seguirlo desde la consola VNC. No interrumpas este proceso. ## Camino B: CentOS 8 a Rocky Linux 8 o AlmaLinux 8 En CentOS Linux 8 basta con cambiar los repositorios y reinstalar los paquetes de marca, porque la versión mayor es la misma. Cada proyecto publica un script para hacerlo. Descárgalo, revísalo antes de ejecutarlo y lánzalo como root. Para Rocky Linux 8: ```bash curl -O https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh less migrate2rocky.sh sudo bash migrate2rocky.sh -r ``` El registro completo queda en `/var/log/migrate2rocky.log`. Para AlmaLinux 8: ```bash curl -O https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh less almalinux-deploy.sh sudo bash almalinux-deploy.sh ``` Cuando el script termine sin errores, reinicia para cargar el kernel del nuevo sistema: ```bash sudo reboot ``` ## Paso 4: Verificar la migración Conéctate de nuevo y confirma la distribución: ```bash cat /etc/os-release ``` ```output NAME="AlmaLinux" VERSION="8.10 (Cerulean Leopard)" ID="almalinux" ID_LIKE="rhel centos fedora" VERSION_ID="8.10" ... ``` Comprueba que arrancaste con un kernel de la versión 8 (`el8`): ```bash uname -r ``` ```output 4.18.0-553.el8_10.x86_64 ``` Verifica que los repositorios activos son los de la nueva distribución y responden: ```bash sudo dnf repolist ``` Busca paquetes antiguos que hayan quedado. Si migraste desde CentOS 7, no debería quedar ningún paquete `el7`: ```bash rpm -qa | grep -E '\.el7' ``` Si aparecen, revisa si pertenecen a software de terceros que necesitas reinstalar desde un repositorio para EL8; los demás puedes eliminarlos con `sudo dnf remove`. En la migración desde CentOS 8, comprueba también que no quedan paquetes de marca de CentOS: ```bash rpm -qa | grep -i centos ``` Por último, revisa que los servicios arrancaron y que SELinux sigue en su modo habitual: ```bash systemctl --failed getenforce ``` Prueba tus aplicaciones y revisa sus registros antes de cerrar la ventana de mantenimiento. ## Paso 5: Tareas posteriores Actualiza el sistema a la última versión menor: ```bash sudo dnf -y upgrade ``` Si usabas EPEL, reinstálalo para EL8 y activa el repositorio `powertools`, del que dependen muchos paquetes de EPEL: ```bash sudo dnf install -y epel-release sudo dnf config-manager --set-enabled powertools ``` Los servidores migrados desde CentOS 7 heredan `iptables` configurado a mano o `firewalld`. En EL8 `firewalld` usa nftables por debajo; comprueba que tus reglas siguen presentes con `sudo firewall-cmd --list-all`. Rocky Linux 8 y AlmaLinux 8 reciben soporte hasta mayo de 2029. Planifica el salto a la versión 9 (soportada hasta 2032): ELevate también permite actualizar de AlmaLinux 8 o Rocky Linux 8 a la versión 9 con el mismo procedimiento de `leapp preupgrade` y `leapp upgrade`. ## Alternativa: instalación limpia y migración de datos Si el servidor tiene muchos años de cambios manuales, software de terceros sin versión para EL8 o es crítico, la migración in situ no compensa el riesgo. En su lugar: 1. Crea un servidor nuevo con Rocky Linux 9 o AlmaLinux 9. 2. Instala los servicios desde los repositorios de la nueva versión y adapta la configuración guardada en el paso 2, en lugar de copiar `/etc` entero. 3. Migra los datos con volcados lógicos (`mysqldump`, `pg_dump`) y `rsync`. 4. Prueba el servidor nuevo, cambia el DNS o la IP y mantén el antiguo apagado unos días como respaldo. Este camino requiere más trabajo, pero termina en una versión soportada hasta 2032 y sin restos del sistema anterior. ## Solución de problemas **`Cannot find a valid baseurl for repo` al ejecutar `yum`.** Los repositorios siguen apuntando a `mirror.centos.org`. Repite el paso 3 y revisa que no queden líneas `mirrorlist=` activas en `/etc/yum.repos.d/CentOS-*.repo`. **`leapp upgrade` se detiene por inhibidores que no aparecían antes.** Vuelve a revisar `/var/log/leapp/leapp-report.txt`: cada entrada incluye la acción recomendada. No fuerces la migración ignorando inhibidores. **El servidor no arranca después de la migración.** Desde la consola VNC, elige en el menú de GRUB un kernel anterior si está disponible. Si el sistema no se recupera, restaura el snapshot del paso 2 y valora la instalación limpia. ## Conclusión Has migrado un servidor CentOS a Rocky Linux o AlmaLinux 8 con las herramientas oficiales, has comprobado que no quedan paquetes ni repositorios de CentOS y el sistema vuelve a recibir parches de seguridad. Como siguientes pasos, planifica la actualización a la versión 9 con ELevate, configura actualizaciones automáticas de seguridad con `dnf-automatic` y revisa la política de `firewalld` del servidor.