CÓMO: Arranque ultra-rápido

+1
0
-1

Si bien es verdad que Linux está diseñado para reiniciarse lo menos posible, en ocasiones es muy útil que arranque a gran velocidad, si por ejemplo el equipo es un portátil, o algún amigo "windowsero" da mucho la brasa. El sistema utiliza un proceso llamado init del que "nacen" el resto de procesos. Dependiendo del nivel de ejecución, el sistema va mirando en las carpetas /etc/rcX.d los procesos necesarios para alcanzar ese nivel. En los rcX símplemente hay links blandos a los scripts que hay en /etc/init.d.

El problema del sistema actual es que, hasta que no termina con un proceso, no comienza con el siguiente, con lo que la mayor parte del tiempo de arranque y uso de disco duro se desaprovechan. Esto es incomprensible en un sistema que presume de ser multitarea. La solución consiste en utilizar otro sistema para arrancar: InitNG.

InitNG está desarrollado para Debian, pero con un par de arreglos debería funcionar perfectamente en Ubuntu. Podéis descargarlo aquí. Para que os hagáis una idea, en mi ordenador, a los tres segundos de comenzar el primer proceso ya se pone la pantalla en negro con el ratón en modo "ocupado", y al instante ya puedo introducir mi usuario y clave mientras termina de cargar la red. El tiempo total es mucho mayor, por supuesto, si contamos el arranque de la BIOS, el grub y la carga del kernel en memoria mediante cramfs, pero eso no se puede remediar. Manos a la obra:

Descargamos la última versión, por ejemplo, InitNG-0.4.8, y la instalamos:

sudo dpkg -i initng_0.4.8-1_i386.deb

De serie nos añade los procesos básicos para funcionar, así que habrá que añadir alguno. Para añadir, quitar o mostrar los procesos del arranque, se usa el comando ng-update (como root). Empecemos:

sudo ng-update add daemon/instant-gdm default *
sudo ng-update add system/coldplug system
*Para sistemas Kubuntu sustituir "instant-gdm" por "kdm".

Hay que arreglar un fallo de instant-gdm, para eso:

sudo gedit /etc/initng/daemon/instant-gdm.i

Y al final debemos cambiar "exec /usr/bin/gdm -nodaemon" por "exec /usr/sbin/gdm -nodaemon" (añadir una "s")
Con esto tenemos el arranque en modo gráfico, y detección para conexiones en caliente (p. ej. discos USB).
Para hacer la primera prueba:

sudo gedit /boot/grub/menu.lst

Buscáis un texto parecido a este:

title Ubuntu, kernel 2.6.14-ck7.1
root (hd0,5)
kernel /boot/vmlinuz-2.6.14-ck7.1 root=/dev/hda6 ro quiet splash
initrd /boot/initrd.img-2.6.14-ck7.1
savedefault
boot

Y lo copiáis sustituyendo "splash" por "init=/sbin/initng", algo así:

title InitNG 0.4.8, kernel 2.6.14-ck7.1 (Alta velocidad)
root (hd0,5)
kernel /boot/vmlinuz-2.6.14-ck7.1 root=/dev/hda6 ro quiet init=/sbin/initng
initrd /boot/initrd.img-2.6.14-ck7.1
savedefault
boot

De todos modos queda mucho por hacer, algunas opciones:

sudo ng-update add system/firestarter default
sudo ng-update add system/consolefont system
sudo ng-update add system/console-screen system
sudo ng-update add system/clock system
sudo ng-update add system/numlock default
sudo ng-update add system/readahead system
sudo ng-update add daemon/proftpd default

Aunque hay más servicios y demonios, los podéis encontrar en "/etc/initng/system" y "/etc/initng/daemon". Si os fijáis en la sintaxisi podréis crear nuevos ".i" que se adapten a vuestras necesidades. Con "sudo ng-update show" podéis ver como lleváis la configuración, y después del primer arranque, con "sudo ngc -L > log.txt" crearéis un archivo "log.txt" con el log del arranque.

