Systemreparation: HowTo chroot

Mange gange, især når vi har rodet, har vi befundet os i den knibe, at vi ikke har adgang til systemet for at reparere det, men løsningen er let: Brug kommandoen chroot fra enhver LiveCD / RepairCD.

Mange steder (fora, blogs ...) nævnes denne kommando, og der gives en "copy / paste" af koden, men min hensigt med dette indlæg er at forklare disse trin lidt for at gøre god brug af dette værktøj med kendskab til årsag.

Indledning

Kommandoen chroot Det er kendt som CHangeROOT, det vil sige en kommando, der giver dig mulighed for at ændre roden til det system, som du arbejder på. Med andre ord: Hvis du er fra en LiveCD, og ​​du vil have alt, hvad du arbejder på konsollen, skal have en effekt på det installerede system, skal du først bruge chroot.

Problemet er, at det ikke er nok at bruge chroot Som sådan skal vi montere bestemte partitioner korrekt.

SÅDAN

Først skal vi starte en terminal, enten fra et andet installeret system (på en anden partition / disk) eller fra en LiveCD. VIGTIGT: arkitekturen på LiveCD skal matche den i systemet, der skal repareres (32 eller 64 bit).
Når vi er i terminalen, starter vi med at identificere vores partitioner:
fdisk -l

  • Med denne kommando viser vi alle vores partitioner / diske. Vi skal identificere, hvilken målpartition, hvor vores system til reparation er installeret, fra nu af kalder vi det ødelagt system.

I dette eksempel vil vi overveje, at vores ødelagte system er i / Dev / sda1 .

Vi fortsætter med at samle systemet. Først opretter vi mappen, hvor vi skal arbejde, og senere monterer vi partitionen, hvor vores ødelagte system er placeret i den mappe
mkdir /mnt/my_linux
mount /dev/sda1 /mnt/my_linux

Hvis du har mappen / home o / var eller enhver anden på en anden partition, skal du montere den / disse som følger:
mount /dev/sda2 /mnt/my_linux/var

  • BEMÆRK: Jeg har taget et eksempel på / dev / sda2-partitionen til mappen / var, lad hver enkelt tilpasse koden til deres egenskaber.

Normalt vil dette være tilstrækkeligt, hvis du simpelthen har brug for at redigere filer manuelt, men hvis vi vil udføre nogle kommandoer, der konfigurerer systemet, er vi nødt til at montere visse specielle systemmapper: / 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

  • Med mulighed -t fortæller vi montere den type "filsystem", vi vil montere. Det er nødvendigt at specificere det på grund af mappernes specielle karakter / proc y / sys.
  • Med mulighed -o vi specificerer mulighederne for montere. Muligheden binde det tjener til at "linke". I UNIX er alle hardwareenheder tilgængelige via mappen / dev, derfor skal vi montere vores strøm / dev i mappen, hvor vores ødelagte system nu er. Da denne mappe allerede er monteret, er det kun nødvendigt at fortælle det montere hvor det oprindeligt er monteret.

Det gøres på denne måde, så chroot har adgang til disse mapper, som om de var det ødelagte system, selvom de skal være fra det aktuelle system (f.eks. LiveCD-sessionen), da de er relateret til systemets tilstand, processer og hardware.

Nu er det tid til at bruge chroot:
chroot /mnt/my_linux/ /bin/bash

  • Kommandoen sendes som argumenter stien til den nye rod «/» (som i vores tilfælde er / mnt / my_linux) og den konsol, du vil bruge (i dette tilfælde har vi valgt den velkendte bash, der findes i / bin / bash). Hvis vi ikke specificerer konsollen, befinder vi os foran en noget arkaisk kommandotolk (den udfyldes ikke, når du trykker på fanen osv.).

Nu kan vi bruge konsollen som om vi havde startet rodsessionen på vores ødelagte system (rediger filer, tjek scripts, installer / afinstallér pakker ...). ADVARSEL! For at de foretagne ændringer skal træde i kraft, skal du afmontere filsystemet efter afslutning chrootSe eksemplet nedenfor.

Mere information https://wiki.archlinux.org/index.php/Change_Root (mere end anbefalet læsning).

Anvendelseseksempel: gendan GRUB2

