Systemreparation: HowTo chroot

Många gånger, speciellt när vi rör oss, har vi haft problem med att inte få åtkomst till systemet för att reparera det, men lösningen är enkel: använd kommandot chroot från någon LiveCD / RepairCD.

På många ställen (forum, bloggar ...) nämns detta kommando och en "copy / paste" av koden ges, men min avsikt med det här inlägget är att förklara dessa steg lite, för att utnyttja detta bra verktyg, med kunskap om orsaken.

Inledning

Kommandot chroot Det är känt som CHangeROOT, det vill säga ett kommando som låter dig ändra roten till det system du arbetar med. Med andra ord: om du är från en LiveCD och vill att allt du arbetar på konsolen ska ha en effekt på det installerade systemet måste du först använda chroot.

Problemet är att det inte räcker att använda chroot Som sådan, innan vi måste montera vissa partitioner ordentligt.

HUR

Först måste vi starta en terminal, antingen från ett annat installerat system (på en annan partition / disk) eller från en LiveCD. VIKTIGT: arkitekturen för LiveCD måste matcha den för systemet som ska repareras (32 eller 64 bitar).
När vi väl är i terminalen börjar vi med att identifiera våra partitioner:
fdisk -l

  • Med detta kommando kommer vi att lista alla våra partitioner / diskar. Vi måste identifiera vilken som är målpartitionen, där vårt system för reparation är installerat, från och med nu kommer vi att kalla det trasigt system.

För detta exempel kommer vi att överväga att vårt trasiga system är i / Dev / sda1 .

Vi fortsätter att montera systemet. Först skapar vi mappen där vi ska arbeta och senare monterar vi partitionen där vårt trasiga system finns i den mappen
mkdir /mnt/my_linux
mount /dev/sda1 /mnt/my_linux

Om du har mappen / Home o / var eller någon annan på en annan partition, bör du montera den på följande sätt:
mount /dev/sda2 /mnt/my_linux/var

  • OBS: Jag har tagit / dev / sda2-partitionen för mappen / var som ett exempel, låt var och en justera koden efter deras egenskaper.

Normalt räcker detta om du helt enkelt behöver redigera filer för hand, men om vi vill utföra några kommandon som konfigurerar systemet måste vi montera vissa speciella systemmappar: / 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 alternativ -t vi berättar montera vilken typ av "filsystem" vi vill montera. Det är nödvändigt att specificera det på grund av mapparnas speciella karaktär / proc y / sys.
  • Med alternativ -o vi anger alternativen för montera. Alternativet binda det tjänar till att "länka". I UNIX är alla hårdvaruenheter tillgängliga via mappen / dev, det är därför vi måste montera vår ström / dev i mappen där vårt trasiga system är nu. Eftersom den här mappen redan är monterad är det bara nödvändigt att berätta montera där den ursprungligen monterades.

Det görs så att chroot ha åtkomst till dessa mappar som om de vore det trasiga systemet, även om de måste vara från det aktuella systemet (t.ex. LiveCD-sessionen) eftersom de är relaterade till systemets tillstånd, processer och hårdvara.

Nu är det dags att använda chroot:
chroot /mnt/my_linux/ /bin/bash

  • Kommandot skickas som argument sökvägen till den nya roten «/» (vilket i vårt fall är / mnt / my_linux) och konsolen du vill använda (i det här fallet har vi valt den välkända bash, som finns i / bin / bash). Om vi ​​inte specificerar konsolen kommer vi att befinna oss inför en något arkaisk kommandotolk (den fylls inte när du trycker på fliken, etc.).

Nu kan vi använda konsolen som om vi hade startat rotsessionen på vårt trasiga system (redigera filer, kontrollera skript, installera / avinstallera paket ...). VARNING! För att ändringarna ska kunna träda i kraft måste du avmontera filsystemet efter avslutat chrootTitta på exemplet nedan.

Mer information https://wiki.archlinux.org/index.php/Change_Root (mer än rekommenderad läsning).

Användningsexempel: återställ GRUB2

