Reparar ou mellorar un sistema desde un live cd

jail

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:

bash

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.

kali_linux