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
PermanentImpact 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*.
Leave A Comment?