Repararea sistemului: HowTo chroot

De multe ori, mai ales atunci când ne deranjăm, ne-am trezit în situația dificilă de a nu putea accesa sistemul pentru a-l repara, dar soluția este ușoară: folosiți comanda Chroot. de pe orice LiveCD / RepairCD.

În multe locuri (forumuri, bloguri ...) se menționează această comandă și se dă o „copiere / lipire” a codului, dar intenția mea cu această postare este să explic puțin acei pași, pentru a folosi bine acest instrument, cu cunoștințe de cauză.

Introducere

Comanda Chroot. Este cunoscut sub numele de CHangeROOT, adică o comandă care vă permite să schimbați rădăcina sistemului pe care lucrați. Cu alte cuvinte: dacă sunteți dintr-un LiveCD și doriți ca tot ceea ce lucrați pe consolă să aibă un efect asupra sistemului instalat, trebuie mai întâi să folosiți Chroot..

Problema este că nu este suficient să se utilizeze Chroot. Ca atare, înainte de a monta corect anumite partiții.

CUM SĂ

Mai întâi trebuie să pornim un terminal, fie de pe un alt sistem instalat (pe altă partiție / disc), fie de pe un LiveCD. IMPORTANT: arhitectura LiveCD trebuie să se potrivească cu cea a sistemului de reparat (32 sau 64 biți).
Odată ce suntem în terminal vom începe să ne identificăm partițiile:
fdisk -l

  • Cu această comandă vom lista toate partițiile / discurile noastre. Trebuie să identificăm care este partiția țintă, unde este instalat sistemul nostru de reparat, de acum înainte o vom apela sistem defect.

Pentru acest exemplu vom considera că sistemul nostru defect este în / dev / sda1 .

Continuăm să asamblăm sistemul. Mai întâi vom crea folderul în care vom lucra și mai târziu vom monta partiția unde se află sistemul nostru defect în acel folder
mkdir /mnt/my_linux
mount /dev/sda1 /mnt/my_linux

Dacă aveți dosarul / Home o / var sau oricare alta pe o altă partiție, ar trebui să o montați astfel:
mount /dev/sda2 /mnt/my_linux/var

  • NOTĂ: Am luat ca exemplu partiția / dev / sda2 pentru folderul / var, lăsați fiecare să regleze codul în funcție de caracteristicile lor.

În mod normal, acest lucru ar fi suficient dacă trebuie pur și simplu să editați fișierele manual, dar dacă vrem să executăm câteva comenzi care configurează sistemul, trebuie să montăm anumite foldere de sistem speciale: / dev, / proc/ sys.
mount -t proc proc /mnt/my_linux/proc
mount -t sysfs sys /mnt/my_linux/sys
mount -o bind /dev /mnt/my_linux/dev

  • Cu opțiune -t noi spunem monta tipul de „sistem de fișiere” pe care dorim să îl montăm. Este necesar să o specificați din cauza naturii speciale a folderelor / proc y / sys.
  • Cu opțiune -o specificăm opțiunile de monta. Optiunea lega servește pentru a „lega”. În UNIX toate dispozitivele hardware sunt accesibile prin folder / dev, de aceea trebuie să ne montăm curentul / dev în dosarul în care se află acum sistemul nostru defect. Deoarece acest folder este deja montat, este necesar doar să spuneți monta unde este montat inițial.

Se face astfel, astfel încât Chroot. Accesați aceste foldere ca și cum ar fi sistemul defect, deși trebuie să provină din sistemul curent (de exemplu: sesiunea LiveCD), deoarece acestea sunt legate de starea sistemului, proceselor și hardware-ului.

Acum este momentul să îl folosiți Chroot.:
chroot /mnt/my_linux/ /bin/bash

  • Comanda este transmisă ca argumente calea noii rădăcini «/» (care în cazul nostru este / mnt / my_linux) și consola pe care doriți să o utilizați (în acest caz am optat pentru binecunoscutul bash, găsit în / bin / bash). Dacă nu specificăm consola, ne vom găsi în fața unui interpret de comandă oarecum arhaic (nu se umple atunci când apăsați fila etc.).

Acum putem folosi consola ca și cum am fi început sesiunea rădăcină pe sistemul nostru defect (editați fișiere, verificați scripturi, instalați / dezinstalați pachete ...). AVERTISMENT! Pentru ca modificările făcute să intre în vigoare, trebuie să demontați sistemul de fișiere după ce ați ieșit Chroot.Uită-te la exemplul de mai jos.

