Estados Init

El procedimiento de arranque del sistema Unix se complica por la posibilidad de hacer entrar al sistema en diferentes estados, es decir, el sistema puede adoptar varios modos de operación conocidos como estados init, debido a que /etc/init es el programa responsable del mantenimiento del sistema en funcionamiento correcto.

El estado más comúnmente utilizado es el modo multiusuario, este es el estado del sistema utilizado para casi todas las interacciones en estas notas y el único que permite más de un usuario. Otro estado históricamente utilizado pero de raro uso hoy, es el modo de usuario único, este último es una versión de Unix de multitarea, por lo que permite múltiples procesos, pero no múltiples usuarios, este estado puede ser utilizado para una actualización del kernel (nucleo) del Unix rápida.

Por omisión shutdown lleva la maquina al estado 0, preparando así la desactivación de la potencia del sistema. Sin embargo el argumento -i permite establecer explícitamente el estado init a uno de los estados disponibles.

# shutdown -y -g45 -i0

Suspendera el sistema, mientras que:

# shutdown -y0 -i6

Volverá a arrancar la máquina.

Normalmente el sistema estará en el estado 2 a menos que se estén utilizando facilidades de la red, en cuyo caso se encontrara en el estado 3. La orden telinit sirve para cambiar entre estos estados operativos.

Por ejemplo la siguiente orden activara la comunicación por la red desde el estado 2:

# telinit 3

Después se puede regresar al estado 2 con la orden:

# telinit 2

Tras la terminación de la inicialización interna, el sistema arranca el demonio /etc/init, el cual asume el control de arranque. Sirve varias funciones importantes, la más importante es asegurarse que otros demonios del sistema estén en ejecución cuando deban. Cuando init comienza lee las líneas de fichero inittab por orden toma una acción dependiendo del contenido de cada línea. Puede contener más de un estado, como en 23, que define la línea como activa en los estados 2 y 3. Observe que en muchos sistemas los cambios efectuados a inittab no sobrevivirán a la adición de nuevo hardware, por lo que deberá actualizarse, con los cambios que se quieran, después de una instalación de hardware.

El programa inuit lee el fichero inittab solo una vez, cuando se inicia. Se trata de la verificación del sistema de ficheros. Como el sistema Unix depende tanto de la sanidad del sistema de ficheros, existe una herramienta especial para verificarlo y repararlo. Se trata de la orden /bin/fsck (file system check), que está reservada al súper usuario.

En tiempo de arranque, el guion /etc/bcheckrc de la inittab comprueba el indicador de sanidad del sistema de ficheros por si fue escrito como parte de la secuencia de desconexión. La orden uadmin escribirá este indicador correctamente, no así las desconexiones imprevistas. si el indicador no está definido correctamente, el guion bcheckrc ejecutara automáticamente /etc/fsck.

La orden fsck también puede ser ejecutada en la consola del súper usuario, con el nombre del sistema de ficheros a verificar como argumento. Es deseable ejecutar esta orden en un sistema de ficheros desmontado, además deberá de especificarse el tipo de ficheros a verificar con la opción -f.

La orden fsck ejecuta cinco fases diferentes:

1. Comprueba las tablas internas del tamaño real de los ficheros.

2. Verifica la sanidad de los nombres de camino de los directorios y de los ficheros.

3. Comprueba la conectividad correcta entre ficheros y directorios padre.

4. Verifica la cuenta de enlace entre ficheros y sus nombres para asegurarse que los ficheros sean correctamente diferenciados.

5. Asegura que todos los bloques no referenciados estén correctamente introducidos en la lista de libres del sistema de ficheros.

Cuando fsck encuentra un fichero o parte de un fichero que no está correctamente vinculado en el sistema de ficheros, lo revincula al sistema en un lugar especial. este lugar son los directorios /lost+found y /usr/lost+found si la maquina tiene dos sistemas de ficheros. El directorio /lost+found también aparecerá en discos flexibles que contengan el sistema de ficheros.

Fuente: Apuntes de Administración de Unix de cybercursos.net