Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "AmministrazioneSistema/Chroot"
Differenze tra le versioni 27 e 28
Versione 27 del 19/10/2022 16.15.45
Dimensione: 7862
Autore: wilecoyote
Commento: Aggiunta una procedura in Risoluzione problemi
Versione 28 del 11/12/2022 22.36.09
Dimensione: 7837
Commento: Revisione generale
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 10: Linea 10:
Questa guida contiene le informazioni per accedere ad una installazione di Ubuntu attraverso '''chroot'''. Questa guida contiene le informazioni per accedere ad una installazione di Ubuntu attraverso '''chroot''' ('''Ch'''ange '''root'''). È un'utilità dei sistemi [[https://it.wikipedia.org/wiki/Unix-like|unix-like]] in grado di cambiare root directory apparente, così da creare un nuovo ambiente logicamente separato dalla root del sistema principale.
Linea 12: Linea 12:
In pratica, la procedura permette di accedere ad un secondo sistema presente nel computer tramite [[AmministrazioneSistema/Terminale|riga di comando]], eseguendo delle operazioni su di esso da un altro sistema '''GNU/Linux''' avviato oppure da sessione '''[[Installazione#Creazione_e_avvio_del_supporto_di_installazione|live]]'''. In altre parole, con il '''chroot''' è possibile accedere ad un secondo sistema presente nel computer tramite [[AmministrazioneSistema/Terminale|riga di comando]]. Si potrà quindi eseguire qualunque azione sul sistema avviato da chroot operando da terminale aperto da un altro sistema '''GNU/Linux''' oppure da sessione '''[[Installazione#Creazione_e_avvio_del_supporto_di_installazione|live]]'''.
Linea 18: Linea 18:
{{{#!wiki tip
Il chroot permette di operare anche tra distribuzioni GNU/Linux differenti. Ad esempio, è possibile utilizzare Fedora o Arch operando da terminale su Ubuntu e viceversa. Ovviamente, una volta entrati in sessione chroot, bisognerà utilizzare i comandi specifici della distribuzione su cui si è eseguito l'accesso.
}}}