En av de mest utbredda användningarna av chroot Det är som ett verktyg för att reparera GRUB. Eftersom grubben går sönder är det praktiskt taget omöjligt att starta vårt system för att fixa det.

OBS: den här lilla handboken är bara ett exempel, den fungerar på olika distributioner härledda från bland annat Debian, Ubuntu och openSUSE. Ändå, kontrollera dokumentationen för din distribution, eftersom kommandot i många fall inte finns update-grub.
# OBS: dessa kommandon körs en gång i chroot.update-grub
grub-install /dev/sda

  • med update-grub Vi uppdaterar GRUB2s inmatningsmeny och lägger till eventuella ingångar som saknas. Senare installerar vi om GRUB på vår disk eftersom den har skadats.

I det här fallet har jag tagit / Dev / sda precis som albumet där vi har vårt system, måste detta anpassas till ditt fall.

Vår GRUB bör redan repareras, så vi måste gå ut chroot, demontera filsystemet (VIKTIGT) och starta om för att ändringarna ska träda i kraft. Om vi ​​glömmer att avmontera filsystemet är det möjligt att när de startas om kommer de inte att avmonteras korrekt och därför kommer vissa ändringar inte att träda i kraft.
# vi lämnade chrootexit
# avmontera filsystemet och starta omumount /mnt/my_linux/dev
umount /mnt/my_linux/sys
umount /mnt/my_linux/proc
umount /mnt/my_linux
reboot

Och det är allt. Jag hoppas att du tycker om det och att det hjälper dig. En hälsning!


Innehållet i artikeln följer våra principer om redaktionell etik. Klicka på för att rapportera ett fel här.

24 kommentarer, lämna din

Lämna din kommentar

