This is Gentoo's testing wiki. It is a non-operational environment and its textual content is outdated.

Please visit our production wiki at https://wiki.gentoo.org

Chroot

From Gentoo Wiki (test)
Jump to:navigation Jump to:search
This page is a translated version of the page Chroot and the translation is 81% complete.
Outdated translations are marked like this.
Resources

Chroot (Change root) est un utilitaire système Unix utiliser pour changer le répertoire racine (root) apparent en vue de créer un nouvel environnement logiquement séparé du répertoire racine principal du système. Ce nouvel environnement est aussi connu sous le nom de « prison Chroot » (Chroot jail). Un utilisateur opérant dans la prison ne peut ni voir, ni accéder aux fichiers placés en dehors de l'environnement dans lequel il a été enfermé.

Une des utilisations principales du changement de racine est de créer un système Linux séparé au dessus du système courant dans un but de test ou de compatibilité logicielle. Chroot est souvent considéré comme une alternative légère à la virtualisation car le système peut fonctionner sans la surcharge d'un hyperviseur.

Prérequis

Mettre l'environnement en place

Lorsque l'on crée une nouvelle configuration chroot la première nécessité est de disposer d'un répertoire où le nouvel environnement résidera, par exemple dans /mnt/mychroot :

user $mkdir /mnt/mychroot
user $cd /mnt/mychroot

Pour monter une installation existante à partir d'une partition, la commande suivante peut être utilisée.Assurez-vous de remplacer <DEVICE> dans l’exemple ci-dessous par le "disque" et la partition de l’installation utiliser.

user $mkdir /mnt/mychroot
user $mount /dev/<DEVIC> /mnt/mychroot

Si une installation a été crée antérieurement dans un sous-répertoire de la racine actuelle du fichier système, les étapes citées précédemment peuvent être omises.

Dépaqueter les fichiers système et l'arbre de Portage (nouvelles installations)

Lors de la construction d'une nouvelle installation, l'étape suivante est de télécharger l'archive d'étape 3 et l'archive Portage et de les installer dans l'emplacement de la nouvelle racine. Pour une information plus complète sur ce processus, consulter Downloading the stage tarball and Unpacking the stage tarball dans le manuel Gentoo Handbook.

root #tar xvjpf stage3-*.tar.bz2 -C /mnt/mychroot
root #tar xvjf portage-*.tar.bz2 -C /mnt/mychroot/usr

Configuration

Avant d'entrer dans le nouvel environnement, un certain nombre de répertoires doivent être montés.

root #mount --rbind /dev /mnt/mychroot/dev
root #mount --make-rslave /mnt/mychroot/dev
root #mount -t proc /proc /mnt/mychroot/proc
root #mount --rbind /sys /mnt/mychroot/sys
root #mount --make-rslave /mnt/mychroot/sys
root #mount --rbind /tmp /mnt/mychroot/tmp

Des fichiers de configuration basiques doivent être recopiés de l'hôte, ne recopiez pas make.conf quand vous utilisez une installation existante.

user $cp /etc/portage/make.conf /mnt/mychroot/etc/portage # If you use an existing installation, skip this command.
user $cp /etc/resolv.conf /mnt/mychroot/etc

copypasta option (optional)

It's possible to invoke this command to save time if you're able to copy+paste.

Warning
Do not forgett to change /mnt/mychrooto AND /dev/sda4 for your variables if neccesary!!
root # mkdir /mnt/mychroot && cd /mnt/mychroot && mount /dev/sda4 /mnt/mychroot && mount --rbind /dev /mnt/mychroot/dev && mount --make-rslave /mnt/mychroot/dev && mount -t proc /proc /mnt/mychroot/proc && mount --rbind /sys /mnt/mychroot/sys && mount --make-rslave /mnt/mychroot/sys && mount --rbind /tmp /mnt/mychroot/tmp && chroot /mnt/mychroot /bin/bash

In Chroot environment do not forgett on:

root #source /etc/profile
root #env-update
root #export PS1="(chroot) $PS1"

Utilisation

Une fois ces opérations terminées, entrez dans le nouvel environnement chroot en exécutant ces commandes:

root #chroot /mnt/mychroot /bin/bash
root #env-update
root #source /etc/profile
root #export PS1="(chroot) $PS1"

Lors de la création d'une nouvelle installation, Portage doit être synchronisé pour être sûr que tout est à jour.

root #emerge --sync

Le système est désormais prêt. Vous pouvez installer des logiciels, jouer avec les réglages, tester des paquets expérimentaux et des configurations sans que cela ait le moindre effet sur votre système principal. Pour quitter le nouvel environnement tapez simplement « exit » ou pressez Ctrl + D; vous serez alors ramené dans votre environnement normal. N'oubliez pas de démonter les répertoires que vous aurez montés.

Scripts d'initialisation

Si vous avez souvent besoin de mettre en place un chroot, vous pouvez accélérer le montage des répertoires nécessaire au changement de racine en utilisant un script d'initialisation. Ce script peut être ajouté au niveau d’exécution "default" pour pouvoir le mettre en place automatiquement au démarrage :

FILE /etc/init.d/mychroot
#!/sbin/openrc-run
 
depend() {
   need localmount
   need bootmisc
}
 
start() {
     ebegin "Mounting chroot directories"
     mount -o rbind /dev /mnt/mychroot/dev > /dev/null &
     mount -t proc none /mnt/mychroot/proc > /dev/null &
     mount -o bind /sys /mnt/mychroot/sys > /dev/null &
     mount -o bind /tmp /mnt/mychroot/tmp > /dev/null &
     eend $? "An error occurred while mounting chroot directories"
}
 
stop() {
     ebegin "Unmounting chroot directories"
     umount -f /mnt/mychroot/dev > /dev/null &
     umount -f /mnt/mychroot/proc > /dev/null &
     umount -f /mnt/mychroot/sys > /dev/null &
     umount -f /mnt/mychroot/tmp > /dev/null &
     eend $? "An error occurred while unmounting chroot directories"
}

Si vous utilisez un répertoire ou une partition différent, ajoutez les commandes nécessaires dans start() et changez /mnt/chroot si vous utilisez un autre nom.

Voir aussi