Archivos por Etiqueta: Proceso de Arranque

Los Niveles de Ejecución en Linux

Los niveles de ejecución de Unix o runleves, en inglés, indican el modo en el que el sistema será iniciado. Los niveles son indicados mediante los números del 0 al 6. En la mayoría de los Unix y distribuciones Linux (aunque no podría decir que en todas) el nivel de ejecución son los siguientes:
EL ARCHIVO /etc/inittab:
0 indica halt o apagado de la máquina.
1 Indica monousuario.
2 Indica modo multiusuario sin soporte de red.
3 Indica modo multiusuario completo con soporte de red.
4 No usado, con esta opción el administrador puede personalizar el inicio para cargar algún servicio.
5 Indica multiusuario completo con inicio gráfico (X11) (Aunque en Solaris indica shutdown)
6 Indica shutdown y reboot: Se apaga inmediatamente la máquina para reinicio.

Los modos específicos para una distribución particular se encuentran en el archivo /etc/inittab
En mi máquina, con Mandriva, una sección de ese archivo es la siguiente:

# Default runlevel. The runlevels used by Mandriva Linux 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:

Las líneas precedidas por el sígno numeral # son comentarios. En los comentarios se indica cuáles son los runleves de mandriva, los cuales coinciden con los presentadas aquí. Al final de los comentarios, en color rojo, aparece la línea:

id:5:initdefault:

Ésto quiere decir que cuando el sistema arranca, lo hace en el modo 5, que, como hemos visto, indica multiusuario completo (con red y modo gráfico). Observe que en los comentarios de los modos 0 y 6 aparece un par de recomendaciones importantes: NO establezca el valor default de init en este número. ¿Por qué no?
Un administrador (root) puede editar el archivo /etc/inittab como mejor convenga al usuario, sin embargo también tiene el poder de establecerlo en 0 ó en 6. Si se establece en 6, algo que hice como experimento en mi Mandriva, la próxima vez que la máquina se encienda, se leerá el modo 6, shutdown y reboot, y se hará exactamente eso. De hecho se crea un ciclo infinito de reinicios que puede ser desconcertante para el usuario. Algo similar pasa al establecer el modo de ejecución en 0, cada vez que se enciende la computadora, inmediatamente se apaga. La manera de cambiar esto es entrar en modo recover y editar de nuevo el archivo /etc/inittab.
Pero si no deben establecerse, ¿Por qué están ahí? La razón es que otros usuarios pueden requerirlos realmente.
EL COMANDO init:
Aparte de editar el archivo /etc/inittab, el administrador puede cambiar en cualquier momento el valor del nivel de ejecución con el comando init. Una instrucción como la siguiente:

# init 3

cambia a nivel de ejecución 3. Si hace esto dejará de tener una pantalla gráfica y aparecerá una terminal y es probable que pierda la información que no tenga guardada. Para regresar al modo gráfico es necesario establecer de nuevo a 5 (o 2 si se usa Ubuntu, ver más abajo). El comando init no altera el contenido del archivo /etc/inittab.
Y la instrucción

# init 0

apaga la computadora inmediatamente. Los comandos halt y shutdown llaman a init para apagar el sistema.
PARA VER EL NIVEL DE EJECUCIÓN ACTUAL:
¿Cómo podemos saber cuál es el nivel de ejecución actual del sistema?
Con el comando who y la opción -r

$ who -r

se obtiene

`run-level' 5 2012-06-16 11:08

También con el comando runlevel. La instrucción

runlevel

produce

N 5

N indica que no se ha cambiado el runlevel con el comando init. Si se hubiera cambiado antes, aparecería un número indicando en nivel alterior, 5, indica el nivel actual.
EN UBUNTU:
Para no variar, Ubuntu es distinto. El archivo /etc/inittab fue sustituído a partir de la versión 6.10 por /etc/upstart, el cual ahora también ha cambiado. Y los niveles de ejecución son los siguientes:

0 - shutdown
1 - modo monousuario
2 - modo gráfico monousuario
6 - reboot

Así que si uso el comando runlevel en mi Ubuntu 11.04 natty aparece

N 2

FUENTES:
Las fuentes en internet se pueden encontrar en mi delicious

Anuncios

Acerca de El Master Boot Record (MBR)

El proceso de arranque de una computadora requiere de cargar un sistema operativo. Dicho proceso es iniciado en el BIOS (Basic Input-Output System). Todos los discos duros tienen un sector llamado Master Boot Record o registro maestro de arranque. Una vez detectado el disco duro, el BIOS intenta leer el MBR en busca de un sistema operativo. El MBR es el primer sector del disco, llamado también sector 0 y tiene una capacidad de almacenamiento de 512 bytes (el tamaño estándar de un sector) distribuídos de la siguiente manera:

Espacio         Ocupado por

446             Gestor de arranque
64              Tabla de particiones
2               Firma de unidad arrancable         

El gestor de arranque es un programa que administra el arranque del sistema operativo. En linux los más conocidos son GRUB y LILO. Estos gestores permiten la elección entre todos los sistemas operativos o modos de inicio que contiene el disco.
La tabla de particiones almacena información sobre las particiones, el formato, el tamaño, el sector donde se encuentra y si es o no arrancable.
La firma de unidad arrancable fue usada inicialmente por Windows y ahora linux también la utiliza a partir de la versión 2.6 del kernel. Marca la posición del volumen de arranque.

Cambiar Sistema Operativo Por Defecto en GRUB

Si tiene intalado más de un sistema operativo en su computadora, puede elegir el sistema operativo al que se entra por default de la siguiente manera:

como superusuario edite el archivo menu.lst

# vim /boot/grub/menu.lst

Desde luego, en lugar de vim puede usar kate o el editor que prefiera.
Busque la línea

default 0

y sustituya el 0 por el número en el que aparece ordenado su sistema operativo, contando a partir de 0 y teniendo en cuenta los modos usuario único, etc.
Como experiencia personal, tal vez sea conveniente hacer este cambio en el sistema operativo 0, aunque no tengo una razón para decir por qué, en mi caso sólo funcionó cuando modifiqué el archivo en ese sistema.

En este archivo otras cosas pueden ser modificadas, entre ellas el tiempo que se da por defecto para la elección del sistema operativo (10 segundos por lo general) basta con buscar la linea

timeout 10

y sustituir 10 por el número de segundos deseado.

¡EL ARCHIVO /boot/grub/menu.lst NO EXISTE!
La explicación anterior es válida para sistemas que usan una versión anterior de grub. En grub2, no existe menu.lst, en su lugar hay otros archivos. Uno de ellos es /etc/default/grub, el cual se puede editar

# vim /etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
#GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

Este archivo ha sido editado en mi linuxmint para comentar la segunda y la tercera opción. De esta manera, grub no manda de inmediato el sistema operativo por default, sino que da un tiempo de 10 segundos durante los cuales uno puede elegir la opción que se prefiera.
¿Qué pasa si tenemos más de un sistema operativo instalado? Igual que en el caso anterior, donde editabamos /boot/grub/menu.lst, podemos cambiar la opción GRUB_DEFAULT=0, por el número que se prefiera.
Como dicen los comentarios de éste archivo, una vez hecho los cambios, es necesario ejecutar la orden

# update-grub

para que los cambios se reflejen en el archivo /boot/grub/grub.conf