Outils pour utilisateurs

Outils du site


chroot

Ceci est une ancienne révision du document !


Chroot

Installation

chroot est installé de base sur la distribution Debian. Il est probable que ça soit le cas pour les autres distributions GNU/Linux majeures.

En revanche, pour installer une Debian dans un chroot, on va installer debootstrap :

# apt search debootstrap
debootstrap/stable 1.0.89 all
  Installation d'un système Debian de base
 
# apt install debootstrap

On crée le dossier qui va accueillir notre nouvelle racine :

root@laptop:/home/simon# mkdir -p chroot/debian-stretch

Et on lance l'installation d'une Debian Stretch dans le dossier qu'on vient de créer :

root@laptop:/home/simon# debootstrap --arch=amd64 --include=locales-all stretch chroot/debian-stretch http://ftp.be.debian.org/debian/
I: Retrieving InRelease 
I: Retrieving Release 
I: Retrieving Release.gpg 
I: Checking Release signature
I: Valid Release signature (key id 067E3C456BAE240ACEE88F6FEF0F382A1A7B6500)
I: Retrieving Packages 
I: Validating Packages 
I: Resolving dependencies of required packages...
I: Resolving dependencies of base packages...
I: Found additional required dependencies: libaudit-common libaudit1 libbz2-1.0 libcap-ng0 libdb5.3 libdebconfclient0 libgcrypt20 libgpg-error0 liblz4-1 libncursesw5 libsemanage-common libsemanage1 libsystemd0 libudev1 libustr-1.0-1 
I: Found additional base dependencies: dmsetup gnupg-agent libapparmor1 libassuan0 libbsd0 libc-l10n libcap2 libcryptsetup4 libdevmapper1.02.1 libdns-export162 libelf1 libfastjson4 libffi6 libgmp10 libgnutls30 libhogweed4 libidn11 libidn2-0 libip4tc0 libip6tc0 libiptc0 libisc-export160 libksba8 liblocale-gettext-perl liblognorm5 libmnl0 libncurses5 libnetfilter-conntrack3 libnettle6 libnfnetlink0 libnpth0 libp11-kit0 libpsl5 libseccomp2 libsqlite3-0 libtasn1-6 libtext-charwidth-perl libtext-iconv-perl libtext-wrapi18n-perl libunistring0 libxtables12 pinentry-curses xxd 
I: Checking component main on http://ftp.be.debian.org/debian...
(...)
I: Configuring systemd...
I: Base system installed successfully.

Le chroot est maintenant fonctionnel, on peut démarrer bash dedans :

# chroot chroot/debian-stretch /bin/bash 

Pour sortir, on peut simplement faire exit :

# exit

Configurations supplémentaires

On crée un script bash pour lancer le chroot tout en montant les dossier sys et proc :

# vim debian-stretch.sh

Contenu :

#!/bin/bash
 
cd /chemin/vers/ma_racine
sudo mount --bind /proc proc
sudo mount --bind /sys sys
sudo chroot . /bin/bash
sudo umount sys
sudo umount proc

On rend le script exécutable :

# chmod +x debian-stretch.sh

On peut lancer le script :

# ./debian-stretch.sh

Dans une autre fenêtre, on peut tester et regarder le contenu du dossier /sys/ sur la racine principale :

root@laptop:/home/simon/chroot# ls /sys/
block  bus  class  dev	devices  firmware  fs  hypervisor  kernel  module  power

On peut regarder le contenu du dossier /sys/ sur la racine du chroot, avant d'utiliser le script pour se connecter.

root@laptop:/home/simon/chroot# ls debian-stretch/sys/

Et si on lance notre script, on entre dans la racine du chroot et on peut voir que les dossiers /sys/ et /proc/ sont bien montés :

root@laptop:/home/simon/chroot# ./debian-stretch.sh 
root@laptop:/# ls /sys/
block  bus  class  dev	devices  firmware  fs  hypervisor  kernel  module  power
root@laptop:/# ls -l /proc/
total 0
dr-xr-xr-x  9 root             root                           0 oct 10 07:49 1
dr-xr-xr-x  9 root             root                           0 oct 11 11:37 10
dr-xr-xr-x  9 root             root                           0 oct 11 11:37 100
dr-xr-xr-x  9             1000             1000               0 oct 11 11:37 1003
(...)

Sources

chroot.1507736373.txt.gz · Dernière modification : (modification externe)