Reparar ou mellorar un sistema desde un live cd

by Barnellbe
Non sería a primeira vez que estragamos o grub do sistema e vémonos na obriga de recuperalo. Se queremos cambiar o contrasinal de root, instalar unha nova aplicación ou mesmo actualizalo kernel. Podémolo facer coa axuda dun usb live ou dun cd e unha magnífica ferramenta para recuperar sistemas incluida na distribución, chamada chroot, aínda que descoñezamos o contrasinal de root do sistema a reparar. No meu caso, dispoño dun Kali Linux en un dos discos duros, sen embargo un día deixou de arrancar, deixando unha mensaxe na pantalla que poñía (initramfs). Explico como fixen que arrancara novamente:
Cargamos o sistema operativo desde o lapis. E ímonos ao terminal:

Creamos unha carpeta na cal montar a unidade onde teñamos instalado o linux que queremos reparar. No meu caso vou recuperar o arranque dun kali linux (basado en Debian), que teño instalado na unidade /dev/sdb1.
mkdir -p kali/{sys,proc,dev/pts}
A anterior instrución é equivalente a ir creando os seguinte cartafois de forma manual. Obviamente resulta máis cómodo co comando previo.
mkdir /mnt/kali mkdir /mnt/kali/proc mkdir /mnt/kali/sys mkdir /mnt/kali/dev mkdir /mnt/kali/dev/pts
Montamos a unidade na que teñamos instalado o sistema anfitrión, no meu caso un kali linux. Para aclarar en que unidades está instalado un sistema operativo, podemos axudarnos da orde fdisk -l ou ben gparted.
mount /dev/sdb1 /mnt/kali
Montamos tamén e de maneira manual /dev/ /dev/pts /proc e /sys:
mount -o bind /dev /mnt/kali/dev mount -o bind /dev/pts /mnt/kali/dev/pts mount -o bind /sys /mnt/kali/sys mount -o bind /proc /mnt/kali/proc
Os puntos seguintes en teoría non sería necesario facelos, pero se ao facer chroot non dispós de conexión á rede, o único que hai que facer é copiar o sources.list e o resolv.conf. No caso do resolv.conf, pode ocurrir que o sistema nos indique que o ficheiro orixe e destino é exactamente o mesmo. Se fora así, eliminámolo do sistema operativo kali e copiámolo do sistema que teñamos activo (usb, por exemplo).
cp /etc/apt/sources.list /mnt/kali/etc/apt/sources.list rm /mnt/kali/etc/resolv.conf cp /etc/resolv.conf /mnt/kali/etc/resolv.conf
Cargamos o chroot
chroot /mnt/kali /bin/bash
Xa estamos no sistema operativo anfitrión con dereitos de root. Agora podemos cambiar contrasinais, reparar grub, instalar aplicacións, agregar usuarios, etc.
apt-get update
apt-get install ...
No meu caso e coa idea de recuperar o grub, o que fixen foi actualizar o grub:
update-grub
Unha vez feitos os cambios, para sair de chroot escribimos a orde exit:
exit
E por último debemos de desmontar as carpetas sys, dev, proc:
umount /mnt/kali/proc/ umount /mnt/kali/sys/ umount /mnt/kali/dev/pts/ umount /mnt/kali/dev/
Reiniciamos o equipo e arrancamos o equipo. No meu caso, kali estaba novamente activo.
