Recuperar nuestra instalación en modo gráfico desde un LiveCD con “chroot”

Algunas veces y más cuando somos novatos en GNU/Linux, dañamos el sistema y luego nos es imposible iniciar el entorno gráfico. En estos casos para alguien nuevo puede ser una tarea muy difícil intentar la recuperación desde la consola, sin por ejemplo la posibilidad de tener disponible conexión a Internet ni un navegador desde donde poder leer alguna instrucción o guía que ayude mientras intentamos recuperar el sistema.
Lo que haremos es por medio de lo que suele llamarse una “jaula chroot”, ingresar al sistema dañado desde un LiveCD. Usted puede buscar sobre “chroot” o “jaula chroot” si quiere profundizar el conocimiento en esos temas.
Entonces que quede claro, la recuperación con este método seguirá siendo desde la terminal, pero podremos mientras tanto ver guías y buscar soluciones desde internet, copiar y pegar salidas de la terminal con el ratón, copiar esas salidas en un editor de texto o en un foro, etc.

Seguramente algunos ya conocen las instrucciones de la Guía Ubuntu para reinstalar/recuperar el GRUB 2 desde un LiveCD:
Recuperar GRUB - Guía Ubuntu

Pues bien, lo que aquí indicaremos son exactamente los mismos pasos, mas una instrucción que permite compartir la conexión de internet del LiveCD en “chroot”

Como primer requisito necesitaremos un LiveCD “de igual arquitectura” que el sistema instalado dañado que queremos recuperar. Es decir, si nuestro sistema dañado es de 32 bits, necesitaremos una versión Live de Kubuntu de 32 bits (equivalente razonamiento si nuestro sistema es de 64 bits). Mientras coincida la arquitectura no importa si el LiveCD corresponde a igual versión del Kubuntu instalado, aunque es recomendable que la versión del Kernel no sea muy distinta. Incluso podríamos utilizar Ubuntu o derivados. De más está decir que si tenemos instaladas en disco algunas de esas distribuciones además del sistema dañado, podremos aplicar este método desde ese otro sistema (Siempre que sean de igual arquitectura como ya se ha dicho).

Comencemos:
Entonces iniciar desde el LiveCD (u otro sistema *buntu instalado en el disco). Una vez iniciado abrimos la terminal (el programa Konsole por ejemplo en Kubuntu). Lo primero que debemos determinar es en cuál partición tenemos instalado el sistema dañado. Podemos ver eso en modo gráfico desde el gestor de particiones del LiveCD (Sistema > Gestor de particiones de KDE) o desde la terminal con la orden:

sudo fdisk -l

Supondremos en esta guía que el sistema dañado está instalado en la partición "/dev/sda1". Recuerda que tu debes averiguar cual es la tuya, y en caso de ser una distinta reemplazar en lo que sigue el “sda1” por lo que corresponda en tu equipo. Si tienes instalado el /home en partición distinta, la partición que debes buscar es donde tienes instalada la raiz del sistema "/". Entonces montamos esa partición en la carpeta /mnt del sistema Live:

sudo mount /dev/sda1 /mnt

Ahora debemos montar ciertos dispositivos del sistema Live en sus equivalentes puntos donde montamos anteriormente las carpetas del sistema dañado. Esto es, exactamente tal cual se explica en el anterior enlace de la Guía Ubuntu, mas una última linea para poder compartir la conexión a internet en la jaula chroot. Una por una ingresamos las siguientes lineas en la terminal:

sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys  /mnt/sys
sudo mount --bind /etc/resolv.conf /mnt/etc/resolv.conf

Por último ejecutamos chroot sobre el punto donde montamos todo lo necesario:

sudo chroot /mnt

De esta forma y en este momento desde la terminal estaremos como “root” en nuestro sistema dañado. Esto es, salvo lanzar aplicaciones gráficas, podrás ejecutar órdenes para recuperar el sistema. Por ejemplo, recuperar o reinstalar GRUB 2 tal cual se explica en la Guía Ubuntu.
También, lo primero que podemos hacer por ejemplo es estando conectados a internet desde el LiveCD, actualizar la lista de paquetes en nuestro sistema dañado desde la jaula chroot:

sudo apt-get update

Remarcamos que al estar como root, el uso de “sudo” no es necesario, aunque opcional.

Luego podríamos ejecutar lo que se explica en la Wiki de Kubuntu-es sobre solucionar instalaciones o actualizaciones inconclusas o interrumpidas:
¿Cómo soluciono una actualización interrumpida?

Otra alternativa cuando tenemos problemas de paquetes, es instalar “aptitude”:

sudo apt-get install aptitude

O "ppa-purge" para desactualizar los paquetes de un PPA problemático:

sudo apt-get install ppa-purge

y obviamente, buscar sobre el correcto uso de los dos programas anteriores. Por ejemplo para problemas comunes con apt-get y aptitude:
Guía para solucionar errores de apt-get /aptitude

En definitiva, desde esa terminal donde hemos seguido los pasos para crear esa pequeña jaula chroot, podremos realizar las tareas de recuperación (principalmente referidas a instalación/desinstalación/desactualización de paquetes) que vayamos encontrando en guías y foros navegando por internet. No debes realizar tareas de mantenimiento del disco y las particiones con "fsck" ni con ningúna otra aplicación desde la jaula creada. Para eso debes salir de la jaula, desmontar la partición del sistema y luego correr "fsck" desde el LiveCD. Podemos salir de la jaula chroot con:

exit

Y luego desmontar la partición del sistema (en nuestro ejemplo sda1), para lo que primero tenemos que desmontar todas las carpetas o archivos montadas con --bind

sudo umount /mnt/etc/resolv.conf
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/dev
sudo umount /dev/sda1