Indice
Guida verificata con Ubuntu: 20.04 22.04 24.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.
per l'esecuzione o per il debug di applicazioni non sicure all'interno di un ambiente confinato detto Chroot Jail
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 sistema Ubuntu e viceversa). Ovviamente, una volta entrati in sessione chroot, bisognerà utilizzare i comandi specifici della distribuzione su cui si è eseguito l'accesso.
Non è possibile eseguire, installare e in generale lavorare con applicazioni snap in chroot.
Btrfs
Per i filesystem Btrfs è valida la procedura descritta in precedenza, con alcune integrazioni. Infatti si rende necessario montare eventuali subvolumi, se presenti.
In Ubuntu 24.04 usando il nuovo installer non vengono creati subvolumi selezionando il filesystem btrfs. Vengono invece creati usando l'installer Calamares (presente nelle immagini delle derivate Kubuntu e Lubuntu).
Montare il filesystem come descritto nel primo punto del paragrafo precedente. È ora possibile verificare la presenza di subvolumi digitando nel terminale il seguente comando:
sudo btrfs subvolume list -t /mnt
In presenza di subvolumi l'output sarà simile al seguente:
ID gen top level path -- --- --------- ---- 256 436 5 @opt 257 436 5 @var_lib_machines 258 436 5 @var_lib_libvirt 259 436 5 @var_lib_flatpak 263 436 5 @home 274 436 5 @var_tmp 275 436 5 @var_log 276 436 5 @var_cache 277 436 5 @
se il filesistem non presenta subvolumi l'output sarà:
ID gen top level path -- --- --------- ----
In assenza di subvolumi è possibile seguire la normale procedura descritta nel paragrafo precedente, trascurando quindi il passaggio successivi.Nel caso di una struttura a subvolumi, solitamente il subvolume @ è il punto di mount della root di sistema (/). Procedere con il montaggio della root come di seguito:
sudo umount /mnt
sudo mount -o subvol=@ /dev/sda3 /mnt
montare l'eventuale partizione EFI come al paragrafo precedente
Montare le directory virtuali (se il subvolume fosse diverso da @, adeguare il percorso nel seguente comando e nei successivi):
Montare le directory virtuali:for i in dev proc sys run; do sudo mount --bind /$i /mnt/$i; done
Qualora sia necessario montare anche la partizione EFI (es: per ripristinare Grub), integrare il comando come indicato di seguito:for i in dev proc run sys sys/firmware/efi/efivars; do sudo mount --bind /$i /mnt/$i; done
Eseguire il chroot sul sistema montato digitando:
sudo chroot /mnt
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
che qualora sia stato necessario montare anche la partizione EFI deve essere sostituito con il comando:
for i in /dev /proc /run /sys/firmware/efi/efivars /sys ; 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.