{{{#!wiki note
Con chroot non è possibile l'apertura simultanea di più sistemi. Pertanto montare un solo sistema per volta.
}}}
Linea 21: Linea 29:
 0. Avviare il sistema funzionante o la '''Live''' di '''Ubuntu'''. Una volta caricato il sistema, [[Hardware/DispositiviPartizioni/IndividuarePartizioni#df|individuare]] il file system e la partizione sulla quale è installato il sistema, se trattasi di sistema installato in modalità [[https://wiki.ubuntu-it.org/AmministrazioneSistema/Uefi|UEFI]] individuare anche la partizione '''EFI''', che si vuole avviare tramite '''chroot''' e prenderne nota.<<BR>>
 Nei prossimi passaggi verranno presi ad esempio i sistemi installati sulle partizioni `/dev/sda1` con file system ''ext4'' e `/dev/sdc1` con file system ''[[AmministrazioneSistema/Filesystem/Btrfs|btrfs]]'', coll'eventuale partizione '''EFI''' installata su `/dev/sda2` con file system ''fat32''.
 0. Avviare il sistema funzionante o la '''Live''' di '''Ubuntu'''.
 0
. Una volta caricato il sistema, [[Hardware/DispositiviPartizioni/IndividuarePartizioni#df|individuare]] il file system e la partizione sulla quale è installato il sistema e prenderne nota. In caso di sistema installato in modalità [[AmministrazioneSistema/Uefi|UEFI]] individuare anche la partizione '''EFI'''.<<BR>>
Linea 24: Linea 32:
 {{{#!wiki important
È possibile montare solo un sistema alla volta.
Nel proseguo usare e dare solo il comando pertinente al proprio sistema.
}}}

 0. Per montare la partizione sulla quale risiede il sistema a cui si desidera accedere;
   * Per montare la partizione `/dev/sda1` con file systyem ''ext4'' digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
 0. Di seguito sono riportati esempi di comandi per montare la partizione sulla quale risiede il sistema a cui si desidera accedere: sistemi installati su partizioni con con file system ''ext4'' o ''[[AmministrazioneSistema/Filesystem/Btrfs|btrfs]]'', con l'eventuale partizione '''EFI''' installata su `/dev/sda2` con file system ''fat32''. Utilizzare, con le opportune modifiche, soltanto il comando relativo al sistema a cui si desidera accedere.
   * Per montare la partizione `/dev/sda1` con file systyem ''ext4'' digitare nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
Linea 33: Linea 36:
   * Per montare la partizione  `/dev/sdc1` con file system ''btrfs'' in caso trattasi di '''Ubuntu''' con qualsiasi [[AmbienteGrafico|ambiente grafico]] digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
sudo mount -t btrfs -o subvol=@ /dev/sdc1 /mnt
   * Per montare la partizione `/dev/sda2` con file system ''btrfs'' digitare nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
sudo mount -t btrfs -o subvol=@ /dev/sda2 /mnt
Linea 36: Linea 39:
   * Per montare la partizione  `/dev/sdc1` con file system ''btrfs'' in caso trattasi di altri sistemi '''GNU/Linux''' con qualsiasi [[AmbienteGrafico|ambiente grafico]] digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{    * Per montare la partizione `/dev/sdc1` con file system ''btrfs'' digitare nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
Linea 39: Linea 42:

 0. Montare l'eventuale partizione '''EFI''' con il comando:{{{
 
 Montare l'eventuale partizione '''EFI''' con il comando:{{{
Linea 43: Linea 46:
   <<Anchor(punto4)>>
 0. Montare le directory `dev`, `proc`, `sys`, `run` con il comando: {{{
 <<Anchor(punto4)>>
 0. Montare le directory `dev`, `proc`, `sys`, `run` con i comandi:{{{
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo mount --bind /run /mnt/run
}}}
 In alternativa è possibile eseguire l'unico comando:{{{
Linea 48: Linea 57:
 {{{#!wiki note
Il comando permette di montare all'istante tutte le directory sopra elencate anziché digitare per ognuna di esse:<<BR>>
`sudo mount --bind /dev /mnt/dev`<<BR>>
`sudo mount --bind /proc /mnt/proc`<<BR>>
ecc..
}}}

   <<Anchor(norete)>>
 <<Anchor(norete)>>
Linea 63: Linea 65:
Quando è in uso chroot si ottiene accesso come [[AmministrazioneSistema/Sudo|root]]. Quindi prestare particolare attenzione ai comandi che vengono eseguiti.}}} Quando è in uso chroot si ottiene l'accesso come [[AmministrazioneSistema/PrivilegiDiAmministrazione|root]]. Quindi prestare particolare attenzione ai comandi che vengono eseguiti.
}}}
Linea 66: Linea 69:
= Abbandono del sistema = = Uscita dal sistema =
Linea 68: Linea 71:
 0. Uscire dal '''chroot''' premendo la combinazione di tasti '''Ctrl+D''' o eseguendo il comando: {{{  0. Uscire dal '''chroot''' premendo la combinazione di tasti '''Ctrl+D''' o con il comando:{{{
Linea 71: Linea 74:
 0. Smontare tutti i dispositivi: {{{  0. Smontare tutti i dispositivi con i seguenti comandi:{{{
Linea 73: Linea 76:
}}}e quindi:{{{
for i in /dev /proc /sys /run /; do sudo umount -l /mnt$i; done
sudo umount /mnt/dev
sudo umount /mnt/proc
sudo umount /mnt/sys
sudo umount /mnt/
Linea 76: Linea 81:

 {{{#!wiki note
Il comando permette di smontare all'istante tutte le directory sopra elencate anziché digitare per ognuna di esse:<<BR>>
`sudo umount /mnt/dev`<<BR>>
`sudo umount /mnt/proc`<<BR>>
ecc..
 In alternativa è possibile eseguire l'unico comando:{{{
cd ~ && for i in /dev /proc /sys /run /; do sudo umount -l /mnt$i; done
Linea 83: Linea 84:
 0. Smontare l'eventuale partizione '''EFI''' con il comando:{{{  Smontare l'eventuale partizione '''EFI''' con il comando:{{{
Linea 87: Linea 88:
 0. Per smontare la partizione sulla quale risiede il sistema su cui si è operato;
   * Per smontare la partizione `/dev/sda1` digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{
 0. Di seguito sono riportati esempi di comandi per smontare la partizione sulla quale risiede il sistema su cui si è operato, da utilizzare con le opportune modifiche in base al proprio caso.
   * Per smontare la partizione `/dev/sda1`:{{{
Linea 91: Linea 92:
   * Per smontare la partizione `/dev/sdc1` con file system ''btrfs'' in caso trattasi di '''Ubuntu''' con qualsiasi [[AmbienteGrafico|ambiente grafico]] digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{    * Per smontare la partizione `/dev/sdc1` con file system ''btrfs'':{{{
Linea 94: Linea 95:
   * Per smontare la partizione `/dev/sdc1` con file system ''btrfs'' in caso trattasi di altri sistemi '''GNU/Linux''' con qualsiasi [[AmbienteGrafico|ambiente grafico]] digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:{{{    * Per smontare la partizione `/dev/sdc1` con file system ''btrfs'':{{{
Linea 98: Linea 99:
Per accedere normalmente all'altro sistema, riavviare come di consueto il computer oppure terminare la sessione ''Live''. Per accedere normalmente all'altro sistema riavviare come di consueto il computer oppure terminare la sessione ''Live''. 
Linea 146: Linea 147:
 * [[https://it.wikipedia.org/wiki/Chroot|Pagina enciclopedica]]  * [[https://en.wikipedia.org/wiki/Chroot|Pagina enciclopedica]]


Guida verificata con Ubuntu: 20.04

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

Questa guida contiene le informazioni per accedere ad una installazione di Ubuntu attraverso chroot (Change root). È un'utilità dei sistemi unix-like in grado di cambiare root directory apparente, così da creare un nuovo ambiente logicamente separato dalla root del sistema principale.

In altre parole, con il chroot è possibile accedere ad un secondo sistema presente nel computer tramite riga di comando. Si potrà quindi eseguire qualunque azione sul sistema avviato da chroot operando da terminale aperto da un altro sistema GNU/Linux oppure da sessione live.

Può rivelarsi utile in diversi casi, ad esempio:

  • per cercare di riparare un sistema al quale non è possibile accedere normalmente (ad esempio per ripristinare GRUB);

  • accedere rapidamente ad un altro sistema presente sulla stessa macchina senza lasciare quello già avviato.

Il chroot permette di operare anche tra distribuzioni GNU/Linux differenti. Ad esempio, è possibile utilizzare Fedora o Arch operando da terminale su Ubuntu e viceversa. Ovviamente, una volta entrati in sessione chroot, bisognerà utilizzare i comandi specifici della distribuzione su cui si è eseguito l'accesso.

Con chroot non è possibile l'apertura simultanea di più sistemi. Pertanto montare un solo sistema per volta.

Accesso al sistema

  1. Avviare il sistema funzionante o la Live di Ubuntu.

  2. Una volta caricato il sistema, individuare il file system e la partizione sulla quale è installato il sistema e prenderne nota. In caso di sistema installato in modalità UEFI individuare anche la partizione EFI.

  3. Di seguito sono riportati esempi di comandi per montare la partizione sulla quale risiede il sistema a cui si desidera accedere: sistemi installati su partizioni con con file system ext4 o btrfs, con l'eventuale partizione EFI installata su /dev/sda2 con file system fat32. Utilizzare, con le opportune modifiche, soltanto il comando relativo al sistema a cui si desidera accedere.

    • Per montare la partizione /dev/sda1 con file systyem ext4 digitare nel terminale:

      sudo mount -t ext4 /dev/sda1 /mnt
    • Per montare la partizione /dev/sda2 con file system btrfs digitare nel terminale:

      sudo mount -t btrfs -o subvol=@ /dev/sda2 /mnt
    • Per montare la partizione /dev/sdc1 con file system btrfs digitare nel terminale:

      sudo mount -t btrfs /dev/sdc1 /mnt

    Montare l'eventuale partizione EFI con il comando:

    sudo mount -t vfat /dev/sda2 /mnt/boot/efi/

  4. Montare le directory dev, proc, sys, run con i comandi:

    sudo mount --bind /dev /mnt/dev
    sudo mount --bind /proc /mnt/proc
    sudo mount --bind /sys /mnt/sys
    sudo mount --bind /run /mnt/run

    In alternativa è possibile eseguire l'unico comando:

    for i in dev proc sys run; do sudo mount --bind /$i /mnt/$i; done

  5. Effettuare un chroot sul sistema digitando:

    sudo chroot /mnt

Arrivati a questo punto, all'interno dell'ambiente chroot sarà possibile effettuare qualsiasi operazione sull'altro sistema tramite terminale (ad esempio installare/rimuovere/aggiornare pacchetti, modificare o eliminare file, ripristinarne il corretto avvio ecc.).

Quando è in uso chroot si ottiene l'accesso come root. Quindi prestare particolare attenzione ai comandi che vengono eseguiti.

Uscita dal sistema

  1. Uscire dal chroot premendo la combinazione di tasti Ctrl+D o con il comando:

    exit
  2. Smontare tutti i dispositivi con i seguenti comandi:

    cd ~
    sudo umount /mnt/dev
    sudo umount /mnt/proc
    sudo umount /mnt/sys
    sudo umount /mnt/

    In alternativa è possibile eseguire l'unico comando:

    cd ~ && for i in /dev /proc /sys /run /; do sudo umount -l /mnt$i; done

    Smontare l'eventuale partizione EFI con il comando:

    sudo umount /dev/sda2 /mnt/boot/efi/
  3. Di seguito sono riportati esempi di comandi per smontare la partizione sulla quale risiede il sistema su cui si è operato, da utilizzare con le opportune modifiche in base al proprio caso.
    • Per smontare la partizione /dev/sda1:

      sudo umount /dev/sda1 /mnt
    • Per smontare la partizione /dev/sdc1 con file system btrfs:

      sudo umount -t btrfs -o subvol=@ /dev/sdc1 /mnt
    • Per smontare la partizione /dev/sdc1 con file system btrfs:

      sudo umount -t btrfs /dev/sdc1 /mnt

Per accedere normalmente all'altro sistema riavviare come di consueto il computer oppure terminare la sessione Live.

Risoluzione problemi

Connessione ai repository ignorata

Se provando ad aggiornare il sistema appare una simile schermata:

  • root@filippa-HP-ProBook-430:/# apt update
    Ignorato:1 http://security.ubuntu.com/ubuntu jammy-security InRelease
    Ignorato:2 http://it.archive.ubuntu.com/ubuntu jammy InRelease
    Ignorato:3 http://it.archive.ubuntu.com/ubuntu jammy-updates InRelease
    Ignorato:4 https://downloads.sourceforge.net/project/ubuntuzilla/mozilla/apt all InRelease
    Ignorato:5 http://it.archive.ubuntu.com/ubuntu jammy-backports InRelease
    W: Impossibile recuperare http://it.archive.ubuntu.com/ubuntu/dists/jammy/InRelease  Risoluzione di "it.archive.ubuntu.com" temporaneamente non riuscita
    W: Impossibile recuperare http://it.archive.ubuntu.com/ubuntu/dists/jammy-updates/InRelease  Risoluzione di "it.archive.ubuntu.com" temporaneamente non riuscita
    W: Impossibile recuperare http://it.archive.ubuntu.com/ubuntu/dists/jammy-backports/InRelease  Risoluzione di "it.archive.ubuntu.com" temporaneamente non riuscita
    

digitare il seguente comando:

  • ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

e riprovare l'aggiornamento.

Assenza connessione alla rete

In rari casi potrebbe capitare che il chroot non riesca a navigare in rete. Per verificare se è causato dal non funzionamento della connessione, digitare il comando:

ping -c 4 ubuntu.com

Un output simile al seguente indica il non funzionamento della connessione alla rete:

ping: ubuntu.com: Nome o servizio sconosciuto

Per aggirare il problema eseguire la seguente procedura:

  1. Uscire dal chroot.

  2. Ripetere la procedura di accesso al chroot fino al punto 4.

  3. Montare separatamente la directory /etc/resolv.conf, digitando il seguente comando:

    sudo mount --bind /etc/resolv.conf /mnt/etc/resolv.conf
  4. Completare la procedura dal punto 5.

Ulteriori risorse


CategoryAmministrazione