|
Dimensione: 3808
Commento:
|
Dimensione: 9760
Commento: prova chroot
|
| Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
| Linea 1: | Linea 1: |
| ## page was renamed from LorenzoZoffoli/Prova0 | |
| Linea 2: | Linea 3: |
| #language it | #LANGUAGE it |
| Linea 5: | Linea 6: |
| <<Indice>> <<Informazioni(forum="http://forum.ubuntu-it.org/linkAlForum; rilasci="18.04 20.04 22.04 22.10";)>> |
<<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 11: |
| In questa guida sono descritte le indicazioni per gestire gli aggiornamenti per i pacchetti '''snap'''. | 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 13: |
| Ubuntu cerca ed eventualmente esegue gli aggiornamenti dei pacchetti snap installati quattro volte al giorno, in background e senza intervento o notifica all'utente. Di seguito sono descritte delle istruzioni per ritardare gli aggiornamenti o assegnare una finestra temporale in cui eseguirli. | 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]]'''. Il '''chroot''' può avere diverse applicazioni. Ad esempio può rivelarsi utile: * per cercare di riparare un sistema al quale non è possibile accedere normalmente (es.: in caso di problemi con '''[[AmministrazioneSistema/Grub|GRUB]]'''); * accedere rapidamente ad un altro sistema presente sulla stessa macchina senza lasciare quello già avviato. {{{#!wiki note Con chroot non è possibile l'apertura simultanea di più sistemi. Pertanto montare un solo sistema per volta. }}} |
| Linea 15: | Linea 24: |
| Alcuni programmi in snap (ad esempio '''Firefox'''), notificano la presenza di un aggiornamento in attesa, invitando quindi a chiudere il programma. Ciò evita problemi con l'aggiornamento automatico, nel caso il programma sia in esecuzione. | 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 18: | Linea 27: |
| = Eseguire gli aggiornamenti manualmente = | = Funzionamento = |
| Linea 20: | Linea 29: |
| Digitare nel [[AmministrazioneSistema/Terminale|terminale]] il comando:{{{ sudo snap refresh |
Di seguito sono descritti, sinteticamente i passaggi per accedere ad un sistema tramite '''chroot''' (viene preso ad esempio un sistema semplificato con una sola partizione di root `/dev/sda1`). 0. Dopo aver individuato le partizioni, montare il sistema a cui si vuole accedere in un punto di mount (in questo caso `/mnt`):{{{ sudo mount /dev/sda1 /mnt }}} 0. Montare il resto dei dispositivi:{{{ sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys sudo mount --bind /run /mnt/run }}} 0. Effettuare il '''chroot''':{{{ sudo chroot /mnt }}} 0. Una volta eseguite le operazioni desiderate, uscire dal '''chroot''':{{{ exit }}} 0. Smontare le partizioni montate in precedenza:{{{ sudo umount /mnt/dev sudo umount /mnt/proc sudo umount /mnt/sys sudo umount /mnt/ |
| Linea 24: | Linea 53: |
| = Controllare quando vengono eseguiti gli aggiornamenti = | <<Anchor(accesso)>> = Accesso al sistema = |
| Linea 26: | Linea 56: |
| Digitare nel [[AmministrazioneSistema/Terminale|terminale]] il comando:{{{ snap refresh --time |
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 }}} * 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:{{{ 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 |
| Linea 30: | Linea 84: |
| Con le impostazioni di default l'output sarà simile al seguente:{{{ timer: 00:00~24:00/4 last: oggi alle 10:42 CEST next: oggi alle 15:36 CEST |
{{{#!wiki note Qualora una o più directory di sistema risiedano in [[Hardware/DispositiviPartizioni/SpostareHomePartizioneSeparata|dischi o partizioni separate]] da quella di root, occorrerà a loro volta individuarle e montarle una alla volta dopo aver creato per ciascuna un punto di mount. |
| Linea 36: | Linea 88: |
| = Impostazione = È possibile impostare da [[AmministrazioneSistema/Terminale|terminale]] quando e quante volte eseguire gli aggiornamenti impostando il valore `refresh.timer`. Di seguito vengono mostrati degli esempi: * Per impostare le fasce orarie 04:00/06:00 e 21:00/24:00 digitare il comando:{{{ sudo snap set system refresh.timer=4:00-6:00,21:00-24:00 |
<<Anchor(norete)>> 0. Effettuare un '''chroot''' sul sistema digitando: {{{ sudo chroot /mnt |
| Linea 44: | Linea 93: |
| * Per impostare solamente il controllo/aggiornamento due volte nel weekend:{{{ sudo snap set system refresh.timer=sat,sun,0:00-24:00/2 |
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.). {{{#!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. |
| Linea 48: | Linea 99: |
| * Per impostare la fascia oraria 22:00/23:00 dal lunedì al giovedì e 9:00/11:00 del venerdì digitare:{{{ sudo snap set system refresh.timer=mon-wed,22:00-23:00,,fri,9:00-11:00 |
<<Anchor(abbandono)>> = Uscita dal sistema = 0. Uscire dal '''chroot''' premendo la combinazione di tasti '''Ctrl+D''' o con il comando:{{{ exit }}} 0. 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 }}} 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 |
| Linea 52: | Linea 166: |
| * Per impostare il secondo lunedì del mese nella fascia oraria 9:00/11:00 digitare:{{{ sudo snap set system refresh.timer=mon2,9:00-11:00 |
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 |
| Linea 55: | Linea 173: |
= Ritardare gli aggiornamenti = È possibile ritardare l'aggiornamento specificando il valore di `refresh.hold` fino a 90 giorni. Per ritardare fino alle 18:22 del 29 dicembre 2022 digitare:{{{ sudo snap set system refresh.hold=2022-12-29T18:22:00+08:00 }}} dove la data è indicata nel formato `yyyy-mm-dd` (anno, mese e giorno). Per verificare digitare:{{{ sudo snap get system refresh.hold }}} = Mettere in pausa gli aggiornamenti = In alcuni casi potrebbe tornare utile disabilitare gli aggiornamenti automatici (ad esempio se in uso una connessione Internet con dati a consumo). In tal caso è possibile digitare il comando:{{{ sudo snap set system refresh.metered=hold }}} Per annullare la modifica, invece, digitare:{{{ sudo snap set system refresh.metered=null }}} = Monitorare gli aggiornamenti = Per visualizzare i cambiamenti avvenuti durante l'ultimo aggiornamento, digitare:{{{ snap changes }}} L'output sarà simile al seguente:{{{ ID Stato Spawn Pronto Riepilogo 3 Done oggi alle 10:08 CEST oggi alle 10:09 CEST Aggiorna snap "snapd" 4 Done oggi alle 10:09 CEST oggi alle 10:11 CEST Aggiorna snap "firefox" }}} |
0. Completare la procedura dal [[#norete|punto 5]]. |
| Linea 93: | Linea 177: |
| * [[https://ubuntuhandbook.org/index.php/2022/07/delay-specify-update-snap-ubuntu/|Guida originale]] * [[https://snapcraft.io/docs/keeping-snaps-up-to-date|Managing updates]] (Documentazione Snapcraft) * [[AmministrazioneSistema/InstallareProgrammi/PacchettiSnap|Guida Snap]] |
* [[https://en.wikipedia.org/wiki/Chroot|Pagina enciclopedica]] * [[https://wiki.debian.org/it/chroot|Wiki di Debian]] * [[Programmazione/DebootstrapChroot|Guida a debootstrap]] * [[AmministrazioneSistema/ComandiBase#Gestione_del_filesystem|Comandi per montare partizioni]] * [[AmministrazioneSistema/Grub|Guide su GRUB]] |
| Linea 97: | Linea 184: |
| CategoryHomepage | |
| Linea 99: | Linea 185: |
| ##---- CategoryHomepage CategoryNuoviDocumenti |
Attenzione! Questa è una Pagina di prova. Le informazioni riportate potrebbero essere incomplete, errate e potenzialmente pericolose. Per contribuire alla realizzazione di questa pagina consultare la discussione di riferimento. |
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 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 cercare di riparare un sistema al quale non è possibile accedere normalmente (es.: in caso di problemi con GRUB);
- accedere rapidamente ad un altro sistema presente sulla stessa macchina senza lasciare quello già avviato.
Con chroot non è possibile l'apertura simultanea di più sistemi. Pertanto montare un solo sistema per volta.
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.
Funzionamento
Di seguito sono descritti, sinteticamente i passaggi per accedere ad un sistema tramite chroot (viene preso ad esempio un sistema semplificato con una sola partizione di root /dev/sda1).
Dopo aver individuato le partizioni, montare il sistema a cui si vuole accedere in un punto di mount (in questo caso /mnt):
sudo mount /dev/sda1 /mnt
Montare il resto dei dispositivi:
sudo mount --bind /dev /mnt/dev sudo mount --bind /proc /mnt/proc sudo mount --bind /sys /mnt/sys sudo mount --bind /run /mnt/run
Effettuare il chroot:
sudo chroot /mnt
Una volta eseguite le operazioni desiderate, uscire dal chroot:
exit
Smontare le partizioni montate in precedenza:
sudo umount /mnt/dev sudo umount /mnt/proc sudo umount /mnt/sys sudo umount /mnt/
Accesso al sistema
Avviare il sistema funzionante o la Live di Ubuntu.
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.
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/
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
Qualora una o più directory di sistema risiedano in dischi o partizioni separate da quella di root, occorrerà a loro volta individuarle e montarle una alla volta dopo aver creato per ciascuna un punto di mount.
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
Uscire dal chroot premendo la combinazione di tasti Ctrl+D o con il comando:
exit
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
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:
Uscire dal chroot.
Montare separatamente la directory /etc/resolv.conf, digitando il seguente comando:
sudo mount --bind /etc/resolv.conf /mnt/etc/resolv.conf
Completare la procedura dal punto 5.
Ulteriori risorse