En af de mest udbredte anvendelser af chroot Det er som et værktøj til at reparere GRUB. Da hvis gruben går i stykker, er det praktisk taget umuligt at starte vores system for at rette det.

BEMÆRK: denne korte vejledning er kun et eksempel, den fungerer på forskellige distributioner afledt af blandt andet Debian, Ubuntu og openSUSE. Alligevel skal du kontrollere dokumentationen til din distribution, da kommandoen i mange ikke findes opdater-grub.
# BEMÆRK: disse kommandoer kører en gang inde i chroot.update-grub
grub-install /dev/sda

  • med opdater-grub Vi opdaterer GRUB2's inputmenu og tilføjer dermed eventuelle manglende input. Senere geninstallerer vi GRUB på vores disk, da den er blevet beskadiget.

I dette tilfælde har jeg taget / Dev / sda ligesom albummet, hvor vi har vores system, skal dette tilpasses din sag.

Vores GRUB skal allerede være repareret, så vi skal afslutte chroot, afmonter filsystemet (VIGTIGT), og genstart for at ændringerne træder i kraft. Hvis vi glemmer at afmontere filsystemet, er det muligt, at genstart af filerne ikke afmonteres korrekt, og derfor vil nogle ændringer ikke træde i kraft.
# vi efterlod chrootexit
# afmonter filsystemet og genstartumount /mnt/my_linux/dev
umount /mnt/my_linux/sys
umount /mnt/my_linux/proc
umount /mnt/my_linux
reboot

