México: (+52)5585908505, Atención: 9:00 a 18:00 hrs
Cursos y talleres en español de Internet de las Cosas   
   |   

Enjaulamiento

Enjaulamiento

<< Regresar

chroot

El enjaulamiento, mejor conocido como chroot por el nombre de su instrucción es una de las herramientas más empleadas para la instalación, reparación, extracción de información, instalaciones stand-alone en sistemas embebidos o su recuperación bastante difundida y empleada. Sobre todo porque puede funcionar desde un LIVE CD o un medio extraible.

La instrucción chroot es el acrónimo para CHangeROOT y como su nombre nos indica nos permite cambiar la raíz del sistema de archivo con el que actualmente nos encontramos trabajando. Con el fin de que solamente ese sistema de archivos sufra los cambios efectuados. El ambiente a modificar se llama chroot jail.

Entre sus principales usos se encuentran:

  • Reinstalación del bootloader.
  • Reconstrucción de la imagen de initramfs.
  • Actualización o desactualización de paquetes.
  • Reinicio de passwords olvidados.

Es un poco complejo su uso ya que requiere montar antes que nada el sistema de archivo con el que vamos a trabajar.

Partamos del principio de que queremos reparar nuestro sistema desde un LIVECD, no importa la distribución de Linux con la arquitectura del sistema que queremos reparar (32 o 64 bit) siempre y cuando el disco nos permita trabajar con la terminal y montar nuestro disco duro.

Una vez estemos en la terminal empezaremos identificando nuestras particiones:

fdisk -l

Con esta instrucción listaremos todas las particiones/discos. Debemos identificar cuál es la partición que queremos reparar, donde está instalado nuestro sistema a reparar, a partir de ahora lo llamaremos sistema roto.

Para este ejemplo consideraremos que nuestro sistema roto está en /dev/sda1 .

Montaremos la partición y para ello lo haremos de la siguiente manera

mount /dev/sda1 /mnt/

Si cuenta con particiones separadas para /home o /var o cualquier otra en otra, deben ser montadas de la siguiente forma

mount /dev/sda2 /mnt/var

Como se va a modificar el sistema se requiere montar también particiones como /proc (se crea en tiempo real en cada arranque del sistema), sys y dev.

mount -t proc proc /mnt/proc
mount -t sysfs sys /mnt/sys
mount -o bind /dev /mnt/dev

La bandera -t indica a mount el tipo de partición a montar. Es importante hacerlo para las particiones /proc y /sys. El uso de la bandera -o le indica a mount que debe enlazar los dispositivos en nuestro actual /dev a donde se encuentra el sistema roto.

Se hace de esta forma para que chroot tenga acceso a estas carpetas como si se tratasen del sistema roto, aunque deben ser del sistema actual (ej: la sesión del Live CD) ya que guardan relación con el estado del sistema, los procesos y el hardware.

Para usar chroot, empleamos la siguiente instrucción:

chroot /mnt/ /bin/bash

o simplemente

chroot /mnt/

Al comando se le pasan como argumentos la ruta de la nueva raíz “/” (que en nuestro caso es /mnt/) y la consola que se desea utilizar. Ahora ya podemos usar la consola como si hubiéramos iniciado sesión con root en nuestro sistema roto (editar archivos, revisar scripts, instalar/desinstalar paquetes…). ¡OJO!, para que los cambios realizados surtan efecto, hay que desmontar el sistema de ficheros después de salir de chroot.

Para salir de chroot simplemente tenemos que escribir exit en la terminal y dar enter.

exit

Después se procede a desmontar todos los sistemas de archivos montados, en orden inverso al que fueron montados.

umount /mnt/dev
umount /mnt/sys
umount /mnt/proc
umount /mnt/

Video: Ejemplo del uso de chroot

En este video se verá un caso de uso del chroot, para ello se recomienda o iniciar su computadora con liveCD o instalar una distribución de linux en una unidad extraible.

Última actualización: septiembre 06, 2018

Deja un comentario