Cum repari un linux instalat care nu mai booteaza cu comanda chroot

Configurare noua (How To)

Situatie

Se intampla ca linuxul instalat sa nu mai booteze sau in urma unei instalari de windows (dualboot) sa nu mai existe “bootloaderul” (grub sau lilo) si linux sa nu mai poata fi pornit dar el sa existe in continuare instalat pe partitie.

 

Backup

Pentru aceasta se poate folosi chroot o comanda care permite schimbarea “mediului” dintr-un sistem de operare linux care exista ruland in altul, cu un filesystem diferit.

Chroot este util in mai multe situatii:

https://en.wikipedia.org/wiki/Chroot

Solutie

Mai intai se booteaza un linux de pe un CD sau un stick USB; apoi, pentru a face chroot in vechiul filesystem, se dau urmatoarele comenzi:

Se presupune ca sistemul cu probleme este instalat pe /dev/sda2:

sudo -i
mount /dev/sda2 /mnt
mount –bind /dev  /mnt/dev
mount –bind /dev/pts  /mnt/dev/pts
(*optional* teoretic necesar dar practic functioneaza fara a monta special /dev/pts)
mount –bind /proc /mnt/proc
mount –bind /sys  /mnt/sys

Eventual in caz ca sistemul in care se face chroot este suspect ca defect:
mount –bind /usr/ /mnt/usr

Sau intr-o singura linie:
for i in /dev /dev/pts /proc /sys; do sudo mount -B $i /mnt$i; done

In caz ca sistemul este cu EFI si /dev/sda1 este partitia efi:
sudo mount /dev/sda1 /mnt/boot/efi

Eventual pentru a fi sigur ca resolverul functioneaza:
sudo cp /etc/resolv.conf /mnt/etc/

chroot /mnt

sudo grub-install /dev/sda
sudo grub-install –root-directory=/mnt/ /dev/sda

Sau in cazul sistemului cu efi:

apt-get install –reinstall grub-efi
update-grub
grub-install /dev/sda

Tip solutie

Permanent

Impact colateral

Chroot este un instrument foarte util si permite crearea de “medii” complet separate de sistemul fizic care ruleaza.
De multe ori serviciile care sant esentiale (cum ar fi DNS) sunt rulate in asa numitele “chroot chages” (cutii separate de sistemul de fisiere real) pentru ca in caz ca un “atacator” compromite un sistem sa nu aiba acces la filesystemul real ci doar la unul virtual (chroot).

Putem spune ca chroot este un prim pas spre virtualizare permitand “containere” independent / separate de fisiere. Cu suport de retea virtuala adecvat se obtine un fel de docker*.

Voteaza

(26 din 65 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?