La velocidad de arranque en Debian Jessie es bastante buena comparada con versiones anteriores por motivos técnicos algo largo de explicar, dando paso a una nueva versión de arranque donde init.d mejora notablemente junto con la nueva versión de systemd.
El caso es que aún podremos mejorar y recortar esos segundos que hacen demorar la carga del sistema, dependiendo de tu equipo será aún más notable.
Es muy probable que estos métodos para optimizar el tiempo de arranque del sistema debian también funcione para Ubuntu, Linux Mint y otros derivados. Incluso en distribuciones como Fedora, OpenSuse, Arch Linux etc… también existen en sus repositorios la mayoría de las herramientas aunque difiere ligeramente el método de aplicación como el de instalación con su gestor de paquetes correspondiente. ¡Todo es probar!
Por si lo necesitas: Al final de la entrada dejo un VideoTutorial
Arranque con carga en paralelo
Como primera recomendación para aumentar la velocidad de carga sería establecer la carga en paralelo en vez de por defecto 1 a 1.
Este método aumentará el arranque en proporción a cuanto más hilos dispongas en tu CPU ya que se correrán más servicios simultáneos.Por último recomiendo probar este y cualquier otro método para acelerar el arranque después de hacer una copia de respaldo de tu sistema o en un entorno de pruebas ya que utilizaremos un script que modifica automáticamente el sistema para el arranque en Debian, a pesar de esto nunca me ha fallado ni estropeado el arranque de ningún equipo, Aún así debes saber que es tu responsabilidad.
Instalamos el script:
apt-get install insserv
Reconfiguramos el script acabado de instalar
dpkg-reconfigure insserv
Ahora declararemos que sea usado el script que acabamos de instalar:
CONCURRENCY=startpar >> /etc/default/rcS
Eliminar consolas TTY
Por defecto debian instala 6tty que son ventanas para consola a las cuales podemos acceder pulsando desde “ctrl+alt+f1” hasta “ctrl+alt+f6” y luego tenemos “ctrl+alt+f7” para volver a la sesión gráfica si la tenemos iniciada.
Los recursos que ocupan estas consolas son bastante bajos y además el tiempo de carga en el arranque también es bajo pero como para muchos de los usuarios es algo que no utilizan y les interesa raspar rendimiento por cualquier esquina podemos desactivar todas y dejar solo 1 consola.Para desactivar la consola tenemos que entrar a modificar el archivo “/etc/inittab” con algún editor como “nano” por ejemplo así:
$ nano /etc/inittab
En este archivo buscaremos las líneas casi al final:
<P class="editor">
<BR/>1:2345:respawn:/sbin/getty 38400 tty1
<BR/>2:23:respawn:/sbin/getty 38400 tty2
<BR/>3:23:respawn:/sbin/getty 38400 tty3
<BR/>4:23:respawn:/sbin/getty 38400 tty4
<BR/>5:23:respawn:/sbin/getty 38400 tty5
<BR/>6:23:respawn:/sbin/getty 38400 tty6
</P>
<BR/><BR/>
Y le comentamos las que no queramos usar (aconsejo dejar mínimo 1 para algún momento de bloqueo del entorno gráfico poder cerrar el programa que se cuelgue o reiniciar las X entre otras utilidades).<BR/>
<P class="editor">
<BR/>1:2345:respawn:/sbin/getty 38400 tty1
<BR/>#2:23:respawn:/sbin/getty 38400 tty2
<BR/>#3:23:respawn:/sbin/getty 38400 tty3
<BR/>#4:23:respawn:/sbin/getty 38400 tty4
<BR/>#5:23:respawn:/sbin/getty 38400 tty5
<BR/>#6:23:respawn:/sbin/getty 38400 tty6
</P>
<BR/><BR/>
<IMG src="/images/Optimizar_Arranque_Debian/inittab.jpg" alt="inittab para solo 1 terminal"/>
<BR/>
Pulsamos "ctrl+o" para guardar el documento. Para el próximo arranque solo cargará 1 consola
Quitar servicios innecesarios al arrancar
Este punto es más sencillo y a la vez entretenido ya que no os puedo decir que servicios tenéis que quitar y vosotros mismo lo tenéis que valorar.
Una aplicación muy cómoda para gestionar los servicios que se inician es “bum” la cual se puede instalar mediante:
apt-get install bum
En esta aplicación solo tenemos que desmarcar lo que no queremos que se nos inicie al arrancar nuestro equipo y una vez hecho pulsamos sobre aplicar.
La interfaz gráfica que presenta el programa es algo de este estilo:
<P>
Algunos <STRONG>servicios</STRONG> que podéis desactivar tranquilamente sin cargaros nada del sistema son:
<BR/>
<UL>
<LI>avahi-daemon --> Descubre servicios y host en red, no es útil si solo tienes 1 PC</LI>
<LI>bluetooth --> Desactiva el bluetooth si no lo utilizas para nada, es raro usarlo</LI>
<LI>cups-browsed --> Descubre impresoras compartidas en la red, en el caso que tengas...</LI>
<LI>cups --> Gestiona los trabajos de impresión, si tienes impresora</LI>
</UL>
<BR/>
Hay bastantes más que puedes desactivar ya que probablemente no los uses. Lo que te recomendaría es que fueses viendo los que tú tienes activado y busques en www.google.es los que no sepas que función tienen. En muchos te vendrá una descripción sobre cual es su función.
<BR/><BR/>
Te aconsejaría que apuntaras en una hoja los servicios que has desactivado por si necesitaras reactivar alguno después de reiniciar (cualquiera puede equivocarse, pero no todo el mundo previene)
</P>
Registrar e Indexar aplicaciones al inicio
Otra buena idea que nos dará un buen empujón sobre el tiempo de inicio es utilizar un registro sobre el proceso de arranque, lo cual creará un perfil para usarlo en posteriores arranques, es decir, creará una especie de índice en el que se basará para arrancar sin tener que comprobar archivo por archivo cada vez que iniciamos el equipo.
<P>
En este punto te diré una cosa: Si tu <STRONG>debian</STRONG> ya inicia en menos de 20 segundos ¡NO TOQUES! yo he conseguido iniciar en 6 segundos con los pasos anteriores (Tengo raid 0 con discos SSD que también ayuda un poco) con el siguiente método bajé a 4 segundos pero después de varias actualizaciones "<I>apt-get upgrade</I>" (un mes y medio después de hacerlo) tuve problemas así que el riesgo es tuyo.
</P>
<P>
La herramienta para dicha función se llama "<STRONG>readahead</STRONG>" y se encuentra como las anteriores en los mismos repositorios de Debian y se instala así:
<P class="terminal">apt-get install readahead</P>
<BR/>
Una vez instalada tenemos que crear un archivo vacío donde después escribirá el programa solo ya el perfil de arranque. Lo crearemos de la siguiente forma:
<P class="terminal">touch /etc/readhead/profile-once</P>
<BR/>
Cuando reinicies por primera vez notarás el efecto contrario, es decir, se ralentiza el arranque.
<BR/>
Tardará mucho más de lo normal, en algunos casos minutos (hasta 2 o 10 minutos ya según la suerte y cantidad de paquetes/procesos) pero te alegrarás cuando reinicies la segunda vez.
<BR/>
A mi personalmente me dio la impresión que arrancaba incluso antes cuando llevaba 12 reinicios pero no llegué a controlar el tiempo para ver si bajaba mi marca de 4 segundos.
</P>
Limpiar Sistema Operativo Linux
Otra opción, sobre todo si llevas algún tiempo desde que instalaste tu sistema Debian Linux, es limpiar paquetes, registros, papeleras, caché, kernels antiguos… además de ahorrar una gran cantidad de espacio en el disco duro también puede influir en cuanto al arranque (aunque es menos común pero no se pierde nada y además le das una limpieza al sistema).
En estas entradas os detallo como limpiar el sistema y usar los programas que harán esta tarea por nosotros:
- Bleachbit limpieza de registros, cache y suciedad del sistema
- Debfoster – Mostrar dependencias y paquetes obsoletos
- Eliminar Kernels antiguos
- Gtkorphan para limpiar Paquetes y Librerias Huerfanas
- Localepurge – Limpia manuales y paginas en idiomas que no necesitas
- e2fsck – Reparar sistemas de archivos ext, ext2, ext3, ext4
Compilar el Kernel
Al compilar el kernel podemos optimizar el arranque designando que deseamos cargar y evitando módulos que no usaremos.
<P>
Este paso es para expertos y se merece una entrada completa que ya plantearé en un futuro próximo intentando simplificar el proceso haciéndolo más amigable y que no llegue a dar tanto miedo pues al fin y al cabo si lo hacemos mal, podremos iniciar con el kernel anterior (podemos tener instalados varios kernels a la vez cada uno compilado de una manera).Para más información sobre compilar un kernel puedes tomar información desde la <A title="Enlace a la web oficial debian" href="https://www.debian.org/doc/manuals/debian-handbook/sect.kernel-compilation.es.html" target="_blank">web oficial para debian.</A>
</P>
Comprobar el tiempo de inicio
Ahora solo nos queda comprobar exactamente cuanto tiempo tarda en iniciar nuestro equipo y que servicios son los que más nos están retrasando el arranque. Con systemd lo tenemos fácil ya que nos ofrece 2 comandos muy útiles y bastante detallados para conocer estos datos.
Para conocer el tiempo total de arranque:
systemd-analyze
Esto nos muestra un resumen separando el kernel, la imagen de arranque y el espacio de usuario tanto cuanto tarda cada uno individual como en el conjunto.
Para ver cada servicio por separado tenemos este comando:
systemd-analyze blame
Este comando nos detalla por cada servicio el tiempo en Milisegundos que necesita para ser arrancado así podremos detectar cual nos hace retrasar el arranque.
Por último quiero volver a decirte que si tu equipo tarda menos de 20 segundos en arrancar tal vez no te merezca la pena tocar nada y seguir disfrutando ya que es un buen tiempo.