Chroot
Chroot este procesul de schimbare a directorului root aparent (și al procesului care funcționează în acel moment împreună cu toți descendenții acestuia) către un al director root. Atunci când treceți într-un alt director root nu puteți accesa fișiere și comenzi în afara acelui director. Acest director se numește un chroot jail. Schimbarea de root este efectuată de obicei pentru întreținerea sistemului, cum ar fi reinstalarea bootloader-ului sau resetarea unei parole uitate.
Cuprins |
Cerințe
- Va trebui să bootați un alt mediu Linux funcțional (ex: de pe un LiveCD sau un suport flash USB, sau dintr-o altă distribuție de Linux instalată).
- Sunt necesare privilegii de root pentru a efectua un chroot.
- Asigurați-vă că arhitectura mediului Linux în care ați bootat se potrivește cu arhitectura directorului root în care doriți să intrați (cu alte cuvinte, i686, x86_64). Puteți afla arhitectura mediului dumneavoastră actual folosind:
-
# uname -m
- Dacă aveți nevoie de module pentru kernel în mediul chroot, încărcați-le înainte de a efectua chroot-ul. Ar putea fi, de asemenea, util să inițializați swap-ul (swapon /dev/sdxY) și să stabiliți o conexiune de internet înainte de a efectua chroot-ul.
Montați partițiile
Partiția root a sistemului Linux pentru care doriți să intrați printr-un chroot trebuie să fie montată. Pentru a afla ce nume a fost dat dispozitivului respectiv de către kernel, executați:
# lsblk /dev/sda
Apoi creați un folder unde doriți să montați această partiție și montați-o:
# mkdir /mnt/arch # mount /dev/sda3 /mnt/arch
Mai departe, dacă aveți partiții separate pentru alte părți ale sistemului dumneavoastră (ex: /boot, /home, /var, etc) ar trebui, de asemenea, montate:
# mount /dev/sda1 /mnt/arch/boot/ # mount /dev/sdb5 /mnt/arch/home/ # mount ...
Deși se pot monta sistemele de fișiere și după ce ați efectuat un chroot, este mai convenabil să procedați așa dinainte. Motivul pentru aceasta este pentru că va trebui să demontați sistemele de fișiere temporare după ce ieșiți din chroot, iar în felul acesta veți putea demonta toate sistemele de fișiere printr-o singură comandă. Din moment ce mediul Linux extern este conștient de toate partițiile montate, le poate demonta în siguranță la oprire.
Chroot
Montați sistemele de fișiere temporare:
# cd /mnt/arch # mount -t proc proc proc/ # mount -t sysfs sys sys/ # mount -o bind /dev dev/ # mount -t devpts pts dev/pts/
Dacă ați stabilit o conexiune de internet și doriți să o folosiți în mediul chroot, este posibil să trebuiască să copiați serverele DNS pentru a vă putea conecta la rețea:
# cp -L /etc/resolv.conf etc/resolv.conf
Acum intrați în sistemul instalat printr-un chroot și definiți consola:
# chroot . /bin/bash
Opțional, pentru a folosi configurația dumneavoastră Bash (~/.bashrc și /etc/bash.bashrc), executați:
# source ~/.bashrc # source /etc/profile
Opțional, creați un prompter unic pentru a putea diferenția mai bine mediul chroot:
# export PS1="(chroot) $PS1"
Executați programe grafice din chroot
Dacă X merge pe sistemul dumneavoastră, puteți folosi programe grafice din mediul chroot.
Pentru a permite conectarea la serverul dumneavoastră X, trebuie să executați următoarea comandă dintr-un terminal:
# xhost +
Apoi, pentru a direcționa programele către serverul dumneavoastră X, executați:
# export DISPLAY=:0.0
Efectuați operațiuni de administrare a sistemului
În momentul acesta puteți efectua în mediul chroot orice operațiune de administrare aveți nevoie. Câteva exemple uzuale sunt:
- Reinstalarea bootloader-ului.
- Reconstruirea imaginii initramfs.
- Actualizarea sau downgradarea pachetelor.
- Resetarea unei parole uitate.
Ieșiți din mediul chroot
După ce ați terminat cu întreținerea sistemului, ieșiți din chroot:
# exit
Apoi demontați sistemele de fișiere temporare și orice dispozitiv montat:
# umount {proc,sys,dev,boot,[...],}
La final, încercați să demontați partiția root:
# cd .. # umount arch/
După aceea, veți putea da restart în siguranță.