EDITADO: Para poder ver correctamente los símbolos del castellano en las consolas, el método que puse no es válido, al parecer hay un problema con las variables de entorno que provoca un "segmentation fault". Para solucionarlo propongo el siguiente consolefont.i:

sudo gedit /etc/initng/system/consolefont.i

Debe contener:

service system/consolefont {
need = system/initial system/keymaps system/mountfs;
exec start = /etc/consolefont.sh;
}

Símplemente llamará a un script que debemos crear en /etc y que debe tener el contenido entre llaves del "start" que hay en ésta dirección:

sudo gedit /etc/consolefont.sh

Con el contenido:

#/bin/bash
·
·
·
exit $retval

Y después le damos permisos de ejecución:

sudo chmod +x /etc/consolefont.sh

Espero que os sirva, recordad que es una beta y que puede fallar. Su gran utilidad es que sirve para aprender como funciona el arranque en Linux.

PD: Igual añado más ".i" en este hilo para demonios y servicios que no están implementados (aún).

Comentarios

Imagen de Gael

Para utilizar Nessus propongo este /etc/initng/daemon/nessusd.i:

daemon daemon/nessusd {
need = system/initial system/mountroot net/lo;
require_network;
exec daemon = /usr/sbin/nessusd;
exec_args daemon = -D;
}

Y para el demonio uptimed (para uprecords) este /etc/initng/daemon/uptimed.i:

daemon daemon/uptimed {
need = system/initial system/mountfs;
exec daemon = /usr/sbin/uptimed;
}

Bueno, y ya sabéis, para añadirlos:

sudo ng-update add daemon/nessusd default
sudo ng-update add daemon/uptimed default

Imagen de Erathor

Bien he seguido todos los pasos y el proceso parece haber concluido perfectamente con un arranque realmente espectacular.

El único problema lo he tenido con el Hotway que uso para leer el correo hotmail desde el thunderbird.

No establece conexión con el 127.0.0.1. Alguna forma de incluirlo en el arranque? o pruebo otros software alternativos?

Gracias de antemano.

Imagen de Anónimo

Hola me gustaria saber si alguien tiene una idea de como arrancar con los driver de nvidia activados porquw cuando le digo sudo nvudia-glx-config no hace nada

agradecere sus ayudas

Imagen de Gael

Ya ha salido la nueva versión de InitNG, la 0.5.0. Destacar que ahora carga las variables de entorno y por lo tanto el gdm se mostrará en castellano. Sólo está disponible el código fuente, no el paquete Debian.

Imagen de Gael

Ya ha salido la nueva versión, pero tiene algún problema porque tarda una eternidad en arrancar, recomiendo usar la versión del svn que funciona bastante bien. Sólo comentar que hay un error en el "hciattach.i" que impide que se carge correctamente este driver de Bluetooth. La solución pasa por borrar el "/*" de la primera línea. Ya lo he enviado al bugzilla. Por cierto, las variables de entorno vuelven a fallar, a ver si lo miro...

Imagen de Anónimo

Holas!! Segui los pasos de este link https://help.ubuntu.com/community/InitNG#usplash y la verdad que me funciono muy bien. El tema es el siguiente; que tengo que hacer para que arranque mas rápido todavía?? Porque la instalación estándar te ahorra solamente 15 segundos nada mas y me gustaria que arranque en esa cantidad (es un poco exagerado pero por lo menos que arranque mas rapido).
Gracias.

Imagen de Anónimo

Holas!! Segui los pasos de este link https://help.ubuntu.com/community/InitNG y la verdad que me funciono muy bien. El tema es el siguiente; que tengo que hacer para que arranque mas rápido todavía?? Porque la instalación estándar te ahorra solamente 15 segundos nada mas y me gustaria que arranque en esa cantidad (es un poco exagerado pero por lo menos que arranque mas rapido).
Gracias.