Día 7 - Como me salvo el día CHROOT

 

Espia

Un disco en mal estado, un servidor viejo que no se puede actualizar y un administrador más tonto que los chocos nuevos son un caldo de cultivo para el desastre. Después de que el servidor en producción no arranque, detectamos que la tabla de particiones hizo kboom. Repararlo es imperativo para que no me despidan. Así que como buen zapador tuve revisar el maletín de herramientas y ver que encontramos.

Así que hoy sacare de mi maletín la herramienta CHROOT, un pieza clave en Linux. Sirve para emular un sistema cuyo directorio es definido dentro del sistema Linux que estamos corriendo. Es decir, si tenemos un sistema Linux que no arranca, y necesitas poder correrlo para hacer pruebas o diagnósticos, puedes correr un live cd y usar el comando CHROOT para poder iniciar ese sistema dentro de una pseudo maquina virtual.

CHROOT

Es una pequeña pseudo maquina virtual con un entorno exclusivamente en Linux. La Jaula chroot es una gran herramienta para probar comandos y hacer pruebas de manera segura dentro de nuestro linux.

¿Pero que es exactamente? 

CHROOT genera un entorno enjaulado con un nuevo sistema de directorios propios, por ejemplo, nosotros normalmente usamos nuestro sistema Linux cuyo sistema raiz comienza en /, pero cuando ejecutamos chroot nuestro sistema de archivos cambia a /sbin/chroot/ y ahora estaremos enjaulados dentro de ese sistema de archivos nuevo. No podremos acceder al sistema de archivos de la maquina, para la consola que estés usando en ese momento, solo existe el sistema de archivos de /sbin/chroot/.

Ninguno de los cambios que hagamos dentro de chroot afectarán al sistema principal
El sistema suele usar este entorno virtual de manera transparente para nosotros, por ejemplo para algunas conexiones sin necesidad de usuarios y contraseña, correr por ejemplo un servidor para compartir recursos de nuestra maquina de manera anónima no sería muy seguro si pudieran acceder a nuestro datos, enjaularlo dentro de un entorno es más que conveniente.

Ojo, no es un sistema para dejar en producción, sino para hacer pruebas señores, hay muchas formas de elevar privilegios desde una jaula, pregúntenle  a Houdini sino. Ahora es el momento donde piensan, sino es seguro para que demonios me sirve y como es que te salvo. 

Como me salvo CHROOT

La tabla de particiones rota no dejaba lugar a dudas de que el sistema no iba a arrancar por más veces que la reiniciara. Arreglarla fue muy sencillo con un disco con TestDisk (ya hablaré otro día de eso), pero a la hora de iniciar, nada. El mismo problema, tengo un disco con SuperGrub y el sistema esta ahí, pero a la hora de iniciar, nada nuevamente. Busco el gestor de arranque por defecto del sistema que estoy usando y es una vieja, más que vieja versión de Lilo. ¡Demonios! Sin internet, sin datos y con poco tiempo, trato de pensar que hacer. 
Es ahí donde entra CHROOT, si puedo emular un sistema de archivos, puedo también usar uno ya existente, me siento a leer el man del comando (man chroot), después de algunos minutos pruebo lo que parece ser una solución. Levanto un LiveCD de un sistema Linux, el más antiguo que tengo, monto el disco con 
mount /dev/sda1 /mnt/ 
Después es cuestión de levantar en el entorno virtual ese sistema de archivos con 
chroot /mnt/ .
Eso iniciara una consola dentro del sistema de archivos del server mismo, dándonos acceso al sistema completo, con programas y directorios con acceso de root. Ahora es solo cuestión de reinstalar en el MBR el gestor de arranque con un simple comando 
lilo -v 
y listo, reiniciamos en nuestro server totalmente funcional.

Comentarios