Acelerar el arranque en Archlinux

Publicado el 22 enero 2011 por Iyanmv @iyanmv

Archlinux es una distribución que, ya de por sí, arranca bastante rápido pero con algunos trucos y unas pequeñas modificaciones en los principales archivos de configuración del sistema, podemos mejor el rendimiento de este proceso y reducir el arranque en unos cuantos segundos.

Reducir el tiempo de arranque se consigue quitando “cosas” innecesarias. Cuantos menos datos tenga que cargar el sistema durante el arranque, menos tiempo tardará. Por supuesto, una velocidad de lectura y escritura alta por parte de nuestro disco duro ayuda mucho, pero eso es algo que no se puede arreglar comentando algunas líneas.

Para conseguir reducir el tiempo de arranque en Archlinux os propongo los siguientes cambios:

/etc/inittab

Si recordáis el día que instalasteis Archlinux (porque no creo que hayáis vuelto a tocar este archivo) tuvisteis que modificar dos líneas del inittab para cargar el servidor gráfico. En esta ocasión lo que queremos hacer es comentar unas cuantas líneas para que en vez de crear 6 terminales se creen dos (o una, eso decidirlo vosotros). Estas terminales son las que aparecen cuando usamos la combinación de teclas: Ctrl+Alt+F1-6. En general con dos terminales será más que de sobra y nos ahorraremos un poco tiempo (no mucho, no os voy a engañar) durante el arranque.

c1:2345:respawn:/sbin/agetty -8 38400 tty1 linux
c2:2345:respawn:/sbin/agetty -8 38400 tty2 linux
#c3:2345:respawn:/sbin/agetty -8 38400 tty3 linux
#c4:2345:respawn:/sbin/agetty -8 38400 tty4 linux
#c5:2345:respawn:/sbin/agetty -8 38400 tty5 linux
#c6:2345:respawn:/sbin/agetty -8 38400 tty6 linux

/etc/rc.conf

Por supuesto, no iba a faltar el archivo de configuración principal de Archlinux. Aquí nos centraremos en dos partes: modules y daemons. Respecto a los módulos lo que haremos será quitar todos los que tengamos en la lista puesto que con el autoload es más que suficiente.

MODULES=()

Otra opción más efectiva pero mucho más laboriosa es desactivar el MOD_AUTOLOAD y añadir los módulos a la lista de forma manual. Ahorraremos tiempo pero a nivel de entorno de escritorio no creo que sea muy rentable (en relación al tiempo que perderemos haciendo la lista).

En cuanto a los daemons lo primero será eliminar todos los innecesarios (esto es bastante personal y depende de las necesidades de cada uno). Ya a nivel más general podemos ahorrar bastante tiempo cargando casi todos los demonios en background. Esto se consigue añadiendo una @ delante del daemon. Los ordenador con varios núcleos son los que más se benefician de este método. A continuación os dejo como tengo mi lista de daemons para que os sirva de ejemplo.

DAEMONS=(syslog-ng dbus hal @vboxdrv @networkmanager @alsa @ntpd @samba @httpd @mysqld @cups @crond)

/boot/grub/menu.lst

Por último revisaremos el archivo de configuración de Grub. Aquí lo que haremos será eliminar la entrada VGA de la línea del kernel y añadir fastboot, logo.nologo y quiet. Por si acaso aquí os dejo como tiene que quedar:

kernel /boot/vmlinuz26 root=/dev/sda2 ro fastboot logo.nologo quiet

Y hasta aquí hemos llegado. Por supuesto podríamos haber realizado mucho más cambios como compilar un kernel personalizado, optimizar udev, etc. pero son tareas más laboriosas y que llevan mucho más tiempo. Si estáis interesados en seguir mejorando los tiempos de arranque os invito a leer esta entrada de la wiki. ¿Qué os ha parecido? ¿Habéis reducido mucho el tiempo de arranque?