No hace mucho me surgió una nueva eventualidad que ralentizaba el arranque de dos distribuciones en mi computadora (tengo varias). Al arrancar tanto Debian como Kubuntu la pantalla permanecía en negro durante algo menos de un minuto (no se mostraba ningún mensaje); repentinamente, y como es lo normal, surgían rápidamente las líneas de texto del proceso de arranque del sistema. En Kubuntu hay que presionar la tecla “flecha abajo” para que no se muestre el “bootsplash”, de tal forma que podamos ver la pantalla en negro y el progreso posterior de las líneas de texto.
La demora estaba relacionada con la carga del kernel en el arranque, y la solución en añadir el parámetro “noresume” en el archivo «/etc/default/grub«. Como puede que a alguien le sea útil aquí expongo cómo se planteo el problema y cómo se solucionó.
Contenidos
Cómo surgió la demora en el arranque
En mi computadora de escritorio suelo tener varias distribuciones, generalmente openSUSE Leap, Debian Stable y Kubuntu LTS. Como en otras ocasiones, al actualizar una distribución mediante una instalación limpia se desconfigura la UUID (código alfanumérico que identifica una partición) de swap en las otras. Como consecuencia el arranque se demora y surge el mensaje:
A start job is running for dev-disk-by …. device (1 min 30 s)
Procedí como siempre, y tal y como se muestra en un artículo en este blog: El arranque de mi distribución GNU/Linux se demora y …⇒
La sorpresa fue cuando arranque Debian, y después Kubuntu: el sistema se seguía demorando, pero ahora no surgía el mensaje anterior, ni ningún otro. La pantalla permanecía en negro durante algo menos de un minuto; y después las líneas de texto del proceso de arranque del sistema “a toda pastilla”, como corresponde.
Primero comprobé las UUID de las particiones “swap”, “root” y “home”, como se indica en el artículo anterior; todas eran correctas. En openSUSE en una ocasión el problema estaba relacionado con “home”… SEGUIR LEYENDO ⇒
Después analicé el tiempo que empleaba el sistema en arrancar con el siguiente comando en terminal:
~$ systemd-analyze Startup finished in 47.609s (kernel) + 4.298s (userspace) = 51.907s graphical.target reached after 4.292s in userspace
Nota: para más información sobre “systemd-analyze” y cómo analizar y gestionar la duración del arranque en GNU/Linux SEGUIR LEYENDO ⇒
En ambas distribuciones el resultado fue similar; más o menos algo como lo de la salida de terminal anterior. La demora se estaba produciendo en la carga del kernal. Unos 50 segundos cuando lo usual en mi sistema son 4-6 segundos. Tenía la sensación de que el sistema estaba buscando o esperando algo.
La solución “noresume”
En Linux kernel parameters-GitHUb encontramos que:
“noresume = Disables resume and restores original swap space.”
“resume = Specify the partition device for software suspend.”
Ambos parámetros hacen referencia a la partición «swap«. A grosso modo, y como es sabido, esta actúa como memoria física temporal cuando el sistema no tiene suficiente espacio en la RAM; y, también, entra en juego cuando se habilita el modo hibernación.
En relación al problema en cuestión, hay dos posibles soluciones que se encuentran en internet que parecen ser funcionalmente equivalentes (ver, por ejemplo Ubuntizando, o también Linux Mint Forums):
1) Añadir el parámetro “noresume” al archivo “/etc/default/grub”; y actualizar con el comando “update-grub”.
2) Sustituir, en el archivo “/etc/initramfs-tools/conf.d/resume”, RESUME=UUID=xxxxxx , por RESUME=none; y actualizar con el comando “update-initramfs -u”.
Ahora bien, en Kubuntu no existía el archivo “/etc/initramfs-tools/conf.d/resume”; lo he comprobado en otra computadora y así es. En Debian sí existe, pero la UUID no me coincidía con “swap”; ni tampoco con “root” o “home”, ni con ninguna otra partición en mi computadora. Obviamente, debía ser errónea. Así que procedí de la siguiente forma:
En Kubuntu
~$ sudo nano /etc/default/grub
Añadimos en la línea que a continuación se indica el parámetro “noresume”:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash noresume"
Guardamos el cambio pulsando las teclas Control+o y salimos del archivo con Contral+x. Después actualizamos Grub:
~$ sudo update-grub
Reiniciamos el sistema. En mi caso arranco en el tiempo acostumbrado anterior al problema. Según systemd-analyze, unos 11 segundos.
NOTA: Si el menú de Grub que tenemos esta generado por otra distribución, en mi caso con openSUSE, es posible que tengamos que actualizar ese Grub también para que los cambios se actualicen en el menú.
En Debian
Procedí de igual forma y la línea en el archivo «/etc/default/grub«, y quedó:
GRUB_CMDLINE_LINUX_DEFAULT="quiet noresume"
En Debian por defecto durante el arranque no se muestra un “splash”. El tiempo de arranque retorno a lo normal en mi equipo: 10 seg.
No obstante, después también sustituí la UUID en el archivo “resume”. Para ello, primero tomamos nota del código correcto para la partición «swap«, con el comando:
# lsblk -f
Copiamos el código correcto. Editamos:
# su - ~$ nano /etc/initramfs-tools/conf.d/resume
Ponemos la UUID correcta, y guardamos el cambio pulsando las teclas Control+o y salimos del archivo con Contral+x. Seguidamente actualizamos el archivo
~$ update-initramfs -u
¿Se puede eliminar después el parámetro “noresume”?
Ya funcionando ambas distribuciones sin esa demora extra, volví a editar “/etc/default/grub”, y elimine el parámetro “noresume”. Las dos siguieron arrancado correctamente. Al parecer con una vez que se ejecute durante el arranque se solventa el problema. Al menos así ha sido en mi caso.
Con todo funcionando correctamente no he podido comprobar si también se soluciona tal demora añadiendo “noresume” en el menú de Grub. Es decir cuando estamos en el menú señalamos la distribución en cuestión, pulsamos en el teclado “e” (editar) y a continuación de “quiet”, o en su caso “quiet splash” añadimos el parámetro “noresume”. Si me vuelve a surgir el problema lo comprobaré.
Saludos flamencos,