Servidor Cloud: reparar la versión actual del kernel (Ubuntu/Debian)
Utilice la función «Imprimir» al final de la página para crear un PDF.
Si no es posible migrar tu servidor aunque hayas instalado el kernel más reciente, es posible que este esté dañado. Esto puede ocurrir, por ejemplo, si la partición de arranque de tu servidor tenía menos de 100 MB de espacio libre antes de la migración. No obstante, también podría haber otras razones según el caso.
Si el kernel de Linux está dañado, se pueden detectar varios síntomas que indiquen que algo va mal en el sistema. Las siguientes señales y estrategias te pueden ayudar a reconocer si el kernel podría estar dañado:
- Problemas de arranque: el síntoma más obvio de un kernel dañado son los problemas de arranque. El sistema puede quedarse atascado en un bucle de arranque, bloquearse con mensajes de error o no arrancar en absoluto.
- Caídas del sistema y mensajes de error: si tu sistema Linux se bloquea con frecuencia o experimenta «kernel panics» inesperados, esto también puede ser un signo de un kernel dañado. Este fenómeno suele ir acompañado de un mensaje de error en una pantalla azul o negra.
Dmesg y registros del sistema: comprueba los registros (logs), especialmente la salida de dmesg inmediatamente después del arranque. Dmesg proporciona mensajes relacionados con el kernel que pueden ser útiles para identificar errores o problemas específicos
root@localhost:~# dmesg | less
También puedes utilizar journalctl para comprobar los registros del sistema:root@localhost:~# journalctl -xb
Módulos defectuosos: otro posible síntoma de un kernel dañado son los problemas con los módulos del kernel. Comprueba si se pueden cargar todos los módulos o si aparecen mensajes de error:
root@localhost:~# lsmod
root@localhost:~# modprobe yourmodulenameInconsistencias en la funcionalidad: si determinadas funciones relacionadas con el sistema (como las operaciones de red, el acceso al sistema de archivos, las interacciones con el hardware, etc.) dejan de ser fiables o se producen errores inexplicables, esto también podría indicar problemas con el kernel.
Arrancar desde un kernel antiguo y reparar la versión más reciente
Si tu servidor tiene instalado un kernel antiguo, puedes arrancarlo con uno de estos kernels para habilitarlo en la red y poder llevar a cabo la búsqueda y resolución de problemas:
- Inicia sesión en tu cuenta IONOS.
- En la barra de menús principal, haz clic en Menú > Servidores & Cloud.
Si dispones de varios contratos, selecciona el deseado. Haz clic en Acciones > Abrir consola remota.
La consola remota se abrirá en una nueva pestaña.
- Cambia inmediatamente a Cloud Panel y haz clic en Acciones > Reiniciar.
Durante el reinicio, la conexión con la consola se interrumpirá. Cambia de nuevo a la consola remota.
- En la esquina superior derecha, haz clic en Options > Reconnect hasta que aparezca el siguiente mensaje:
- Pulsa inmediatamente la tecla ESC manteniéndola hasta que aparezca la siguiente ventana.
- Selecciona Advanced Options for Ubuntu y pulsa la tecla INTRO.
- Se mostrará una lista de los kernels disponibles, con el kernel más reciente en la parte superior. Selecciona el segundo kernel más reciente y pulsa INTRO. Si este kernel funciona, tu servidor arrancará de forma normal y te llevará al inicio de sesión (login).
Nota
¡No selecciones un kernel en modo de recuperación (recovery mode)!
- Introduce tus datos de acceso.
Para comprobar si arrancaste el servidor desde un kernel antiguo, introduce el siguiente comando:
[root@localhost ~]# uname -r
Hacer una copia de seguridad de los datos de tu servidor
Haz una copia de seguridad de los datos de tu servidor antes de reparar el kernel. Puedes utilizar el servicio de pago Backup Cloud o guardar los datos en tu ordenador con Filezilla.
Para más información sobre Backup Cloud, consulta el siguiente artículo:
Reparar el kernel
Utiliza el siguiente comando para comprobar qué kernels están instalados actualmente en tu servidor:
[root@localhost ~]# dpkg --list | grep linux-image
Por ejemplo:
root@server:~# dpkg --list | grep linux-image
rc linux-image-5.15.0-105-generic 5.15.0-105.115 amd64 signed kernel-Image generic
ii linux-image-5.15.0-106-generic 5.15.0-106.116 amd64 signed signed kernel-Image generic
iF linux-image-5.15.0-107-generic 5.15.0-107.117 amd64 signed kernel-Image generic
ii linux-image-5.15.0-97-generic 5.15.0-97.107 amd64 signed kernel-Image generic
rc linux-image-unsigned-5.15.0-107-generic 5.15.0-107.117 amd64
Linux-Kernel-Image for version 5.15.0 en 64 bits x86 SMP
root@server:~#En este ejemplo, linux-image-5.15.0-107-generic es el último kernel instalado. El kernel linux-image-5.15.0-97-generic es el más antiguo. El estado de un kernel se indica mediante los códigos de estado del paquete:
Código de estado del paquete | Significado |
---|---|
ii | Correctamente instalado y configurado |
iU | Instalado, pero no configurado |
iF | Instalado, pero la configuración ha fallado |
iW | Instalado, pero posiblemente esperando algo más (poco frecuente) |
rc | Desinstalado, pero los archivos de configuración siguen presentes |
Nota
Para kernels desinstalados que todavía tienen archivos de configuración (rc), estos se pueden eliminar con el siguiente comando:
apt-get purge $(dpkg -l | grep '^rc' | awk '{print $2}')
- En este ejemplo, el kernel linux-image-5.15.0-107 tiene el código de estado IF. Este código de estado significa que la configuración ha fallado.
Para solucionarlo, debes reinstalar el kernel correspondiente. Para ello, sustituye el marcador de posición en el siguiente comando y, a continuación, insértalo con la tecla INTRO.
[root@localhost ~]# apt-get install --reinstall IMAGE NAME
Por ejemplo:
[root@localhost ~]# apt-get install --reinstall linux-image-5.15.0-107-generic
Para comprobar si la reinstalación se ha realizado correctamente, introduce el siguiente comando:
[root@localhost ~]# dpkg --list | grep linux-image
rc linux-image-5.15.0-105-generic 5.15.0-105.115 amd64 signed kernel-Image generic
ii linux-image-5.15.0-106-generic 5.15.0-106.116 amd64 signed kernel-Image generic
ii linux-image-5.15.0-107-generic 5.15.0-107.117 amd64 signed kernel-Image generic
ii linux-image-5.15.0-97-generic 5.15.0-97.107 amd64 signed kernel-Image generic
rc linux-image-unsigned-5.15.0-107-generic 5.15.0-107.117 amd64 Linux kernel Image for version 5.15.0 in 64 bits x86 SMP
root@server:/#El kernel Linux-image-5.15.0-107-generic muestra ahora el código de estado del paquete ii, lo que significa que está instalado y configurado correctamente. Para finalizar el proceso, reinicia el servidor. El kernel más reciente se cargará automáticamente.
Para completar el proceso, reinicia el servidor.
[root@localhost ~]# reboot
Reparar el kernel si no hay suficiente espacio en la partición de arranque
Si no hay suficiente espacio en la partición de arranque, la reinstalación del kernel mediante el método descrito anteriormente fallará. En este caso, se mostrará la siguiente información:
[root@localhost ~]# apt-get install --reinstall
linux-image-5.15.0-107-generic
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
amd64-microcode libdbus-glib-1-2 libevdev2 libimobiledevice6 libplist3
libupower-glib3 libusbmuxd6 linux-headers-generic thermald upower usbmuxd
Use 'apt autoremove' to remove them.
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 2 not upgraded.
Need to get 0 B/11.5 MB of archives.
After this operation, 0 B of additional disk space will be used.
(Reading database ... 203704 files and directories currently installed.)
Preparing to unpack
.../linux-image-5.15.0-107-generic_5.15.0-107.117_amd64.deb …
Unpacking linux-image-5.15.0-107-generic (5.15.0-107.117) over
(5.15.0-107.117) …
dpkg: error processing archive
/var/cache/apt/archives/linux-image-5.15.0-107-generic_5.15.0-107.117_amd64
.deb (--unpack):
cannot copy extracted data for './boot/vmlinuz-5.15.0-107-generic' to
'/boot/vmlinuz-5.15.0-107-generic.dpkg-new': failed to write (No space left
on device)
No apport report written because the error message indicates a disk full
error
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/linux-image-5.15.0-107-generic_5.15.0-107.117_amd64
.deb
needrestart is being skipped since dpkg has failed
E: Sub-process /usr/bin/dpkg returned an error code (1)
root@server:/#
Para solucionar este problema, es necesario liberar espacio. Procede de la siguiente manera:
Introduce el siguiente comando para mostrar la información sobre el espacio de almacenamiento utilizado:
[root@localhost ~]# df -h
- A continuación, libera el espacio de almacenamiento.
Encontrarás instrucciones en el siguiente artículo:
Liberar espacio de almacenamiento en un Servidor Cloud
Instalación manual del kernel si falla la nueva instalación
Si la reinstalación del kernel falla por una razón distinta a la falta de espacio en la partición de arranque, puedes intentar eliminar y reinstalar manualmente el kernel.
Advertencia
Nunca elimines el kernel que estás utilizando actualmente, ya que esto puede provocar errores graves en tu servidor. Con el comando uname -r puedes comprobar qué kernel estás usando.
Para eliminar el kernel y luego reinstalarlo, sigue estas instrucciones:
Utiliza el siguiente comando para comprobar qué kernels están instalados actualmente en tu servidor:
[root@localhost ~]# dpkg --list | grep linux-image
Para comprobar qué kernel estás utilizando, introduce el siguiente comando:
[root@localhost ~]# uname -r
Para eliminar el paquete del kernel linux-image-5.15.0-107-generic -, introduce el siguiente comando:
[root@localhost ~]# apt-get purge linux-image-5.15.0-107-generic
Para comprobar si se ha eliminado el paquete del kernel, introduce el siguiente comando:
[root@localhost ~]# dpkg --list | grep linux-image
Para reinstalar el kernel, sustituye los marcadores de posición en el siguiente comando e insértalo con la tecla INTRO:
[root@localhost ~]# apt install --install-recomienda kernel-VERSION
Por ejemplo:
[root@localhost ~]# apt install --install-recommends linux-image-5.15.0-107-generic
Comprueba que el paquete del kernel se ha instalado correctamente.
[root@localhost ~]# dpkg --list | grep linux-image
Para reiniciar el servidor, introduce el siguiente comando:
[root@localhost ~]# reiniciar