linux:chroot

Ceci est une ancienne révision du document !


Chroot

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

  • linux/chroot.1643559627.txt.gz
  • Dernière modification : 2022/01/30 17:20
  • de phsw