Riparazione del sistema: HowTo chroot

Molte volte, soprattutto quando si scherza, ci siamo trovati in difficoltà di non poter accedere al sistema per ripararlo, ma la soluzione è semplice: usa il comando chroot da qualsiasi LiveCD / RepairCD.

In molti luoghi (forum, blog ...) viene menzionato questo comando e viene fornito un "copia / incolla" del codice, ma la mia intenzione con questo post è di spiegare un po 'questi passaggi, al fine di fare un buon uso di questo strumento, con conoscenza di causa.

Introduzione

Il comando chroot È noto come CHangeROOT, cioè un comando che ti permette di cambiare la radice del sistema su cui stai lavorando. In altre parole: se provieni da un LiveCD e vuoi che tutto ciò su cui stai lavorando sulla console abbia effetto sul sistema installato, devi prima fare uso di chroot.

Il problema è che non basta usare chroot Pertanto, dobbiamo prima montare correttamente alcune partizioni.

HOW TO

Per prima cosa dobbiamo avviare un terminale, da un altro sistema installato (su un'altra partizione / disco) o da un LiveCD. IMPORTANTE: l'architettura del LiveCD deve corrispondere a quella del sistema da riparare (32 o 64 bit).
Una volta entrati nel terminale inizieremo identificando le nostre partizioni:
fdisk -l

  • Con questo comando elencheremo tutte le nostre partizioni / dischi. Dobbiamo identificare qual è la partizione di destinazione, dove è installato il nostro sistema da riparare, d'ora in poi lo chiameremo sistema rotto.

Per questo esempio considereremo che il nostro sistema guasto è in / Dev / sda1 .

Continuiamo a montare il sistema. Per prima cosa creeremo la cartella in cui lavoreremo e successivamente monteremo la partizione in cui si trova il nostro sistema danneggiato in quella cartella
mkdir /mnt/my_linux
mount /dev/sda1 /mnt/my_linux

Se hai la cartella / Home o / var o qualsiasi altro in un'altra partizione, dovresti montarlo / i come segue:
mount /dev/sda2 /mnt/my_linux/var

  • NOTA: Ho preso come esempio la partizione / dev / sda2 per la cartella / var, lascia che ognuno modifichi il codice alle proprie caratteristiche.

Normalmente questo sarebbe sufficiente se hai semplicemente bisogno di modificare i file a mano, ma se vogliamo eseguire alcuni comandi che configurano il sistema, dobbiamo montare alcune cartelle di sistema speciali: / 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

  • Con opzione -t diciamo Mount il tipo di "filesystem" che vogliamo montare. È necessario specificarlo a causa della natura speciale delle cartelle / proc y / sys.
  • Con opzione -o specifichiamo le opzioni di Mount. L'opzione legare serve a "collegare". In UNIX tutti i dispositivi hardware sono accessibili tramite la cartella / dev, ecco perché dobbiamo montare la nostra corrente / dev nella cartella in cui si trova il nostro sistema danneggiato. Poiché questa cartella è già montata, è necessario solo dirlo Mount dove è originariamente montato.

È fatto in questo modo in modo che chroot avere accesso a queste cartelle come se fossero il sistema danneggiato, anche se devono provenire dal sistema corrente (es: la sessione del LiveCD) poiché sono correlate allo stato del sistema, dei processi e dell'hardware.

Ora è il momento di usare chroot:
chroot /mnt/my_linux/ /bin/bash

  • Il comando viene passato come argomenti il ​​percorso della nuova radice «/» (che nel nostro caso è / mnt / my_linux) e la console che vuoi usare (in questo caso abbiamo optato per il noto bash, che si trova in / bin / bash). Se non specifichiamo la console, ci troveremo di fronte a un interprete di comandi un po 'arcaico (non si riempie premendo il tab, ecc.).

Ora possiamo usare la console come se avessimo avviato la sessione di root sul nostro sistema danneggiato (modifica file, verifica script, installa / disinstalla pacchetti ...). ATTENZIONE: affinché le modifiche apportate abbiano effetto, è necessario smontare il filesystem dopo essere usciti chrootGuarda l'esempio qui sotto.

Maggiori informazioni https://wiki.archlinux.org/index.php/Change_Root (lettura più che consigliata).

Esempio di utilizzo: ripristinare GRUB2

Uno degli usi più diffusi di chroot È uno strumento per riparare GRUB. Poiché se il grub si rompe, è praticamente impossibile avviare il nostro sistema per risolverlo.

AVVISO: questo piccolo tutorial è un semplice esempio, funziona su varie distribuzioni derivate da Debian, Ubuntu e openSUSE, tra le altre. Anche così, controlla la documentazione della tua distribuzione, poiché in molti il ​​comando non viene trovato aggiornamento-grub.
# NOTA: questi comandi vengono eseguiti una volta all'interno di chroot.update-grub
grub-install /dev/sda

  • Con update-grub Aggiorniamo il menu di input di GRUB2, aggiungendo così eventuali input mancanti. Successivamente reinstalliamo GRUB sul nostro disco, poiché è stato danneggiato.

In questo caso l'ho scattata / dev / sda come il disco in cui abbiamo il nostro sistema, questo deve essere adattato al tuo caso.

Il nostro GRUB dovrebbe già essere riparato, quindi dobbiamo uscire chroot, smonta il filesystem (IMPORTANTE) e riavvia per rendere effettive le modifiche. Se ci dimentichiamo di smontare il filesystem, è possibile che il riavvio dei file non venga smontato correttamente e quindi alcune modifiche non avranno effetto.
# abbiamo lasciato chrootexit
# smonta il filesystem e riavviaumount /mnt/my_linux/dev
umount /mnt/my_linux/sys
umount /mnt/my_linux/proc
umount /mnt/my_linux
reboot

E questo è tutto. Spero che ti piaccia e che ti aiuti. Un saluto!


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   Leper_Ivan suddetto

    Potrei usare questo .. Ad un certo punto devo usarlo.

  2.   mario suddetto

    Qualcuno di voi ha usato Chakra Benz? Se è così, potresti dirmi se
    è facile per l'utente comune? Uso SolydK che è molto semplice ma
    Capisco che Chakra è puro KDE e mi interessa.

    1.    più bello suddetto

      Sì, chakra è molto buono e più o meno facile, il fatto è che per installare / disinstallare i pacchetti devi farlo con la console, dato che stanno ancora lavorando su un gestore di pacchetti grafico. Provalo perché ne vale la pena. Utilizza il gestore di pacchetti pacman, ereditato da Archlinux, ma attenzione, non condivide i repository con arch e NON è compatibile con essi. Se vuoi saperne di più su pacman, dai un'occhiata al wiki di arch https://wiki.archlinux.org/index.php/Pacman_%28Espa%C3%B1ol%29

      1.    izzyvp suddetto

        Oktopi è già stabile e funziona abbastanza bene per un utente medio, quindi non è necessario il terminale per usare pacman.

  3.   x11tete11x suddetto

    Spero che questo post venga visitato da molti, poi si strappano la testa reinstallando per qualsiasi cosa quando con un chroot puoi riparare il sistema quasi sempre, il chroot ti offre molte possibilità, inclusa l'installazione di Gentoo xD hahaha

  4.   lunare suddetto

    bello, grazie ... non gli ho mai dato una palla perché dei cd live per la riparazione mi sembra che lo sollevano di default, ma ora è chiaro, grazie ancora.

  5.   Lolo suddetto

    Per completarlo, sarebbe bene spiegare come montare partizioni LVM, partizioni crittografate e sistemi RAID.

    1.    più bello suddetto

      mmm Non ho toccato LVM e RAID da molto tempo, ma potresti informarmi un po 'per completare questo ... grazie per il suggerimento!

      1.    Lolo suddetto

        Beh, la verità è che potrei usare alla grande.

        Sarebbe molto apprezzato.

        1.    più bello suddetto

          dai un'occhiata a questo wiki, è piuttosto interessante http://wiki.bandaancha.st/RAID_y_LVM_en_Linux

  6.   Modem suddetto

    Se solo questo argomento fosse esistito poche settimane dopo, si scopre che ho avuto un problema con il mio sistema e ho letto e letto e ovunque ho trovato chroot e blablabla ma non ha funzionato per me in base a quella raccomandazione del live che è la stessa del tuo sistema , molto importante perché uso x64, l'altro è montare le partizioni di sistema, perché nel mio caso quando stavo applicando chroot e montando, stavo lanciando un comando e semplicemente non riconosceva il comando.

    Questo argomento andrà ai miei file "compilation of info"

  7.   biscotto suddetto

    Un Arch LiveCD (con questo strumento) è tutto ciò che serve per riparare il tuo sistema quando lo rompi.

    1.    RAW-Base suddetto

      Esatto! .. ..è tutto quello che serve .. anche per aiutare qualcuno con i propri W $ che ha deciso di non iniziare ..

      Ho sempre con me una pendrive da 1gb con Arch live ... e il chroot è tutto ciò che serve affinché sotto qualsiasi problema, in 10 min hai tutto in ordine senza allarmarti .. 😉

    2.    izzyvp suddetto

      Devi solo sapere come farlo.

    3.    pablo suddetto

      Ciao, nota che ho un problema con i centos, mi manda kernel panic ecc. E non sono stato in grado di risolverlo, ho il mio sito Web e il mio database lì, non so cos'altro fare.

  8.   jony127 suddetto

    Buon post, avevo sentito di sfuggita qualche chroot ma non sapevo davvero come fosse usato, ovviamente non ne avevo mai avuto bisogno ed è per questo che non avevo letto qualcosa in particolare. Ora con il tuo post spiegato molto chiaramente, so come usarlo nel caso.

    Grazie mille e, a proposito, lunga vita ai Led Zeppelin hehe.

  9.   kamala suddetto

    grazie, finalmente sono uscito dall'incubo di salvataggio di grub

    infatti ho seguito tutti i passaggi tranne umount / mnt / my_linux, perché mi diceva che era occupato, e l'ho fuso -km, ma nemmeno quello, e sono rimbalzato ...

    Spero non sia importante….

    grazie ancora…
    un saluto

  10.   Jose Antonio suddetto

    Nonostante l'articolo abbia già un paio di anni, voglio ringraziare l'autore per la sua generosità nel condividerlo è un ottimo articolo perché questo fine settimana mi ha salvato la vita. Involontariamente ho caricato un server installando un pacchetto e al riavvio non è stato caricato. Dopo tre giorni di tentativi di aggiustamento e lettura di diversi articoli, sono riuscito ad arrivare qui per caso e sono finalmente riuscito a reinstallare grub e riparare il server.

    Grazie mille !!!

    1.    più bello suddetto

      Sono contento che ti abbia aiutato. Grazie per il commento!

  11.   Helio suddetto

    Ciao, so che questo post anni fa, questo grande grazie per averlo condiviso. E avevo un dubbio, nel mio caso ha danneggiato il sistema e anche i driver di rete, quindi ho seguito i passaggi ma non mi permette di scaricare i pacchetti, c'è un modo per collegare la rete live con il terminale

    1.    più bello suddetto

      Non capisco bene il tuo problema ... Quando accedi con il LiveCD, il kernel che carica è quello del LiveCD, quindi dovresti essere in grado di configurare perfettamente una connessione Internet. Una volta stabilita la connessione, prova a eseguire il chroot per vedere se continui a mantenerlo, in caso contrario potresti doverlo configurare di nuovo, ma il kernel danneggiato non dovrebbe influenzare la sessione chroot.
      Se non specifichi di più, posso dirti ...

  12.   dach suddetto

    Post eccellente ... uno dei pochi articoli utili trovati su Internet.
    La ringrazio molto per il contributo.

  13.   zopeck suddetto

    Ciao, ottimo tutorial! Spiegato in modo superbo, per noi comuni mortali!

    Ho una domanda:
    Quando hai detto che nel caso in cui avessi bisogno di installare pacchetti, eseguire aggiornamenti di sistema o altre attività speciali e richiedere il montaggio delle cartelle /dev/proc e /sys, non mi era chiaro se queste cartelle si trovassero nel sistema Live con cui avviato l'apparecchiatura da riparare, o se sono nella partizione di root montata prima.

    Grazie.

  14.   Orlando suddetto

    MOLTE GRAZIE!!!!