¡Abandonen el Disco Duro!

      Comments Off on ¡Abandonen el Disco Duro!

Eso es lo que se podia oir entre los bytes del /dev/hda del servidor Linux que sirve estas páginas. He tenido que hacer un trasvase que ríete tu del Tajo-Segura.

El tema es que mi servidor tenía 2 discos, el hda y el hdb. El bueno y gordo es el hdb asi que decidí usar el hda para poner la particion de swap y contener el directorio /boot que no ocupan demasiado. Todo lo demás, el raíz /, iría en el otro disco, asi tendría separadas las operaciones de swapping, que en un equipo con tan poca memoria suelen ser frecuentes, de los accesos al resto de los datos del servidor.

Pero yo no contaba con la mala leche de los discos duros, y resulta que este hda maldito, que ya habia pasado por algun que otro equipo windows (y quizas como venganza por ello), ha empezado a fallar y a hacer ruidos raros, sobre todo en dias de mucho calor como han sido estas últimas semanas. Un característico CLACK-CLACK que precedia a su parada eran las únicas señales. Cuando este disco se para, me quedo sin swap, por lo que el servidor se cuelga.

Tras unas consultillas a uno de los gurús de Linux que tenemos en SoyGeek hemos dado con la solución menos mala. Tengo que trasvasar el directorio /boot y el swap al otro disco y eliminar o al menos poner como secundario al disco travieso. Y esto que parece tan fácil, pues no lo es, pero con la ayuda de Futur3 y su guía para catetos de Linux, lo voy a intentar.

Lo primero es copiar el directorio /boot de un disco a otro. Como no hay una orden que haga eso lo que hago es copiar /boot, que está montado en hda1, a /boot2, lo que automaticamente hace la copia en hdb1, ya que el / está montado allí. A continuación desmonto /boot (umount /boot) y renombro /boot2 a /boot (mv boot2 boot).

Ahora voy por el swap. Como no puedo reparticionar el hdb, porque me cargaría todo lo que tengo alli, lo que hago siguiendo los consejos y detalladas instrucciones de Futur3, es crear un fichero de swap en lugar de una particion de swap.

dd if=/dev/zero of=/swapfile bs=1024 count=1048576
mkswap /swapfile 1048576
sync
swapon /swapfile

Después modifico mi /etc/fstab para borrar la entrada de /boot y sustituir la partición de swap por el fichero de swap:
/swapfile none swap sw 0 0

A continuación, para trasladar el gestor de arranque, ejecuto el comando “grub” y le digo lo siguiente:
root (hd1,0)
setup(hd1)
quit

con lo que consigo instalar el grub en el MBR de hdb.

Ahora viene lo bueno, apagar el servidor, quitar el disco defectuoso, configurar el otro como master y/o cambiarlo de bus IDE si es necesario, para que quede como hd0.

Luego rearrancamos…

Si ha habido suerte, este post estará publicado, si no, no podreis ver Makinolo durante una temporada X-D

Pues bueno, no ha habido suerte y he tardado cerca de 1 hora y media en recomponer el servidor. Resulta que al hacer el setup en el grub este se configura para coger el kernel del Linux del directorio raiz y mi kernel esta en el directorio /boot, asi que el muy capullo no lo encontraba y no arrancaba.

Para mas inri la pantalla tenia algun problema raro y estaba llena de rayas verticales y el teclado configurado en inglés, con lo que he tardado mas de la cuenta en saber que pasaba y en arreglarlo.

Entrando en la linea de comandos del GRUB le he especificado

kernel /boot/vmlinuz-2.xxxxxx ro root=LABEL=/
initrd /boot/initrd-2.xxxxxx
boot

y ha vuelto a arrancar, despues he editado /boot/grub/menu.lst y he escrito correctamente la ubicacion de ambos ficheros ademas de eliminar el splashscreen. Ahora todo vuelve a funcionar, el servidor tiene un disco duro menos y yo una experiencia traumatica con el Linux mas.