Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "andreas-xavier/prova4"
Differenze tra le versioni 56 e 57
Versione 56 del 14/12/2022 15.26.51
Dimensione: 8170
Commento:
Versione 57 del 14/12/2022 15.49.14
Dimensione: 8497
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 16: Linea 16:
 * per cercare di riparare un sistema al quale non è possibile accedere normalmente (ad esempio a causa di problemi con '''[[AmministrazioneSistema/Grub|GRUB]]''');  * per riparare un sistema al quale è impossibile accedere, quando non è sufficiente montare il file system ed 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).
Linea 18: Linea 18:
 * in alcuni casi, come alternativa alla [[Virtualizzazione|virtualizzazione]] (es: per eseguire una versione di un programma incompatibile con il sistema in uso).
Linea 20: Linea 21:
 * Richiede che i due sistemi siano della medesima architettura (in caso di utilizzo di sessione ''live'').
 * Viene adoperato il kernel del sistema di partenza (non quello a cui si effettua l'accesso.
 * Non è possibile l'apertura simultanea di più sistemi. Pertanto montare un solo sistema per volta.
 * 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.


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: 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). 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, quando non è sufficiente montare il file system ed 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 alcuni casi, come alternativa alla virtualizzazione (es: per eseguire una versione di un programma incompatibile con il sistema in uso).

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

  1. Avviare la Live di Ubuntu oppure l'altro sistema GNU/Linux presente nel computer.

  2. 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:

Accesso al sistema

Di seguito verranno mostrati comandi con nomi fittizi delle partizioni. Sostituirli con quelli reali, individuati in fase preliminare.

  1. Prima di accedere al sistema occorre montare la relativa partizione (o più d'una, se necessario). Digitare nel terminale uno dei comandi descritti successivamente.

    • Per partizioni con file system ext4:

      sudo mount -t ext4 /dev/sda1 /mnt
    • Per partizioni con file system btrfs:

      sudo mount -t btrfs /dev/sdc1 /mnt
    • Per partizioni con file system btrfs con due subvolumi (impostazione predefinita dall'installer di Ubuntu):

      sudo mount -t btrfs -o subvol=@ /dev/sdc1 /mnt
  2. 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/

  3. 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
  4. 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

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

    exit
  2. Smontare tutti i dispositivi con il comando:

    cd ~ && for i in /dev /proc /sys /run /; do sudo umount -l /mnt$i; done
  3. Se presente, smontare l'eventuale partizione EFI (saltare il passaggio se non necessario):

    sudo umount /dev/sda2 /mnt/boot/efi/

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:

  1. Uscire dal chroot.

  2. Ripetere la procedura di accesso al chroot fino a questo passaggio.

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

    sudo mount --bind /etc/resolv.conf /mnt/etc/resolv.conf
  4. Eseguire il chroot come descritto nel passaggio successivo.

Ulteriori risorse


CategoryHomepage CategoryNuoviDocumenti