|
Dimensione: 6685
Commento: Quattro correzioni sintaticche in croce
|
Dimensione: 8142
Commento: copia da andreas-xavier/prova4
|
| Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
| Linea 5: | Linea 5: |
| <<Indice>> <<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=636196"; rilasci="14.04 16.04 18.04 20.04")>> |
<<Indice(depth=2)>> <<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=636196"; rilasci="14.04 16.04 18.04 20.04 22.04")>> |
| 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'''). Quest'ultima è 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 e utilizzarlo 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 14: | Linea 14: |
| 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. |
Il '''chroot''' può avere diverse applicazioni. Ad esempio può rivelarsi utile: * per riparare un sistema al quale è impossibile accedere, specialmente quando non è sufficiente eseguire semplici modifiche ai file, ma occorre svolgere operazioni avanzate come l'esecuzione di programmi dal sistema danneggiato (un tipico esempio è il [[AmministrazioneSistema/Grub/Ripristino|ripristino di GRUB]]). * per accedere rapidamente ad un altro sistema presente sulla stessa macchina senza lasciare quello già avviato. * in certi casi, come alternativa alla [[Virtualizzazione|virtualizzazione]]. Altre caratteristiche varie del '''chroot''' sono le seguenti: * Richiede che i due sistemi siano della medesima architettura (è utile tenerlo a mente in caso di utilizzo da sessione ''live''). * Viene adoperato il kernel del sistema di partenza (non di quello a cui si effettua l'accesso). * Non è possibile l'apertura simultanea di più sistemi con chroot. * È possibile 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. <<Anchor(preliminari)>> = Operazioni preliminari = 0. Avviare la '''Live''' di '''Ubuntu''' oppure l'altro sistema GNU/Linux presente nel computer. 0. [[Hardware/DispositiviPartizioni/IndividuarePartizioni|Individuare]] il file system e tutte le partizione su cui è installato il sistema e prenderne nota.<<BR>>Infatti, a seconda delle operazioni che si desidera eseguire, potrebbe essere necessario individuare: * Partizione [[AmministrazioneSistema/Uefi|EFI]], se presente. * Eventuali [[Hardware/DispositiviPartizioni/SpostareHomePartizioneSeparata|partizioni separate]] per `/boot`, `/home`, `/var` ecc. {{{#!wiki important Di seguito verranno mostrati comandi con nomi fittizi delle partizioni. Sostituirli con quelli reali, individuati precedentemente. }}} |
| Linea 21: | Linea 41: |
| 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''. {{{#!wiki important È possibile montare solo un sistema alla volta. Nel proseguo usare e dare solo il comando pertinente al proprio sistema. |
0. Prima di accedere al sistema occorre [[AmministrazioneSistema/ComandiBase#Gestione_del_filesystem|montare]] la relativa partizione di sistema (quella di ''root'', più altre se necessario). Digitare nel [[AmministrazioneSistema/Terminale|terminale]] uno dei comandi descritti successivamente. * Per partizioni con file system ''ext4'':{{{ sudo mount -t ext4 /dev/sda3 /mnt }}} * Per partizioni con file system ''btrfs'':{{{ sudo mount -t btrfs -o subvol=@ /dev/sda3 /mnt }}} {{{#!wiki note L'esempio precedente è relativo ad un sistema ''btrfs'' con due [[Hardware/DispositiviPartizioni/Btrfs/Introduzione#Presentazione_subvolume|subvolumi]], impostazione predefinita di Ubuntu e di altre distribuzioni GNU/Linux.<<BR>> Qualora invece non siano impostati subvolumi, può essere omessa l'opzione `-o subvol=@`. Tuttavia nei comandi successivi andrà specificato il punto di mount diverso da `/mnt`, anche per le relative sotto-directory (ad esempio `/mnt/@` con sotto-directory `/mnt/@/boot/efi/` ecc.). |
| Linea 29: | Linea 53: |
| 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:{{{ sudo mount -t ext4 /dev/sda1 /mnt }}} * 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/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:{{{ sudo mount -t btrfs /dev/sdc1 /mnt |
0. Se presente, montare l'eventuale partizione '''EFI''' (saltare questo passaggio se non necessario). A tal fine digitare:{{{ sudo mount -t vfat /dev/sda2 /mnt/boot/efi/ |
| Linea 40: | Linea 57: |
| 0. 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 il comando: {{{ |
<<Anchor(mount)>> 0. Montare in `/mnt` anche le directory virtuali `/dev`, `/proc`, `/sys` e `/run` con il comando:{{{ |
| Linea 48: | Linea 62: |
| {{{#!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)>> 0. Effettuare un '''chroot''' sul sistema digitando: {{{ |
0. Effettuare il '''chroot''' sul sistema montato digitando: {{{ |
| Linea 63: | Linea 69: |
| 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.<<BR>>Si ricorda che __non__ occorre anteporre «`sudo`» a nessun comando. }}} |
| Linea 66: | Linea 73: |
| = Abbandono del sistema = | = Uscita dal sistema = |
| Linea 68: | Linea 75: |
| 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 78: |
| 0. Smontare tutti i dispositivi: {{{ | 0. Se necessario, [[AmministrazioneSistema/ComandiBase#cd|spostarsi]] in `~`:{{{ |
| Linea 73: | Linea 80: |
| }}}e quindi:{{{ | }}} 0. Smontare tutte le directory virtuali con il comando:{{{ |
| Linea 76: | Linea 84: |
{{{#!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.. }}} 0. Smontare l'eventuale partizione '''EFI''' con il comando:{{{ |
0. Se presente, smontare anche l'eventuale partizione '''EFI''' (saltare il passaggio se non necessario):{{{ |
| Linea 86: | Linea 87: |
| 0. Smontare infine la partizione di sistema sulla quale si è operato, digitando il comando:{{{ sudo umount /dev/sda3 /mnt }}} |
|
| Linea 87: | Linea 91: |
| 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:{{{ sudo umount /dev/sda1 /mnt }}} * 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:{{{ sudo umount -t btrfs -o subvol=@ /dev/sdc1 /mnt }}} * 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:{{{ sudo umount -t btrfs /dev/sdc1 /mnt }}} 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 101: | Linea 94: |
| ##== Assenza connessione alla rete == | == Connessione ai repository non riuscita == Se provando ad aggiornare il sistema appare un output simile al seguente:{{{ root@notebook:/# 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 … … 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 == |
| Linea 113: | Linea 125: |
| 0. Ripetere la procedura di [[#accesso|accesso]] al '''chroot''' fino al [[#punto4|punto 4]]. | 0. Ripetere la procedura di [[#accesso|accesso]] al '''chroot''' fino a questo [[#mount|passaggio]]. |
| Linea 117: | Linea 129: |
| 0. Completare la procedura dal [[#norete|punto 5]]. | 0. Eseguire il '''chroot''' come descritto nel passaggio successivo. |
| Linea 121: | Linea 133: |
| * [[https://it.wikipedia.org/wiki/Chroot|Pagina enciclopedica]] | * [[https://en.wikipedia.org/wiki/Chroot|Pagina enciclopedica]] |
| Linea 124: | Linea 136: |
| * [[AmministrazioneSistema/ComandiBase#Gestione_del_filesystem|Comandi per montare partizioni]] | |
| Linea 127: | Linea 140: |
| CategoryAmministrazione | CategoryAmministrazione |
Guida verificata con Ubuntu: 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). Quest'ultima è 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 e utilizzarlo 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.
Il chroot può avere diverse applicazioni. Ad esempio può rivelarsi utile:
per riparare un sistema al quale è impossibile accedere, specialmente quando non è sufficiente eseguire semplici modifiche ai file, ma occorre svolgere operazioni avanzate come l'esecuzione di programmi dal sistema danneggiato (un tipico esempio è il ripristino di GRUB).
- per accedere rapidamente ad un altro sistema presente sulla stessa macchina senza lasciare quello già avviato.
in certi casi, come alternativa alla virtualizzazione.
Altre caratteristiche varie del chroot sono le seguenti:
Richiede che i due sistemi siano della medesima architettura (è utile tenerlo a mente in caso di utilizzo da sessione live).
- Viene adoperato il kernel del sistema di partenza (non di quello a cui si effettua l'accesso).
- Non è possibile l'apertura simultanea di più sistemi con chroot.
- È possibile 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.
Operazioni preliminari
Avviare la Live di Ubuntu oppure l'altro sistema GNU/Linux presente nel computer.
Individuare il file system e tutte le partizione su cui è installato il sistema e prenderne nota.
Infatti, a seconda delle operazioni che si desidera eseguire, potrebbe essere necessario individuare:Partizione EFI, se presente.
Eventuali partizioni separate per /boot, /home, /var ecc.
Di seguito verranno mostrati comandi con nomi fittizi delle partizioni. Sostituirli con quelli reali, individuati precedentemente.
Accesso al sistema
Prima di accedere al sistema occorre montare la relativa partizione di sistema (quella di root, più altre se necessario). Digitare nel terminale uno dei comandi descritti successivamente.
Per partizioni con file system ext4:
sudo mount -t ext4 /dev/sda3 /mnt
Per partizioni con file system btrfs:
sudo mount -t btrfs -o subvol=@ /dev/sda3 /mnt
L'esempio precedente è relativo ad un sistema btrfs con due subvolumi, impostazione predefinita di Ubuntu e di altre distribuzioni GNU/Linux.
Qualora invece non siano impostati subvolumi, può essere omessa l'opzione -o subvol=@. Tuttavia nei comandi successivi andrà specificato il punto di mount diverso da /mnt, anche per le relative sotto-directory (ad esempio /mnt/@ con sotto-directory /mnt/@/boot/efi/ ecc.).Se presente, montare l'eventuale partizione EFI (saltare questo passaggio se non necessario). A tal fine digitare:
sudo mount -t vfat /dev/sda2 /mnt/boot/efi/
Montare in /mnt anche le directory virtuali /dev, /proc, /sys e /run con il comando:
for i in dev proc sys run; do sudo mount --bind /$i /mnt/$i; done
Effettuare il chroot sul sistema montato 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
Uscire dal chroot premendo la combinazione di tasti Ctrl+D o con il comando:
exit
Se necessario, spostarsi in ~:
cd ~
Smontare tutte le directory virtuali con il comando:
for i in /dev /proc /sys /run /; do sudo umount -l /mnt$i; done
Se presente, smontare anche l'eventuale partizione EFI (saltare il passaggio se non necessario):
sudo umount /dev/sda2 /mnt/boot/efi/
Smontare infine la partizione di sistema sulla quale si è operato, digitando il comando:
sudo umount /dev/sda3 /mnt
Per accedere normalmente all'altro sistema riavviare come di consueto il computer oppure terminare la sessione Live.
Risoluzione problemi
Connessione ai repository non riuscita
Se provando ad aggiornare il sistema appare un output simile al seguente:
root@notebook:/# 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 … … 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:
Uscire dal chroot.
Ripetere la procedura di accesso al chroot fino a questo passaggio.
Montare separatamente la directory /etc/resolv.conf, digitando il seguente comando:
sudo mount --bind /etc/resolv.conf /mnt/etc/resolv.conf
Eseguire il chroot come descritto nel passaggio successivo.
