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
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.
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é.