Recuperar un droplet corrupto en DigitalOcean

En Tutoriales y Guías, Webmasters por

Lo cierto es que estoy contento con el servicio que me ofrece DigitalOcean, pero no está libre de que en un momento determinado falle el hardware y el droplet/vps se apague de forma incorrecta. Esto tiene como consecuencia directa que el droplet no arranque porque el sistema de archivos está corrupto, pero tiene solución y os voy a mostrar cómo recuperar un droplet corrupto en DigitalOcean.

DigitalOcean

En este artículo voy a mostrar uno de los dos métodos, que consiste en emplear el kernel de recuperación. Hay un segundo método en caso de que este primero falle, pero lo explicaré más adelante en otro artículo.

Cómo recuperar un droplet corrupto en DigitalOcean

Lo primero que vamos a hacer es ver que kernel está usando nuestro droplet actualmente. Esto lo podemos consultar desde el panel de control de DigitalOcean, una vez dentro accedemos a nuestro droplet y en la pestaña Settings → Kernel nos pondrá algo como:

Your droplet’s current kernel: Ubuntu 14.04 x64 vmlinuz-3.13.0-36-generic

Importante: anotamos el nombre del kernel que está usando para más adelante restablecerlo.

El siguiente paso va a ser apagar el droplet. La forma adecuada de hacerlo es empleando el comando: sudo poweroff

Cuando el droplet está corrupto, al menos en mi caso, no podía acceder por SSH ni tampoco empleando la consola web que nos facilita DigitalOcean, por lo que ejecutar el comando anterior no era posible, tuve que apagarlo desde el panel de control de DigitalOcean en la pestaña Power → Power Off pulsando el botón «Power Off».

Apagar droplet DigitalOcean

Una vez apagado el droplet es el momento de activar el kernel de recuperación, también llamado recovery kernel. Vamos a la pestaña Settings → Recovery y pulsamos el botón “Mount Recovery Kernel”.

Recuperar un droplet corrupto en DigitalOcean

Una vez que se ha activado el kernel de recuperación, tenemos que volver a arrancar nuestro droplet, para ello desde la pestaña «Power» pulsamos el botón “Boot”.

Ahora empleando la consola desde la propia web, en la pestaña Access → Console Access pulsa el botón “Console Access”. Si todo ha ido bien tendremos acceso al droplet a través de una consola con funcionalidad reducida, pero suficiente para tratar de solucionar los problemas con el comando fsck.

A la hora de emplear el comando fsck debemos conocer el nombre de la partición activa y para esto ejecutamos el comando: blkid

Este comando debería mostrar en pantalla algo como:

/dev/vda1: LABEL=»DOROOT» UUID=»052a1f32-39g6-4272-a03a-ae0bk90ba13a» TYPE=»ext4″

Como vemos nos indica que la partición activa se llama /dev/vda1 por lo que el comando que tenemos que ejecutar a continuación es:

fsck -yf /dev/vda1

Una vez que termine de comprobar los archivos (si encuentra alguno corrupto tratará de recuperarlo), tenemos que apagar el droplet empleando el comando: poweroff

En este momento volvemos al principio de este tutorial, donde os decía que teníais que anotar el nombre del kernel que estaba usando el droplet porque ahora vamos a restaurarlo. Desde la pestaña Settings → Kernel seleccionamos en la lista el kernel que estaba usando nuestro droplet y después pulsamos el botón “Change”.

Cambiar kernel de droplet

Si todo ha ido bien, tras arrancar el droplet nuevamente nos debería permitir el acceso a través de SSH o empleando la consola web.

Si hemos tenido suerte y ya estamos en la consola, podemos acceder a la carpeta /lost+found que es donde la aplicación fsck guarda los archivos corruptos recuperados. Normalmente estos archivos son archivos temporales o archivos que ya has eliminado con anterioridad, pero de todas formas vale la pena tomarse unos minutos y comprobar que no haya datos importantes.