martes, 15 de marzo de 2011

Miniaporte

Para que la gente no se queje hoy dos posts. Resulta que en las aulas linux que mantenemos cada cierto tiempo el chequeo de los sistemas de archivos da inconsistencias que requieren de la supervisión del administrador.

Esto es un engorro y realmente da igual si se pierden archivos en este tipo de sistemas ya que los datos de los alumnos están centralizados en el servidor. Por ello la reparación automática de los sistemas de archivos que componen los ordenadores de los alumnos, en principio, no es peligrosa y nos ahorraremos bastantes visitas físicas a las aulas.

Para ello, simplemente debemos activar una opción en un archivo al que hemos hecho referencia hoy en el otro post '/etc/default/rcS':

[...]
FSCKFIX=yes
[...]

Y listo.

A long time...

Sí, lo sé, todos pensaréis que el título de la entrada se refiere al tiempo que hace que no escribo, pero en realidad se refiere a algo que explicaré en el artículo. Lo primero que debo decir es que hace tanto tiempo que no escribo por aquí porque me he estado dedicando más a tareas 'administrativas' de la empresa, coordinación, protocolos y demás cosas no directamente relacionadas con mis queridos sistemas.

En fin, a lo que interesa. Nosotros, desde el principio de la empresa tenemos una compartición samba para manejar los documentos comunes. Todo iba bien hasta que los responsables de debian decidieron formalizar más la secuencia de arranque del sistema, gran acierto por otra parte.

Resulta que yo tenía un script muy simple para montar automáticamente esta compartición en la secuencia de arranque. Creo recordar que el enlace simbólico en el nivel 2 debería estar detrás del que hacía referencia a la inicializacón de la red. Pero hete aquí que cuando se introdujo la nueva secuencia de arranque este 'apaño' quedó obsoleto. Ahora tenía que ponerle una cabecera al script con los requerimientos de arranque, los niveles en los que debía iniciarse, etc. Maravilloso, con esta cabecera e invocando a 'insserv' todo sería más fáicl.

El problema es que en mi máquina utilizo el demonio 'wicd' porque de vez en cuando hago pruebas con las llaves wifi que caen en mis manos para ver si funcionan correctamente con linux. Pues bien, resulta que este demonio parece que no comunica bien su inicialización ya que poniendo en los requerimientos de arranque de mi script que se invoque cuando termine el anterior la cosa no funciona.

Me volví loco el par de veces que lo probé hace tiempo, incluso poniendo el tag genérico '$all' la cosa no iba. Hasta que ayer me decidí a solucionar el problema...no lo consideraba importante ya que mi máquina casi no se reinicia y cuando tengo que consultar algo en la compartición y no está simplemente invocaba el script y listo, pero mis socios tenían que hacerlo más frecuentemente.

Lo gracioso es que el script estaba bien, lo que no está bien es el wicd ya que el montaje siempre se intentaba sin la red preparada. Al final la solución ha pasado por volver a la configuración de la red ethernet tradicional, mediante '/etc/network/interfaces' y dejar el tag '$all' al script, aunque con el tag '$network' intuyo que también servirá. Total que el script quedaría de la siguiente forma:

#!/bin/sh

### BEGIN INIT INFO
# Provides: montarHsolucio
# Required-Start: $all
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: montar el directorio hsolucio
# Description: montar el directorio hsolucio
### END INIT INFO

mount -t smbfs -o username=...

Y simplemente lo añadiríamos a la secuencia mediante el comando:

# insserv -v -r (para borrarlo)
# insserv -v

Otro dato curioso encontrado por el camino es la paralelización del arranque, que en debian está desactivada por defecto, no he apreciado una mayor velocidad de arranque, pero por ahí se asegura que se consigue. Total, que añadiendo:

CONCURRENCY=startpar

al fichero '/etc/default/rcS' se realiza la acción.