Mai multe informații https://wiki.archlinux.org/index.php/Change_Root (lectură mai mult decât recomandată).

Exemplu de utilizare: restaurați GRUB2

Una dintre cele mai răspândite utilizări ale Chroot. Este ca un instrument pentru repararea GRUB. Deoarece dacă grub-ul se rupe, este practic imposibil să pornim sistemul nostru pentru a-l repara.

ANUNȚ: acest mic tutorial este un simplu exemplu, funcționează pe diferite distribuții derivate din Debian, Ubuntu și openSUSE printre altele. Chiar și așa, verificați documentația distribuției dvs., deoarece în multe comanda nu este găsită update-grub.
# NOTĂ: aceste comenzi rulează o dată în chroot.update-grub
grub-install /dev/sda

  • cu update-grub Actualizăm meniul de intrare al GRUB2, adăugând astfel orice intrări lipsă. Mai târziu, reinstalăm GRUB pe discul nostru, deoarece acesta a fost deteriorat.

În acest caz am luat / dev / sda la fel ca discul pe care avem sistemul nostru, acesta trebuie adaptat cazului dvs.

GRUB-ul nostru ar trebui deja reparat, deci trebuie să ieșim Chroot., demontați sistemul de fișiere (IMPORTANT) și reporniți pentru ca modificările să aibă efect. Dacă uităm să demontăm sistemul de fișiere, este posibil ca la repornire să nu se dezinstaleze corect și, prin urmare, unele modificări nu ar intra în vigoare.
# am părăsit chrootexit
# demontați sistemul de fișiere și repornițiumount /mnt/my_linux/dev
umount /mnt/my_linux/sys
umount /mnt/my_linux/proc
umount /mnt/my_linux
reboot

