Reparació de el sistema: com es fa chroot

Moltes vegades, sobretot quan es camina trastejant, ens hem vist en el compromís de no poder accedir a sistema per reparar-lo, però la solució és fàcil: utilitzar la comanda chroot des d'un LiveCD / RepairCD qualsevol.

En molts llocs (fòrums, blogs ...) s'esmenta aquesta comanda i es dona un «copy / paste» de el codi, però la meva intenció amb aquest post és explicar una mica aquests passos, per poder fer un bon ús d'aquesta eina, amb coneixement de causa.

Introducció

la comanda chroot és conegut com CHangeROOT, és a dir, un comando que et permet canviar l'arrel de sistema sobre la qual estàs treballant. En una altra paraules: si estàs des d'un CD autònom i vols que tot el que estiguis treballant sobre la consola tingui efecte en el sistema instal·lat, prèviament has de fer ús de chroot.

El problema està en què no n'hi ha prou amb usar chroot tal qual, abans hem de muntar adequadament determinades particions.

COM

Primer necessitem iniciar alguna terminal, ja sigui des d'un altre sistema instal·lat (en una altra partició / disc) o des d'un CD autònom. IMPORTANT: l'arquitectura de el CD autònom ha de coincidir amb la de el sistema a reparar (32 o 64 bits).
Un cop estiguem a la terminal començarem identificant les nostres particions:
fdisk -l

  • Amb aquesta comanda llistarem totes les nostres particions / discos. Hem d'identificar quina és la partició objectiu, on està instal·lat el nostre sistema a reparar, a partir d'ara l'anomenarem sistema amb errors.

Per a aquest exemple considerarem que el nostre sistema amb errors està en / Dev / sda1 .

Passem a muntar el sistema. Primer crearem la carpeta on treballarem i posteriorment vam muntar la partició on es troba el nostre sistema amb errors en aquesta carpeta
mkdir /mnt/my_linux
mount /dev/sda1 /mnt/my_linux

Si teniu la carpeta / home o / var o qualsevol altra en una altra partició, hauríeu de muntar-la / s de la següent manera:
mount /dev/sda2 /mnt/my_linux/var

  • NOTA: he pres com a exemple la partició / dev / sda2 per a la carpeta / var, que cadascun ajust el codi a les seves característiques.

Normalment amb això n'hi hauria prou si simplement es necessita editar arxius a mà, però si volem executar algunes ordres que configuren el sistema, ens cal muntar determinades carpetes especials de sistema: / 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

  • Amb l'opció -t li diem a muntar el tipus de «filesystem» que volem muntar. Cal especificar-ho per la naturalesa especial de les carpetes / proc y / sys.
  • Amb l'opció -o especifiquem les opcions de muntar. l'opció s'uneixen serveix per «linkear». En UNIX tots els dispositius maquinari són accessibles a través de la carpeta / dev, Per això hem muntar el nostre actual / dev a la carpeta on ara es troba el nostre sistema amb errors. A l'ia estar muntada aquesta carpeta, només cal dir-li a muntar on està originalment muntada.

Es fa d'aquesta manera perquè chroot tingui accés a aquestes carpetes com si es tractessin de sistema trencat, tot i que han de ser de el sistema actual (ex: la sessió de el CD autònom) ja que guarden relació amb l'estat de el sistema, els processos i el maquinari.

Ara arriba el moment de poder fer servir chroot:
chroot /mnt/my_linux/ /bin/bash

  • A la comanda se li passen com a arguments la ruta de la nova arrel «/» (que en el nostre cas és / Mnt / my_linux) I la consola que es vol utilitzar (en aquest cas hem optat per l'arxiconeguda bash, trobada en / Bin / bash). Si no especifiquem la consola ens trobarem davant d'un intèrpret d'ordres una mica arcaic (no omple a l'prémer el tabulador, etc.).

Ara ja podem fer servir la consola com si tinguéssim la sessió de root iniciada el nostre sistema amb errors (editar arxius, revisar scripts, instal·lar / desinstal·lar paquets ...). ATENCIÓ !, perquè els canvis realitzats tinguin efecte, cal desmuntar el sistema de fitxers després de sortir de chroot, Mireu l'exemple de sota.