Din e-postadress kommer inte att publiceras.

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   Leper_Ivan sade

    Jag kan använda det här .. Vid något tillfälle måste jag använda det.

  2.   mario sade

    Har någon av er använt Chakra Benz? Om så är fallet, kan du berätta för mig om
    är det lätt för den vanliga användaren? Jag använder SolydK vilket är väldigt enkelt men
    Jag förstår att Chakra är rent KDE och det intresserar mig.

    1.    Wow sade

      Ja, chakra är mycket bra och mer eller mindre lätt, saken är att för att installera / avinstallera paket måste du göra det med konsolen, eftersom de fortfarande arbetar i en grafisk pakethanterare. Prova eftersom det är värt det. Den använder pacman-pakethanteraren, ärvd från Archlinux, men se upp, den delar inte arkiv med arch och den är INTE kompatibel med dem. Om du vill lära dig mer om Pacman, ta en titt på arch wiki https://wiki.archlinux.org/index.php/Pacman_%28Espa%C3%B1ol%29

      1.    izzyvp sade

        Oktopi är redan stabilt och fungerar ganska bra för en genomsnittlig användare, med det behöver du inte terminalen för att använda pacman.

  3.   x11tete11x sade

    Jag hoppas att det här inlägget kommer att besökas av många, sedan börjar de installera om huvudet för allt när du med en chroot kan reparera systemet nästan alltid, chroot ger dig många möjligheter, inklusive installation av Gentoo xD hahaha

  4.   månig sade

    trevligt, tack ... Jag gav det aldrig en boll eftersom någon live-cd för reparation verkar för mig att de höjer den som standard, men nu är det klart, tack igen.

  5.   Lolo sade

    För att slutföra det skulle det vara bra att förklara hur man monterar LVM-partitioner, krypterade partitioner och RAID-system.

    1.    Wow sade

      mmm Jag har inte rört LVM och RAID på länge, men kan du informera mig lite för att slutföra detta ... tack för tipset!

      1.    Lolo sade

        Sanningen är att jag kunde använda bra.

        Det skulle vara mycket uppskattat.

        1.    Wow sade

          ta en titt på denna wiki, den är ganska cool http://wiki.bandaancha.st/RAID_y_LVM_en_Linux

  6.   Modem sade

    Om bara det här ämnet hade funnits några veckor senare visar det sig att jag hade problem med mitt system och jag läste och läste och överallt hittade jag chroot och blablabla men det fungerade inte för mig baserat på den rekommendationen från live som är samma som ditt system, mycket viktigt för att jag använder x64, det andra är att montera systempartitionerna, för i mitt fall när jag applicerade chroot och monterade kastade jag ett kommando och det kände bara inte igen kommandot.

    Detta ämne går till mina "informationskompilering" -filer

  7.   kaka sade

    En Arch LiveCD (med det här verktyget) är allt som behövs för att fixa ditt system när du bryter det.

    1.    RAW-Basic sade

      Exakt! .. .. det är allt som behövs .. även för att hjälpa någon med deras W $ som bestämde sig för att inte starta ..

      Jag har alltid med mig en 1GB pendrive med Arch live ... och chroot är allt som behövs så att du under några problem har allt i ordning utan att vara orolig .. 😉

    2.    izzyvp sade

      Du måste bara veta hur man gör det.

    3.    pablo sade

      Hej, lägg märke till att jag har problem med centos, det skickar mig kärnpanik etc. Och jag har inte lyckats lösa det, jag har min webbplats och databas där, jag vet inte vad jag ska göra mer.

  8.   jony127 sade

    Bra inlägg, jag hade hört lite chroot i förbigående men jag visste inte riktigt hur det användes, naturligtvis hade jag aldrig behövt det och det var därför jag inte hade läst något särskilt. Nu när ditt inlägg förklaras mycket tydligt vet jag hur man använder det i fall.

    Tack så mycket och förresten, leva Led Zeppelin hehe.

  9.   kamala sade

    tack, jag kom äntligen ur grub räddnings mardröm

    faktiskt följde jag alla steg förutom umount / mnt / my_linux, för det berättade för mig att det var upptaget, och jag fixerade -km, men inte ens det, och studsade ...

    Jag hoppas att det inte är viktigt ...

    tack igen…
    en hälsning

  10.   Jose Antonio sade

    Även om artikeln redan är ett par år gammal vill jag tacka författaren för hans generositet i att dela den. Det är en fantastisk artikel eftersom den i helgen räddade mitt liv. Ofrivilligt laddade jag en server som installerade ett paket och omstarten laddades inte. Efter tre dagars försök att fixa det och läsa olika artiklar lyckades jag komma hit av en slump och kunde äntligen installera om grub och fixa servern.

    Tack så mycket!

    1.    Wow sade

      Jag är glad att det hjälpte dig. Tack för kommentaren!

  11.   Helio sade

    Hej, hur jag vet att detta inlägg har varit för flera år sedan, detta stora tack för att du delar det. Och jag tvivlade, i mitt fall skadade systemet och även nätverksdrivrutinerna, så jag följde stegen men det tillåter mig inte att ladda ner paket, finns det något sätt att länka live-nätverket med terminalen

    1.    Wow sade

      Jag förstår inte riktigt ditt problem ... När du loggar in med LiveCD är kärnan som laddas den från LiveCD, därför bör du kunna konfigurera en internetanslutning perfekt. När anslutningen är klar, försök att göra chroot för att se om du fortsätter att behålla den, om inte, kanske du måste konfigurera den igen, men den skadade kärnan bör inte påverka chroot-sessionen.
      Om du inte anger mer kan jag berätta ...

  12.   Dacha sade

    Utmärkt inlägg ... en av få användbara artiklar som finns på Internet.
    Tack så mycket för bidraget.

  13.   zopeck sade

    Hej, utmärkt handledning! Mycket förklarat, för oss bara dödliga!

    Jag har en fråga:
    När du nämnde att om du skulle behöva installera paket, utföra systemuppdateringar eller annan speciell aktivitet och kräva montering av mapparna / dev / proc och / sys, var det inte klart för mig om dessa mappar finns i Live-systemet som vi startade utrustningen som skulle repareras, eller om den är i rotpartitionen monterad först.

    Tack.

  14.   Orlando sade

    TACK SÅ MYCKET!!!!