LUNES
La verdad es que ese Lunes lo empezaba yo de muy buen humor, había dormido de maravilla e incluso había soñado con cosas muy agradables. Total que me dirigía a mi puesto de trabajo para revisar el correo cuando me llama el profesor del curso...
- Oye melenas, que el proxy no va
Yo ya sabía que eso significaba que había habido un apagón, como la caja es ATX no vuelve a encenderse (tengo que cambiarlo de caja) así que me dirijo a la sala de servidores, para encenderlo de nuevo, de paso compruebo los servidores, veo que todos han iniciado bien menos el de correo saliente que da un error de disco.
¿Que por qué no hay SAI? No, si haberlo hailo, pero no funciona bien, y claro, si al del curso no le dan disco duros, no sé si a mí SAI nuevo, espero que después de esto sí.
A lo que iba como no es la primera vez que ocurre, le hago un fsck, primer problema, dice que hay errores irrecuperables, como sé que eso tiene que arrancar por c*j*nes porque sino me van a acribillar a llamadas de toda España preguntándome porqué el servidor no va, pues voy y le doy a Ctrl+D.
Bien el servidor va iniciándose y puf, me sale el siguiente mensaje.
KERNEL PANIC, unable to mount root
Bueno que no cunda el púnico, digo el pánico..., le damos al botón de reset, a ver si se solunciona hombre..
KERNEL PANIC, unable to mount root
Oh, oh, me parece que tengo problemas, así que en estos casos en que no sé como solucionar la papeleta llamo al SUPER-BOFH por teléfono.
Aclarar que el SUPER-BOFH fue quien montó todo el tinglado del correo en qmail con dominios virtuales, web virtuales, sistema DNS con TinyDNS y listas de correos con mailman. Yo como aprendíz sólo me ocupo de mantenerlo.
- Ring, ring
- Sí dígame
- SUPER-BOFH que soy yo melenas, que tenemos un problemón gordo, al servidor de correo le ha dado un KERNEL PANIC
- Ofú, bueno tranquilo, lo primero que tienes que hacer es intentar reparar las particiones, para ello debes de arrancar con un disco de arranque con soporte para EVMS.
Para el que no lo sepa EVMS es un sistema para hacer mirror y RAID por software, del que sinceramente, no había oido hablar hasta ese Lunes.
En fin que me dispongo a sacar el armatoste del armario, por el camino me encuentro a una de la redacción, le digo que no habrá correo durante al menos toda la mañana, suponiendo que corra la voz y el flujo de llamadas mengüe bastante.
Mientras busco un CD-ROM o diquete de arranque con EVMS, me llama el jefe diciéndome que va para allá, yo sigo buscando en diferentes sabores de Knoppix, pero nada que no encuentro nada con soporte de EVMS, así que decido crearme mi propia Knoppix con soporte de EVMS, no es muy difícil si seguís este manual.
Mientras la voy creando llega el jefe con otro de la empresa, me pregunta que como voy y yo le digo que mal, a los dos nos agobian a telefonazos, a mi los usuarios, a él los jefazos.
- Oye y no tenemos copias de seguridas - pregunto.
- No porque lo que montó SUPER-BOFH, blah , blah, era seguro, blah , blah...
- ¿Y no hay puede venir alguien que entienda más de esto? - vuelvo a preguntar intentado darme a mí mismo esperanzas.
- No, me temo que no, pero esta tarde vendrá SUPER-BOFH, a ver si puede arreglarlo.
La razón de que SUPER-BOFH no viniese inmediatamente, es que no trabaja en nuestra empresa sino en otra, empresa amiga, pero otra al fin y al cabo, y tendría que venir después de salir del otro trabajo.
Yo de mientras ya tengo creada la Knoppix con EVMS, (o eso creía yo en ese momento), como la máquina tiene una placa con dos controladoras IDE, lo que da un total de cuatro puertos IDE, cada uno con un disco duro, puedo elegir el puerto IDE donde colocar el CD-ROM de esclavo.
Comentar todo el proceso de pruebas que realicé sería tedioso, así que lo resumiré en una serie de puntos.
- Si ponía el CD-ROM de esclavo lo reconocía pero no arrancaba, aun indicándoselo claramente en la BIOS, iba al disco duro y KERNEL PANIC
- Si lo ponía en Cable Select, arrancaba del CD- ROM pero no cogía la imagen de KNOPPIX del CD-ROM.
- Si lo volvía poner de esclavo pero sin ningún disco duro conectado (no me atrevía a quitar sólo algunos no fuera a cargarme algo del EVMS), arrancaba sin problemas, pero sin discos duros conectados ¿para que leche lo quería?
Así que como eran más de las dos decidí irme a comer y esperar a SUPER-BOFH.
A la vuelta intenté de nuevo solucionar aquello, pero no pude.
Mientras que a mí no me llamaban al jefe le seguían acribillando de otras empresas que se habían quedado sin correo y sin web.
Al fin llegó SUPER-BOFH y se puso manos a la obra.
Le expliqué la decisión y lo que decidió fue crearse un disquete de arraque de la knoppix, para arrancar con los cuatros disco duros conectados y el CD-ROM a la vez, así aunque no arrancase desde él, el disquete cargaría el núcleo y después le pasaría el control al CD-ROM.
¿Problema solucinado?, pues no, porque yo con las prisas no recompilé el kernel al añadirle el parche de EMVS, no había tiempo para hacerme otra knoppix, por suerte seguimos buscando y dí con la solución, el CD-LIVE de arranque de Gentoo.
Quemé rapidamente la iso más pequeña de 43 megas y bajamos abajo, a esta, por desgracia no se le podía arrancar como la knoppix, así que SUPER-BOFH, desconectó dos discos duros que hacían pareja de mirror, y arrancando con el CD-ROM pudo revisar los dos restantes y ver que no tenía buena pinta.
El tiempo se nos echaba encima y el jefe decidió montar un segundo servidor de repuesto con una máquina que había allí de un anterior proyecto fracasado de captura de MPEG-2 en tiempo real, con lo cual teníamos una buena máquina.
Al final lo dejamos ese día a la 8 y media de la tarde, no sin que antes SUPER-BOFH me encomendara instalar una distribución de Linux con soporte EVMS en una de las particiones SWAP de la máquina, que era lo único que no estaba con EVMS por razones obvias, si la SWAP fuera con EVMS tendríamos la mitad de cantidad y sería el doble de lentas al tener que escribir en dos particiones.
En fin, que aquel día terminé bastante agobiado, aunque aprendí varias cosas sobre EVMS y sobre como hacer una Knoppix nueva en dos horas mientras intentas reparar un servidor y te acribillan a llamadas telefónicas.
MARTES
Ese Martes empezó bastante peor que el Lunes, aunque no tuve pesadillas, no al menos que yo recuerde.
Todo el mundo que se cruzaba conmigo me preguntaba que cuando estaría listo, yo respondía que no NPI, aunque con otras palabras claro, para terminar me llamaron de redacción que no imprimía la impresora, yo entre tener a más de 100 personas sin correo y a 4 sin impresora puediendo imprimir en otra de la empresa, me decidí por lo primero.
Bien, así que me puse manos a la obra y me dispuse a instalar una distribución Linux en la partción SWAP.
Mi primera elección era Gentoo por su soporte de EVMS, pero como nunca la había instalado anteriormente, y su manual era bastante largo, me decidí por Debian en la que yo y SUPER-BOFH teníamos más experiencia y después compilar el núcleo para EVMS.
Mientras el jefe y yo seguíamos en la instalación del servidor sustituto, obviamente también con Debian.
Bien, al final tuve la Debian instalada en SWAP con arranque en disquete para no tocar el MBR de los discos duros, no la fuera a pifiar, porque la prioridad ante todo era rescatar los datos de configuraciones de correo, DNS y web.
Pero al intentar compilar un nuevo núcleo, ví que no tenía espacio, (eran 256 MB), los debianitas dirán que si me instalé el quake o qué en esa partición, pues no sé, pero al intentar descomprimir los fuentes el disco no daba para más, intenté eliminar todo lo superfluo (tmp, documentación, programas innecesarios) pero ni por esas, así que al final decidí compilar el núcleo en mi propio ordenador.
En Debian fue bastante fácil bajarse el parche y aplicarlo al núcleo, después configurar todo lo posible como núcleo y no como módulo, así que le quité todo soporte para USB, red, sonido y todo lo que no se utiliza normalmente, le puse todo lo referente con EVMS, LVM y particiones de disco.
Al final me quedó un núcleo bastante mono de tan "sólo" 900KB.
Así que al disquete y a arrancar.
Curiosamente y en contra de toda ley de Murphy, funcionó a la primera, pude acceder a los discos duros de la máquina, POR FIN, aunque no me atrevía a tocarlos, como ya he dicho antes, lo primero era asegurar los datos, así que como ya era la hora de comer, se decidió esperar a SUPER-BOFH, aunque el jefe iría a recogerlo al trabajo para perder menos tiempo.
Después de comer lo que pude, (que casualidad que mis padres se fueran de vacaciones y me lo tenga que hacer todo yo) volví al curro, allí ya estaba SUPER-BOFH intentado solucinarlo, pero los movimientos laterales de su cabeza indicaban que no iba a ser posible recuperar el servidor.
El jefe estaba muy preocupado, si no se solucionaba aquello, se perdería todas las cuentas de correo, las páginas web que había allí y las configuraciones de DNS, aunque eso último se medio podía salvar con el secundario metido en W2000 pero que no había actualizado las últimas entradas añadidas por mí.
Finalmente SUPER-BOFH pudo acceder a dos de los cuatros discos duros, que por suerte tenían las páginas web, y las listas de correo.
Había que pasarlo todo al nuevo servidor, por red claro está, porque los discos duros había que montarlos de dos en dos, pero... resulta que no se podía cargar la red, porque el núcleo del disquete era de la 2.4.19 y en la partición swap tenía instalado la 2.2.20, ¿y ahora como se carga el módulo que habilita la tarjeta de red?
Rápidamente volví a mi máquina y compilé todos los controladores de tarjeta de red como módulos, los copié a un disquete y los trasvasamos de nuevo al server caído.
De nuevo y contrariamente otra vez a las leyes de Murphy, el kernel cargó a la primera y pudimos empezar a trasvasar el contenido al servidor de repuesto.
Una vez solucionado esto, SUPER-BOFH pasó a configurar el server secundario para que hiciese de servidor de correo saliente, ya que el de correo entrante estaba intacto.
Para ello eligió Postfix en vez de Qmail que había en el anterior pues a él le resultaba más fácil de configurar.
Pero claro, necesitábamos las configuraciones de correo que estaba en un archivo de los disco duros irrecuperables.
Ésta fue quizás la parte más sorprendente de toda la semana, como utilizar técnicas forenses pare recuperar datos de discos duros que no se pueden montar de ninguna de las maneras. Como este es un diario y no un tutorial mostraré únicamente los dos comandos que utilizó:
- grep --binary-files=text --unix-byte-offset --byte-offset 'cadena_a_buscar' /dev/dipositivo_en_el_que_buscar
Esto busca por todo el dispositivo, que no debe estar montado, la "cadena_a_buscar" y cuando lo encuentra muestra la posición donde se encuentra, así teniendo en cuenta la última cuenta que creé, no fue difícil encontrarlo. Una vez encontrado se hace lo siguiente:
- dd if=/dev/dispositivo_en_el_que_buscar of=/nombre_de_archivo bs=1 skip=1234567 count=50000
donde:
- nombre_de_archivo es el nombre del archivo donde volcaremos el resultado
- bs es el tamaño de bloque, normalmente 1
- skip es la posición que nos mostró el anterior comando menos una cierta cantidad que supondremos para coger el archivo desde el principio.
- count es el tamaño del archivo que será desde skip hasta skip+count
En esos momentos los tres, jefe, SUPER-BOFH y yo comenzamos a charlar amigablemente más tranquilos al ver que eso tenía solución, conversando me día cuenta de que al haber estudiado los tres en la misma facultad concíamos a los mismos profesores, pasando todos por manos del señor Rovayo. Fue un rato realmente agradable después de la tensión de antes.
Como la cosa iba para largo el jefe se marchó, quedándome yo allí viendo como SUPER-BOFH recreaba las cuentas de correos, con dominios virutales y todo mediante scripts hechos con TCL.
De mientras yo trataba de aprender lo más posible.
Finamente SUPER-BOFH dió por concluida su tarea, sólo restaba instalar una nueva tarjeta de red al servidor para que tuviese 2 como el original, ponerles las mismas IP y cambiarle el nombre.
Como para eso había que apagar la máquina, todavía se estaba copiando datos de uno a otro y eran ya más de las once y media de la noche, se decidió que yo le daría los últimos toques a la mañana siguiente.
¿Terminado por ese día?, pues no puesto que a SUPER-BOFH le trajo el jefe y como se había ido tuve que llevarle yo a su casa que estaba en dirección contraria a la mía.
En fin que llegué a mi casa después de la 12:00, y como no tenía ganas de cocinar me corté queso y chorizo y la cama, sabiendo que al día siguiente, ¿o debería decir al acabar la noche?, tendría que solucinar definitivamente lo del correo.
Continuará....