Și asta e tot. Sper să vă bucurați și să vă ajute. Un salut!


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   Leper_Ivan el a spus

    Aș putea folosi acest lucru .. La un moment dat trebuie să-l folosesc.

  2.   mario el a spus

    Ați folosit vreunul dintre voi Chakra Benz? Dacă da, ai putea să-mi spui dacă
    este ușor pentru utilizatorul obișnuit? Folosesc SolydK, care este foarte simplu, dar
    Înțeleg că Chakra este KDE pur și mă interesează.

    1.    Wow el a spus

      Da, chakra este foarte bună și mai mult sau mai puțin ușoară, chestia este că pentru a instala / dezinstala pachete trebuie să o faceți cu consola, deoarece acestea încă lucrează într-un manager de pachete grafic. Încercați-l pentru că merită. Folosește managerul de pachete pacman, moștenit de la Archlinux, dar atenție, nu partajează depozite cu arch și NU este compatibil cu acestea. Dacă doriți să aflați mai multe despre pacman, aruncați o privire la arch wiki https://wiki.archlinux.org/index.php/Pacman_%28Espa%C3%B1ol%29

      1.    izzyvp el a spus

        Oktopi este deja stabil și funcționează destul de bine pentru un utilizator mediu, prin urmare nu aveți nevoie de terminal pentru a utiliza pacman.

  3.   x11tete11x el a spus

    Sper că această postare va fi vizitată de mulți, apoi își rup capul reinstalându-se pentru orice atunci când cu un chroot puteți repara sistemul aproape întotdeauna, chroot vă permite o mulțime de posibilități, inclusiv instalarea Gentoo xD hahaha

  4.   lunar el a spus

    frumos, mulțumesc ... Nu i-am dat niciodată o minge pentru că niște live-cd pentru reparații mi se pare că o ridică în mod implicit, dar acum este clar, mulțumesc din nou.

  5.   Lolo el a spus

    Pentru a-l completa, ar fi bine să explicați cum să montați partiții LVM, partiții criptate și sisteme RAID.

    1.    Wow el a spus

      mmm Nu am mai atins LVM și RAID de mult timp, dar ai putea să mă informezi puțin pentru a finaliza acest lucru ... mulțumesc pentru pont!

      1.    Lolo el a spus

        Ei bine, adevărul este că aș putea folosi minunat.

        Ar fi foarte apreciat.

        1.    Wow el a spus

          aruncați o privire la acest wiki, este destul de mișto http://wiki.bandaancha.st/RAID_y_LVM_en_Linux

  6.   Modem el a spus

    Dacă doar acest subiect ar fi existat câteva săptămâni mai târziu, se dovedește că am avut o problemă cu sistemul meu și am citit și citit și peste tot am găsit chroot și blablabla, dar nu a funcționat pentru mine pe baza acelei recomandări a live-ului, care este la fel ca sistemul dvs. , foarte important deoarece folosesc x64, celălalt lucru este să montez partițiile de sistem, pentru că în cazul meu când aplicam chroot și montam, am lansat o comandă și pur și simplu nu a recunoscut comanda.

    Acest subiect va merge la fișierele mele „compilare de informații”

  7.   fursec el a spus

    Un Arch LiveCD (cu acest instrument) este tot ce este necesar pentru a repara sistemul dvs. atunci când îl spargeți.

    1.    RAW-de bază el a spus

      Exact! .. ..este tot ceea ce este necesar .. chiar și pentru a ajuta pe cineva cu W $ care a decis să nu înceapă ..

      Am mereu alături de mine un pendrive de 1 GB cu Arch live ... și chroot este tot ceea ce este necesar pentru ca sub orice problemă, în 10 minute să ai totul în ordine fără să te alarmezi ..

    2.    izzyvp el a spus

      Trebuie doar să știi cum să o faci.

    3.    Pablo el a spus

      Bună, observați că am o problemă cu centos, îmi trimite panica kernel etc. Și nu am putut să o rezolv, am site-ul și baza de date acolo. Nu știu ce să mai fac.

  8.   jony127 el a spus

    Bună postare, auzisem ceva chroot în treacăt, dar nu știam cu adevărat cum se folosea, bineînțeles că nu avusesem niciodată nevoie de el și de aceea nu citisem ceva anume. Acum, cu postarea dvs. explicată foarte clar, știu cum să o folosesc în cazul în care.

    Mulțumesc mult și apropo, să trăiască Led Zeppelin hehe.

  9.   Kamala el a spus

    mulțumesc, am ieșit în sfârșit din coșmarul de salvare

    de fapt, am urmat toți pașii, cu excepția umount / mnt / my_linux, pentru că mi-a spus că este ocupat și îl fuzionez -km, dar nici măcar asta, și sări ...

    Sper că nu este important ....

    multumesc din nou…
    un mesaj de salut

  10.   Jose Antonio el a spus

    Deși articolul are deja câțiva ani, vreau să îi mulțumesc autorului pentru generozitatea sa în a-l împărtăși, este un articol grozav, deoarece în acest weekend mi-a salvat viața. În mod involuntar am încărcat un server instalând un pachet și la repornire nu s-a încărcat. După trei zile de încercări de rezolvare și de citire a diferitelor articole, am reușit să ajung aici întâmplător și am reușit în cele din urmă să reinstalez grub și să repar serverul.

    Vă mulţumesc foarte mult!

    1.    Wow el a spus

      Mă bucur că te-a ajutat. Mulțumesc pentru comentariu!

  11.   Helio el a spus

    Bună ziua, știu că această postare cu ani în urmă, această mulțumire extraordinară pentru distribuirea ei. Și am avut o îndoială, în cazul meu a deteriorat sistemul și driverele de rețea, așa că am urmat pașii, dar nu îmi permite să descarc pachete, există vreo modalitate de a lega rețeaua live cu terminalul

    1.    Wow el a spus

      Nu prea înțeleg problema dvs. ... Când vă conectați cu LiveCD, nucleul care se încarcă este cel din LiveCD, prin urmare ar trebui să puteți configura perfect o conexiune la internet. Odată ce conexiunea este realizată, încercați să faceți chroot-ul pentru a vedea dacă continuați să-l întrețineți, dacă nu, poate fi necesar să-l configurați din nou, dar nucleul deteriorat nu ar trebui să afecteze sesiunea chroot.
      Dacă nu specificați mai multe, vă pot spune ...

  12.   dacha el a spus

    Excelent Post ... unul dintre puținele articole utile găsite pe Internet.
    Vă mulțumesc foarte mult pentru contribuția.

  13.   zopeck el a spus

    Bună, tutorial excelent! Excelent explicat, pentru noi simpli muritori!

    Am o intrebare:
    Când ați menționat că, în cazul în care trebuie să instalați pachete, să efectuați actualizări de sistem sau alte activități speciale și să solicitați montarea folderelor / dev / proc și / sys, nu mi-a fost clar dacă aceste foldere se află în sistemul Live cu care a pornit echipamentul care trebuie reparat sau dacă sunt montate mai întâi în partiția rădăcină.

    Mulțumesc.

  14.   Orlando el a spus

    MULȚUMESC MULT!!!!