Més informació a https://wiki.archlinux.org/index.php/Change_Root (Lectura més que recomanada).

Exemple d'ús: restauració de Grub2

Un dels usos més estesos de chroot és com a eina per poder reparar el GRUB. Ja que si se'ns trenca el grub, és pràcticament impossible bootear nostre sistema per a poder arreglar-ho.

AVÍS: aquest petit tutorial és un mer exemple, funciona en diverses distribucions derivades de Debian, Ubuntu i openSUSE entre d'altres. Tot i així revisin la documentació pròpia de la vostra distribució, ja que en moltes no es troba la comanda update-grub.
# NOTA: aquestes comandes s'executen un cop dins chroot.update-grub
grub-install /dev/sda

  • Amb update-grub actualitzem el menú d'entrada de Grub2, afegint així les possibles entrades que faltin. Posteriorment reinstalamos GRUB al nostre disc, ja que ha estat danyat.

En aquest cas he pres / Dev / sda com el disc en on tenim el nostre sistema, això heu adaptar al vostre cas.

El nostre GRUB ja hauria d'estar reparat, així que hem de sortir de chroot, Desmuntar el sistema de fitxers (IMPORTANT) i reiniciar perquè els canvis tinguin efecte. Si se'ns oblida desmuntar el sistema de fitxers, és possible que a l'reiniciar aquests no es desmuntin correctament i per tant alguns canvis no tindrien efecte.
# Sortim de chrootexit
# Desmuntem el sistema de fitxers i reiniciemumount /mnt/my_linux/dev
umount /mnt/my_linux/sys
umount /mnt/my_linux/proc
umount /mnt/my_linux
reboot