Og det er alt. Jeg håber du nyder det, og at det hjælper dig. En hilsen!


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   Leper_Ivan sagde han

    Jeg kan bruge dette .. På et tidspunkt er jeg nødt til at bruge det.

  2.   mario sagde han

    Har nogen af ​​jer brugt Chakra Benz? I så fald kan du fortælle mig, om
    er det let for den almindelige bruger? Jeg bruger SolydK, som er meget enkel, men
    Jeg forstår, at Chakra er ren KDE, og det interesserer mig.

    1.    wow sagde han

      Ja, chakra er meget godt og mere eller mindre let, sagen er, at for at installere / afinstallere pakker skal du gøre det med konsollen, da de stadig arbejder på en grafisk pakkehåndtering. Prøv det, fordi det er det værd. Den bruger pacman-pakkehåndteringen, arvet fra Archlinux, men pas på, den deler ikke arkiver med arch, og den er IKKE kompatibel med dem. Hvis du vil lære mere om Pacman, skal du kigge på arch wiki https://wiki.archlinux.org/index.php/Pacman_%28Espa%C3%B1ol%29

      1.    izzyvp sagde han

        Oktopi er allerede stabil og fungerer ganske godt for en gennemsnitlig bruger, med det behøver du ikke terminalen for at bruge pacman.

  3.   x11tete11x sagde han

    Jeg håber, at dette indlæg vil blive besøgt af mange, så begynder de at geninstallere deres hoveder til noget, når du med en chroot næsten altid kan reparere systemet, chroot giver dig mulighed for mange muligheder, herunder installation af Gentoo xD hahaha

  4.   måneagtig sagde han

    rart, tak ... Jeg gav det aldrig en kugle, fordi noget live-cd til reparation synes for mig, at de hæver det som standard, men nu er det klart, tak igen.

  5.   Lolo sagde han

    For at fuldføre det ville det være godt at forklare, hvordan man monterer LVM-partitioner, krypterede partitioner og RAID-systemer.

    1.    wow sagde han

      mmm Jeg har ikke rørt LVM og RAID i lang tid, men kan du informere mig lidt om at gennemføre dette ... tak for tip!

      1.    Lolo sagde han

        Sandheden er, at jeg kunne bruge godt.

        Det ville blive meget værdsat.

        1.    wow sagde han

          se på denne wiki, det er ret sejt http://wiki.bandaancha.st/RAID_y_LVM_en_Linux

  6.   Modem sagde han

    Hvis kun dette emne havde eksisteret et par uger senere, viser det sig, at jeg havde et problem med mit system, og jeg læste og læste, og overalt fandt jeg chroot og blablabla, men det fungerede ikke for mig baseret på den anbefaling fra live, der er den samme som dit system , meget vigtigt, fordi jeg bruger x64, den anden er at montere systempartitionerne, for i mit tilfælde da jeg anvendte chroot og monterede, kastede jeg en kommando, og den genkendte bare ikke kommandoen.

    Dette emne vil gå til mine "info kompilering" filer

  7.   cookie sagde han

    En Arch LiveCD (med dette værktøj) er alt, hvad der er nødvendigt for at rette dit system, når du bryder det.

    1.    RAW-Basic sagde han

      Præcis! .. .. det er alt, hvad der er nødvendigt .. selv for at hjælpe nogen med deres W $, der besluttede ikke at starte ..

      Jeg har altid med mig en 1GB pendrive med Arch live ... og chroot er alt, hvad der er nødvendigt, så under 10 minutter har du alt i orden uden at være foruroliget .. 😉

    2.    izzyvp sagde han

      Du skal bare vide, hvordan du gør det.

    3.    Pablo sagde han

      Hej, bemærk at jeg har et problem med centos, det sender mig kernepanik osv. Og jeg har ikke været i stand til at løse det, jeg har min hjemmeside og database der. Jeg ved ikke, hvad jeg ellers skal gøre.

  8.   jony127 sagde han

    Godt indlæg, jeg havde hørt noget chroot i forbifarten, men jeg vidste ikke rigtig, hvordan jeg skulle bruge det, selvfølgelig havde jeg aldrig haft brug for det, og det var derfor, jeg ikke havde læst noget specielt. Nu med dit indlæg forklaret meget tydeligt, ved jeg hvordan man bruger det i tilfælde.

    Mange tak og forresten, leve Led Zeppelin hehe.

  9.   kamala sagde han

    tak, jeg kom endelig ud af grub rednings mareridt

    faktisk fulgte jeg alle trin undtagen umount / mnt / my_linux, fordi det fortalte mig, at det var travlt, og jeg fikser-km, men ikke engang det, og hopper ...

    Jeg håber, det ikke er vigtigt….

    tak igen…
    en hilsen

  10.   Jose Antonio sagde han

    Selvom artiklen allerede er et par år gammel, vil jeg takke forfatteren for hans generøsitet ved at dele den, det er en god artikel, fordi denne weekend reddede det mit liv. Ufrivilligt indlæste jeg en server, der installerede en pakke, og ved genstart blev den ikke indlæst. Efter tre dages forsøg på at ordne det og læse forskellige artikler lykkedes det mig at komme her tilfældigt og endelig kunne geninstallere grub og rette serveren.

    Mange tak!

    1.    wow sagde han

      Jeg er glad for, at det hjalp dig. Tak for kommentaren!

  11.   Helio sagde han

    Hej, jeg ved, at dette indlæg for mange år siden, denne store tak for at dele det. Og jeg var i tvivl, i mit tilfælde beskadigede det systemet og også netværksdriverne, så jeg fulgte trinene, men det tillader mig ikke at downloade pakker, er der nogen måde at forbinde live-netværket med terminalen

    1.    wow sagde han

      Jeg forstår ikke rigtig dit problem ... Når du logger ind med LiveCD, er kernen, der indlæses, den fra LiveCD, derfor skal du være i stand til at konfigurere en internetforbindelse perfekt. Når forbindelsen er oprettet, skal du prøve at gøre chroot for at se, om du fortsætter med at vedligeholde den, hvis ikke, skal du muligvis konfigurere den igen, men den beskadigede kerne bør ikke påvirke chroot-sessionen.
      Hvis du ikke angiver mere, kan jeg fortælle dig ...

  12.   dacha sagde han

    Fremragende indlæg ... en af ​​de få nyttige artikler, der findes på Internettet.
    Mange tak for bidraget.

  13.   zopeck sagde han

    Hej, fremragende tutorial! Fremragende forklaret, for os bare dødelige!

    Jeg har et spørgsmål:
    Når du nævnte, at i tilfælde af behov for at installere pakker, udføre systemopdateringer eller anden særlig aktivitet og kræve montering af mapperne / dev / proc og / sys, var det ikke klart for mig, om disse mapper er i det Live-system, som vi startede det udstyr, der skal repareres, eller hvis det er i rodskillevæggen monteret først.

    Tak.

  14.   Orlando sagde han

    MANGE TAK!!!!