Traduction(s): Deutsch - English - Español - Français - Italiano


chroot est une opération sur les systèmes d'exploitation UNIX permettant de changer le répertoire racine apparent d'un processus de la machine hôte et ses processus fils. (...En savoir plus)

Installation de base

Construire un «chroot» est très facile sous Debian.

Il faut :

 apt-get install binutils debootstrap

 mkdir -p /srv/chroot/wheezy

 debootstrap --arch i386 wheezy /srv/chroot/wheezy http://http.debian.net/debian

Conseil : avant de rentrer dans votre chroot tout neuf et de le modifier, il peut être pertinent d'en effectuer une sauvegarde (une archive .tar.gz par exemple). Le chroot étant souvent destiné à expérimenter, il n'est pas rare de vouloir repartir de zéro après une mauvaise manipulation. Si c'est le cas vous n'aurez alors qu'à désarchiver votre sauvegarde et vous gagnerez du temps.

  chroot /srv/chroot/wheezy

La taille d'un chroot

L'espace disque nécessaire constaté est le suivant :

Version

Taille

slink

80 Mo (archi i386 ? à confirmer)

potato

95 Mo (archi i386 ? à confirmer)

woody

100 Mo (archi i386 ? à confirmer)

sarge

138 Mo (archi i386 ? à confirmer)

squeeze

213 Mo (archi amd64)

wheezy

238 Mo (i386)

233 Mo (amd64)

Configuration

En général, il est nécessaire de créer/modifier des points de configuration essentiels (liste non exhaustive)

Créez un fichier /usr/sbin/policy-rc.d DANS LE CHROOT ainsi dpkg ne lancera pas de démon à moins que vous ne le souhaitiez. Cette exemple évite le démarrage de tous les démons dans le chroot.

chroot /srv/chroot/wheezy
cat > ./usr/sbin/policy-rc.d <<EOF
#!/bin/sh
exit 101
EOF
chmod a+x ./usr/sbin/policy-rc.d

La commande ischroot est boguée et ne détecte pas qu'elle est exécutée dans un chroot (685034). Plusieurs paquets dépendent de ischroot pour déterminer un comportement correct dans un chroot et fonctionneront mal lors d'une mise à jour si ce n'est pas corrigé. La meilleure manière de corriger cela est de remplacer ischroot par la commande /bin/true.

dpkg-divert --divert /usr/bin/ischroot.debianutils --rename /usr/bin/ischroot
ln -s /bin/true /usr/bin/ischroot

La configuration d'un chroot étant relativement statique et très spécifique, on peut éventuellement se dispenser des commandes de «haut-niveau» et modifier directement les fichiers concernés.

  /etc/passwd
  /etc/groups

  /etc/hosts
  /etc/resolv.conf

  /etc/fstab

Montage des pseudos systèmes de fichiers

/proc

 proc on /proc type proc (rw)
 sysfs on /sys type sysfs (rw)

/dev/pts

D'après http://lists.debian.org/debian-user-french/2008/05/msg00351.html

Dans ce cas, sur le système principal, lancer la commande:

 mount --bind /dev/pts /srv/chroot/wheezy/dev/pts

Automatiser les montages

Plus généralement, et pour reprendre ce qui a été vu précédement, le fichier /etc/fstab du système principal pourrait ressembler à ça :

# grep chroot /etc/fstab
/dev /srv/chroot/wheezy/dev auto bind 0 0
/dev/pts /srv/chroot/wheezy/dev/pts auto bind 0 0
/proc /srv/chroot/wheezy/proc auto bind 0 0

Le mount sur le système principal serait :

# mount | grep chroot
/dev on /srv/chroot/wheezy/dev -type none (rw, bind)
/dev/pts on /srv/chroot/wheezy/dev/pts kind none (rw, bind)
/proc on /srv/chroot/wheezy/proc type none (rw, bind)

Ajout/suppression de paquets

apt-get install deborphan

deborphan -a

apt-get remove --purge telnet manpages pppconfig ipchains ...

liste complémentaire svgalibg1 whiptail

apt-get install emacs23 local mc

Utilisations

Plusieurs utilisations sont envisageables, par exemple :

Liens externes