====== Chroot ======
* [[https://doc.ubuntu-fr.org/schroot]]
* [[https://wiki.debian.org/Schroot]]
* [[https://wiki.debian.org/SchrootPackaging]]
* [[https://wiki.debian.org/fr/Debootstrap]]
* [[https://kevingoodsell.github.io/2011-06-19/debian-chroots-with-schroot.html]]
Installer les paquets ''schroot debootstrap''.
Préparer le répertoire où créer le chroot :
sudo mkdir buster
sudo debootstrap --include=sudo,zsh,vim oldstable ./buster http://ftp.fr.debian.org/debian/
Commenter la ligne ''/tmp'' dans ''/etc/schroot/default/fstab''.
Mettre dans ''/etc/schroot/default/copyfiles'' :
/etc/resolv.conf
/etc/passwd
/etc/shadow
/etc/group
/etc/hosts
/etc/hostname
Éditer le fichier ''/etc/schroot/schroot.conf'' :
[buster]
description=Debian Buster (oldstable)
directory=/media/linux/chroots/buster
users=philippe
type=directory
Rentrer dans le chroot :
schroot -p -c buster
''-p'' permet de propager les variables d'environnement dans le chroot.
Une fois dans le chroot, si on souhaite avoir un encodage UTF-8 correct :
sudo apt install locales
sudo dpkg-reconfigure locales
# Installer fr_FR.UTF-8
Cela fonctionne grâce à la variable d'environnement ''LANG'' qui vient du système hôte.
Attention, le ''/home'' est bindé sur celui de l'hôte.
Pour lister tous les schroots existants :
schroot -l
Pour lister les sessions existantes :
schroot --all-sessions --list
Pour terminer une sessions existante :
schroot -e -c session:unstable-amd64-sbuild-df2b27bc-f0dd-4fb0-b9fa-a81cc5282766
==== Système de fichiers en lecture seule ====
Pour éviter que les modifications apportées à un schroot soient persistées, il est possible de rajouter dans les configurations:
union-type=overlay
Dans ce cas, les modifications à persister doivent se faire dans le schroot ''source:'' correspondant à utiliser. Si on ne souhaite monter le ''/home'' de l'hôte dans le schroot, il est aussi possible de le retirer du fstab et de créer l'utilisateur dans le schroot source.
==== Changer le répertoire de travail ====
Par défaut, schroot fait des lectures et écritures dans le dossier ''/var/lib/schroot'', notamment pour les schroots en ''union-type=overlay''. Pour changer l'emplacement de ce dossier de travail, il est possible de remplacer tout simplement ''/var/lib/schroot'' par un lien symbolique vers le dossier désiré.