chroot est une commande des systèmes d'exploitation UNIX permettant de changer le répertoire racine d'un processus de la machine hôte. (...En savoir plus)
Installation de base
Construire un «chroot» est très facile sous Debian.
Il faut :
- Installer les paquets nécessaires
aptitude install binutils debootstrap
- Choisir un emplacement
mkdir -p /var/chroot/etch
- Construire le chroot
debootstrap --arch i386 etch /var/chroot/etch
- Ca mouline, récupération d'une «image», décompression et installation des paquets nécessaires
- Pour y entrer:
chroot /var/chroot/etch
NB : La taille d'un chroot ? (espace disque nécessaire)
slink 80 -- potato 95 -- woody 100 -- sarge 138
Configuration
En géneral, il est nécessaire de créer/modifier des points de configuration essentiels (liste non exhaustive)
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.
- les utilisateurs définis dans le chroot
/etc/passwd /etc/groups
- les paramètres de réglages réseaux
/etc/hosts /etc/resolv.conf
- les montages de systèmes de fichiers
/etc/fstab
Montage des pseudos systèmes de fichiers
/proc
- Vérifier dans le système chrooté la présence de /proc sinon le chroot ne risque pas d'être pleinement opérationnel. A priori, le debootstrap depuis la version Debian/Etch intègre nativement le montage de /proc et de /sys
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
Il est aussi conseillé de faire un "bind" de /dev/pts. Ceci permet d'éviter les messages d'erreur du type Must be connected to a terminal ou Cannot access '/dev/pts/0': Aucun fichier ou répertoire de ce type avec l'utilisation de la commande screen.
Dans ce cas, sur le système principal, lancer la commande:
mount --bind /dev/pts /var/chroot/etch/dev/pts
Ajout/suppression de paquets
- Éliminer les paquets non nécessaires (tout dépend donc de l'objectif du chroot)
aptitude install deborphan
deborphan -a
- Et par exemple
aptitude remove --purge telnet pppconfig manpages ipchains ...
liste complémentaire svgalibg1 whiptail
- Ajouter un peu de confort
aptitude install emacs21 sudo locales mc
Utilisation(s)
Plusieurs utilisations sont envisageables, par exemple :
Recompilation d'application dans un contexte autre que la machine qui héberge le chroot (backport, cross-compilation, ...): DebFrBackport
- Mise à jour d'un service en production par basculement de l'ancien service (machine hôte) vers le nouveau (installé dans le chroot)
- Sécurisation d'un service «chrooté» par rapport à la machine hôte (et vice-versa)
Liens externes
http://clx.anet.fr/spip/article.php3?id_article=143 - Le chroot « à la main »
Voir aussi: Debootstrap