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 1 e 30 (in 29 versioni)
Versione 1 del 27/01/2012 13.31.15
Dimensione: 3106
Commento:
Versione 30 del 12/12/2022 12.20.59
Dimensione: 8348
Commento: Modifiche varie
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
## page was renamed from Grub2/Ripristino ## page was renamed from LorenzoZoffoli/Prova0
Linea 3: Linea 3:
#language it #LANGUAGE it
Linea 5: Linea 5:

Linea 8: Linea 6:
<<BR>>

<<Informazioni(forum="http://forum.ubuntu-it.org/index.php/topic,264939.0/all.html"; rilasci="11.10 11.04 10.10 10.04 ")>>
<<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=636196"; rilasci="14.04 16.04 18.04 20.04 22.04")>>
Linea 15: 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 17: Linea 12:
Questa procedura può essere utile in diversi casi:
 * non è possibile avviare normalmente il sistema a cui si vuole accedere.
 * si necessita di un metodo veloce per accedere al sistema senza lasciare quello che si è già avviato sulla stessa macchina
 * si cerca di recuperare una situazione di errore che non permette di lavorare direttamente sul sistema a cui si vuole accedere.
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 22: Linea 14:
Per seguire la procedura è necessario avviare un sistema GNU/Linux sul PC che contiene il sistema a cui si vuole accedere.
Per cui, se si ha già un altro sistema installato è sufficiente avviare quello altrimenti sarà necessario ottenere un ''CD Live''. Per informazioni su come ottenere questo supporto consultare [[http://www.ubuntu-it.org/Ottenere_Ubuntu.shtml|questa pagina]].
Può rivelarsi utile in diversi casi, ad esempio:
 * per cercare di riparare un sistema al quale non è possibile accedere normalmente (ad esempio per ripristinare '''[[AmministrazioneSistema/Grub|GRUB]]''');
 * accedere rapidamente ad un altro sistema presente sulla stessa macchina senza lasciare quello già avviato.
Linea 25: 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 per accedere ad un Ubuntu e viceversa. Ovviamente, una volta entrati in sessione chroot, bisognerà utilizzare i comandi specifici della distribuzione su cui si è eseguito l'accesso.
}}}
Linea 26: Linea 22:
{{{#!wiki note
Con chroot non è possibile l'apertura simultanea di più sistemi. Pertanto montare un solo sistema per volta.
}}}
Linea 27: Linea 26:
<<Anchor(accesso)>>
Linea 28: Linea 28:
 0. Avviare il sistema funzionante o lanciare un ''CD Live'' di '''Ubuntu'''. Una volta avviato, aprire un [[AmministrazioneSistema/RigaDiComando|terminale]] e digitare il seguente comando: {{{
sudo fdisk -l
}}} Prendere nota della partizione sulla quale è installato '''Ubuntu'''. Nei prossimi passi verrà assunto come partizione di installazione `/dev/sda1`.
 ||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%><<Immagine(Icone/Piccole/warning.png,,center)>> ||<style="padding:0.5em; border:none;">'''Attenzione, l'ultimo carattere del suddetto comando è una lettera "elle".''' ||
 0. Montare la partizione sulla quale risiede il sistema. Da riga di comando digitare: {{{
sudo mount /dev/sda1 /mnt

 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>>

 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 system ''ext4'' digitare nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
sudo mount -t ext4 /dev/sda1 /mnt
Linea 35: Linea 36:
 0. Montare il resto dei dispositivi con il comando: {{{    * Per montare la partizione `/dev/sdc1` con file system ''btrfs'' creato con due [[Hardware/DispositiviPartizioni/Btrfs/Introduzione#Presentazione_subvolume|subvolumi]] (impostazione predefinita dall'installer di '''Ubuntu''' ) digitare nel [[AmministrazioneSistema/Terminale|terminale]]:{{{
sudo mount -t btrfs -o subvol=@ /dev/sdc1 /mnt
}}}
  * Per montare la partizione `/dev/sdc1` con file system ''btrfs'' digitare nel [[AmministrazioneSistema/Terminale|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/
}}}
 <<Anchor(punto4)>>
 0. Montare le directory `dev`, `proc`, `sys`, `run` con i comandi:{{{
Linea 39: Linea 51:
sudo mount --bind /run /mnt/run
Linea 40: Linea 53:
 0. Effettuare un '''chroot''' sul sistema. Digitare da riga di comando: {{{  In alternativa è possibile eseguire l'unico comando:{{{
for i in dev proc sys run; do sudo mount --bind /$i /mnt/$i; done
}}}

 <<Anchor(norete)>>
 0. Effettuare un '''chroot''' sul sistema digitando: {{{
Linea 44: Linea 62:
0. A questo si ha a disposizione una [[AmministrazioneSistema/RigaDiComando|riga di comando]] simile a quella che otterremmo avviando un [[AmministrazioneSistema/RigaDiComando|terminale]] direttamente sul sistema destinazione.
 ||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%><<Immagine(Icone/Piccole/warning.png,,center)>> ||<style="padding:0.5em; border:none;">'''Attenzione, così facendo si ottiene accesso come root quindi è necessario prestare particolare attenzione ai comandi che vengono eseguiti da questo momento in poi.''' ||
Arrivati a questo punto, all'interno dell'ambiente '''chroot''' sarà possibile effettuare qualsiasi operazione sull'altro sistema tramite [[AmministrazioneSistema/Terminale|terminale]] (ad esempio installare/rimuovere/aggiornare pacchetti, modificare o eliminare file, ripristinarne il corretto avvio ecc.).
Linea 47: Linea 64:
= Abbandono del sistema =
 0. Uscire dal '''chroot''' premendo la combinazione di tasti '''Ctrl+D''' o eseguendo il comando: {{{
{{{#!wiki important
Quando è in uso chroot si ottiene l'accesso come [[AmministrazioneSistema/PrivilegiDiAmministrazione|root]]. Quindi prestare particolare attenzione ai comandi che vengono eseguiti. Si ricorda che non occorre anteporre `sudo` a nessun comando.
}}}

<<Anchor(abbandono)>>
= Uscita dal sistema =

 0. Uscire dal '''chroot''' premendo la combinazione di tasti '''Ctrl+D''' o con il comando:{{{
Linea 51: Linea 74:
 0. Smontare tutti i dispositivi digitando: {{{  0. Smontare tutti i dispositivi con i seguenti comandi:{{{
Linea 58: Linea 81:
 0. Riavviare il sistema e, se utilizzato, rimuovere il ''CD Live''.  In alternativa è possibile eseguire l'unico comando:{{{
cd ~ && for i in /dev /proc /sys /run /; do sudo umount -l /mnt$i; done
}}}
 0. Se presente, smontare l'eventuale partizione '''EFI''' con il comando:{{{
sudo umount /dev/sda1 /mnt/boot/efi/
}}}
 sostituendo eventualmente `/dev/sda1` con la partizione EFI effettiva presente nel proprio sistema.

In caso di configurazioni particolari occorre utilizzare comandi specifici per smontare le partizioni (passaggio 2). A tal proposito, di seguito sono riportati alcuni 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'' con due subvolumi:{{{
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 un output simile al seguente:{{{
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:

 0. [[#abbandono|Uscire]] dal '''chroot'''.
 0. Ripetere la procedura di [[#accesso|accesso]] al '''chroot''' fino al [[#punto4|punto 4]].
 0. Montare separatamente la directory `/etc/resolv.conf`, digitando il seguente comando:{{{
sudo mount --bind /etc/resolv.conf /mnt/etc/resolv.conf
}}}
 0. Completare la procedura dal [[#norete|punto 5]].

= Ulteriori risorse =

 * [[https://en.wikipedia.org/wiki/Chroot|Pagina enciclopedica]]
 * [[https://wiki.debian.org/it/chroot|Wiki di Debian]]
 * [[Programmazione/DebootstrapChroot|Guida a debootstrap]]
 * [[AmministrazioneSistema/Grub|Guide su GRUB]]

----
CategoryAmministrazione


Guida verificata con Ubuntu: 20.04 22.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 per accedere ad un 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 system ext4 digitare nel terminale:

      sudo mount -t ext4 /dev/sda1 /mnt
    • Per montare la partizione /dev/sdc1 con file system btrfs creato con due subvolumi (impostazione predefinita dall'installer di Ubuntu ) digitare nel terminale:

      sudo mount -t btrfs -o subvol=@ /dev/sdc1 /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. Si ricorda che non occorre anteporre sudo a nessun comando.

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
  3. Se presente, smontare l'eventuale partizione EFI con il comando:

    sudo umount /dev/sda1 /mnt/boot/efi/

    sostituendo eventualmente /dev/sda1 con la partizione EFI effettiva presente nel proprio sistema.

In caso di configurazioni particolari occorre utilizzare comandi specifici per smontare le partizioni (passaggio 2). A tal proposito, di seguito sono riportati alcuni 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 con due subvolumi:

    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 un output simile al seguente:

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