I això és tot. Espero que ho gaudeixin i que els serveixi d'utilitat. Una salutació!


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   Leproso_Ivan va dir

    Em vindrà bé això .. En algun moment he d'usar-lo.

  2.   Mario va dir

    Han fet servir algun de vostès Chakra Benz? Si és així, podrien dir-me si
    és fàcil per a l'usuari comú? Jo ús SolydK que és ben senzill però
    tinc entès que Chakra és pur KDE i m'interessa.

    1.    woqer va dir

      Sí, chakra està molt bé i més o menys facilite, la cosa és que per instal·lar / desinstal·lar paquets has de fer-ho amb la consola, ja que encara segueixen treballant en un administrador de paquets gràfics. Prova-ho perquè val la pena. Utilitza l'administrador de paquets pacman, heretat de Archlinux, però compte !, no comparteix repositoris amb fitxers i NO és compatible amb ells. Si vols aprendre més de Pacman fes una ullada a la wiki de arch https://wiki.archlinux.org/index.php/Pacman_%28Espa%C3%B1ol%29

      1.    izzyvp va dir

        Oktopi ja és estable i funciona força bé per a un usuari mitjà, amb aquest no necessites la terminal per utilitzar Pacman.

  3.   x11tete11x va dir

    espero que aquest post el visitin molts, després s'arrenquen el cap reinstal·lant per qualsevol cosa quan amb un chroot podis reparar el sistema gairebé sempre, el chroot et habilita un munt de possibilitats, entre elles instal·lar Gentoo xD jajja

  4.   alunat va dir

    valent, gràcies ... mai li vaig donar bola perquè algunes live-cd per a reparacion em sembla que l'aixequen per defecte, però ara aquesta clarismo, gràcies una altra vegada.

  5.   Lolo va dir

    Per completar vindria bé explicar com muntar particions LVM, particions encriptades i sistemes RAID.

    1.    woqer va dir

      mmm fa temps que no toco LVM i RAID, però podria informar-me una mica per completar això ... gràcies pel consell!

      1.    Lolo va dir

        Doncs la veritat és que em vindria genial.

        Seria molt d'agrair.

        1.    woqer va dir

          fes una ullada a aquesta wiki, està força bé http://wiki.bandaancha.st/RAID_y_LVM_en_Linux

  6.   modem va dir

    Si tan sols hagués hagués existit aquest topic unes setmanes a després, resulta que vaig tenir un problema amb el meu sistema i llegia i llegia ia tot arreu trobava chroot i blablabla però a mi no em funcionava partint aquesta recomanació de l'live que sigui igual que el teu sistema , molt important pq ús x64, allò altre de muntar les particions de sistema, perquè en el meu cas quan estava aplicant chroot i muntant tirava una ordre i simplement no em reconeixia la comanda.

    Aquest topic s'ira als meus arxius de «recopilació de info»

  7.   galeta va dir

    Un LiveCD d'Arch (amb aquesta eina) és tot el que es necessita per arreglar el teu sistema quan ho trenques.

    1.    RAW-Basic va dir

      Exacte! .. ..és tot el necesario..incluso per ajudar a algú amb el seu W $ que va decidir no arrencar ..

      Sempre tinc amb mi un pendrive de 1gb amb la live d'Arch..y chroot és tot el necessari perquè sota qualsevol problema, en 10 min tens tot en ordre sense alarmar .. 😉

    2.    izzyvp va dir

      Només cal saber com fer-ho.

    3.    pablo va dir

      Hola, fijate que tinc un problema amb centos, m'envia nucli panic etc. I no he pogut solucionar-ho, tinc la meva web i base de dades alli., No es que més fer.

  8.   jony127 va dir

    Bon post, havia escoltat de passada una mica de chroot però no sabia molt bé com es feia servir, clar que mai m'havia fet falta i per això no havia llegit alguna cosa en concret. Ara amb el teu post explicat molt clarament es com es fa servir per si es dóna el cas.

    Moltes gràcies i per cert, visca Led Zeppelin jeje.

  9.   Kamala va dir

    gràcies, finalment va sortir del malson grub rescue

    de fet segui tots els passos excepte umount / mnt / my_linux, perquè em deia que estava ocupat, i ho fuser -Km, però ni això, i rebotee ...

    espero no sigui important ....

    de nou gràcies ...
    una salutació

  10.   Jose Antonio va dir

    Encara que l'article ja té un parell d'anys vull agrair a l'autor la seva generositat a l'compartir és gran article perquè aquest cap de setmana em llevat la vida. Involuntàriament em carregui un servidor instal·lant un paquet i a l'reiniciar no carregava. Després de tres dies intentant solucionar-ho i llegint diferents articles, vaig aconseguir arribar per casualitat aqui i vaig poder finalment reinstal·lar grub i arreglar el servidor.

    Moltes gràcies !!!

    1.    woqer va dir

      M'alegro que t'hagi ajudat. Gràcies pel comentari!

  11.   heli va dir

    Hola que tal ja se que fa anys d'aquest post, aquesta genial gràcies per compartir-lo. I tenia un dubte, en el meu cas danyi el sistema i també els drivers de xarxa, així que vaig seguir els passos però no em permet descarregar paquets, hi ha alguna manera d'enllaçar la xarxa de l'live amb la terminal

    1.    woqer va dir

      No entenc molt bé el teu problema ... Quan inicies sessió amb el CD autònom, el nucli que es carrega és el de el CD autònom, per tant hauries de poder configurar una connexió a internet perfectament. Un cop aconseguida la connexió, tracta de fer el chroot a veure si la segueixes mantenint, si no, és possible que hagis de configurar-la de nou, però el nucli danyat no hauria d'afectar a la sessió de chroot.
      Si no especifiques més poc et puc dir ...

  12.   DACH va dir

    Excel·lent Post ... dels pocs articles útils que es troben a Internet.
    Moltes gràcies per l'aportació.

  13.   zopeck va dir

    Hola, excel·lent tutorial! Magníficament explicat, per a nosaltres els simples mortals!

    Tinc una pregunta:
    Quan esmentes que en cas de necessitar instal·lar paquets, realitzar actualitzacions de sistema o una altra activitat especial, i es requereixi muntar les carpetes / dev / proc i / sys, no em va quedar clar si aquestes carpetes es troben en el sistema Live amb el que vam iniciar l'equip a reparar, o si són a la partició arrel muntada primerament.

    Mil gràcies.

  14.   Orlando va dir

    MOLTES GRÀCIES !!!!