## page was renamed from LorenzoZoffoli/Prova0
#format wiki
#LANGUAGE it
<
>
<>
<>
= Introduzione =
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.
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]]'''.
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]].
* __~+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 [[Hardware/DispositiviPartizioni/Btrfs/Introduzione#Presentazione_subvolume|subvolumi]], se presenti.
{{{#!wiki note
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).
}}}
1. __~+Montare il filesystem come descritto nel primo punto del [[#accesso|paragrafo precedente]]. È ora possibile verificare la presenza di subvolumi digitando nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando:+~__{{{
sudo btrfs subvolume list -t /mnt
}}}
2. 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.+~__
3. __~+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
}}}+~__
4. __~+montare l'eventuale partizione EFI come al [[#accesso|paragrafo precedente]]+~__
5. --(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
}}}+~__
6. Eseguire il '''chroot''' sul sistema montato digitando:{{{
sudo chroot /mnt
}}}
<>
= Uscita dal sistema =
0. Uscire dal '''chroot''' premendo la combinazione di tasti '''Ctrl+D''' o con il comando:{{{
exit
}}}
0. Se necessario, [[AmministrazioneSistema/ComandiBase#cd|spostarsi]] in `~`:{{{
cd ~
}}}
0. 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
}}}+~__
0. Se presente, smontare anche l'eventuale partizione '''EFI''' (saltare il passaggio se non necessario):{{{
sudo umount /dev/sda2 /mnt/boot/efi/
}}}
0. 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''.