Gravatar de Armonth

Grub profile: mejorando el arranque de Ubuntu

Leo a Ricardo Galli comentando un “viejo” (lo descubrí en Dapper) truco que puede servir para acortar el arranque de Ubuntu significativamente (en un equipo me ha llegado a reducir ¡15 segundos!), viejo pero sigue siendo efectivo y poco conocido.

Al cargar GRUB (el cargador de sistemas operativos usado para elegir entre Ubuntu, Windows o lo que tengas instalado) hay que hacer lo siguiente:

  • Posiciona el selector sobre el kernel que arrancas.
  • Presiona “e” para editar.
  • Posiciona el cursor sobre las líneas donde están las opciones.
  • Presiona “e” para editar
  • Agrega al final la palabra “profile” (dejando un espacio con las anteriores), luego dale al enter.
  • Cuando vuelva a la pantalla anterior presiona “b” para que arranque.
  • Espera un poco más que hará el índice.
  • Et voilà

Por si no quedase claro, la línea es parecida a:

 kernel   /vmlinuz-2.6.17-1-686 root=/dev/hda2 ro single

Y debe quedar como:

 kernel   /vmlinuz-2.6.17-1-686 root=/dev/hda2 ro single profile

Explicación técnica

Las distribuciones modernas utilizan un demonio “readahead”, normalmente llamado así o “preload”, un demonio de éste tipo se encarga de monitorizar las aplicaciones (servicios en el caso que nos toca) que el usuario ejecuta y analiza los datos para poner los binarios de los programas en memoria RAM y acelerar con ello los procesos…

Ubuntu mantiene un índice, normalmente en /etc/readahead/boot, que sirve para cargar de golpe todos los servicios — por ejemplo cupsd para la impresión o syslogd para los registros — en memoria RAM (o en alguna intermedia como la caché de los discos duros) y acelerar con ello el arranque.

El problema radica en que ese índice es el que viene por defecto: si hemos instalado más servicios que arrancan al principio no saldrán en el índice y por tanto no los cargará hasta que se requiera su ejecución.

Añadir el “profile” a la línea de arranque del GRUB obligará a éste a reconstruir el índice. Esto lo hará una sola vez y el arranque en esa carga será más lento pero los posteriores serán algo más rápidos.

3 Comentarios (feed)

  1. Gravatar de chuano chuano nos comenta:

    Y digo yo que se podrá añadir la opción al “/boot/grub/menu.lst” y así no tener que ponerla en cada arranque ¿no? Porque loq eu ganas de arranque lo pierdes editando las opciones en el grub :)

    Miércoles, 14 de Noviembre/2007 @ 17:48

  2. Gravatar de chuano chuano nos comenta:

    Vale, me contesto a mi mismo, agregando eso genera el indice y no hay que volver a ponerlo… Perdon….

    Miércoles, 14 de Noviembre/2007 @ 17:52

  3. Gravatar de pablitofuerte pablitofuerte nos comenta:

    Ordenar la lista:

    # cat /etc/readahead/boot | xargs stat -c %i.%n | sort -n | cut -d”.” -f2- > boot.sorted

    # sudo cp boot.sorted /etc/readahead/boot

    Lunes, 15 de Junio/2009 @ 20:39

Comentarios cerrados