23 abr 2011

Iniciar en modo texto en *nix inittab y grub

Muchos querran iniciar su linux en texto y si quieren, luego pasar a modo grafico, a veces es necesario para realizar tareas administrativas que necesitan que las X no esten corriendo, o bien, solo entraste para hacer un cp o algun test de algo, compilar, lo que sea.
Manos a la obra:

Que es un runlevel:

Es el modo de ejecución en el que está la el sistema, estos son:

0 Apagado.
1 Modo de usuario único (Monousuario) No configura la interfaz de red o los demonios de inicio, ni permite que ingresen otro usuarios que no sean el usuario root, sin contraseña. Este nivel de ejecución permite reparar problemas, o hacer pruebas en el sistema.
2 Multiusuario Multiusuario sin soporte de red.
3 Multiusuario con soporte de red. Inicia el sistema normalmente.
4 No usado.
5 Multiusuario gráfico (X11) Similar al nivel de ejecución 3 + display manager.
6 Se reinicia el sistema.

Como los invoco?, con el comando init, por ej:

Si estoy en grafica, y me quiero ir a texto con red, me logueo como root o bien uso SUDO, y pongo
sudo init 3
Si quiero volver
sudo init 5

Al grano:

En /etc/inittab podemos definir esto y muchas cosas mas, en Debian, Fedora y otros es asi, en Ubuntu la verdad que no se, dado que no poseen inittab, y tiene algo llamado event.d. Me remito a lo que uso y conozco, y es estandar, si, lo es, el LPI se basa en debian, no en ubuntu, Ubuntu tiene su LPI, diganselo al de RRHH cuando vayan a la entrevista y me cuenta....

# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
#
# System initialization is started by /etc/init/rcS.conf
#
# Individual runlevels are started by /etc/init/rc.conf
#
# Ctrl-Alt-Delete is handled by /etc/init/control-alt-delete.conf
#
# Terminal gettys are handled by /etc/init/tty.conf and /etc/init/serial.conf,
# with configuration in /etc/sysconfig/init.
#
# For information on how to write upstart event handlers, or how
# upstart works, see init(5), init(8), and initctl(8).
#
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:
Como se ve, aca esta en 5 por defecto, se cambia a 3, con el nano, vim, el que les guste, guardan, y listo, siempre como root.
El tema viene ahora.... muchos diran, pero no me deja desde el runlevel 3 pasar al 5, me logueo con mi user y me dice que necesito permisos, es cierto, para eso esta el sudo, o bien, startx, pero OJO, que el startx hace uso de xorg.conf, que ahora no viene porque se usa hal y udev, pero corresponde ponerlo, por lo que *utas pudiere.
Nos logueamos como root, si es que ya no lo tenemos porque instalamos los driver propietarios de Nvidia, aclaro porque los que instalan algunas distro como Ubuntu por defecto, no generan el xorg.conf.
En un runlevel como el 3, init 3, y ponemos
X -configure
Eso genera un xorg.conf que lo deposita en /root/xorg.0.conf.new o algo asi, se los va a decir, lo copian, con el comando cp a /etc/X11/xorg.conf, asi lo guarda con ese nombre, si usan nvidia, donde dice driver, ponen en lugar de nv o lo que sea, nvidia, o corren el nvidia-settings.
Listo, ya podemos elegir en que runlevel iniciar, por si queremos prescindir de la grafica, o acostumbrarnos a usar la terminal para muchas cosas.

Alternativa con GRUB:

Inicia la PC, presionamos Esc, aparece el menu de GRUB, posicionados sobre el kernel que deseamos iniciar, presionamos 'e', luego agregamos un '3' al final de la linea de kernel, sin comillas claro, luego Enter, y luego 'b' sobre la misma linea, iniciara en runlevel 3, muy util para problemas con el Xorg.

No hay comentarios: