Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
schroot [Le 01/11/2010, 16:03] 92.150.247.55schroot [Le 12/02/2026, 18:46] (Version actuelle) andykimpe
Ligne 30: Ligne 30:
      
  
-===== Mise place d'un environnement chroot ===== +===== Mise en place d'un environnement chroot ===== 
-  * Création du répertoire :<code>sudo mkdir /chroot</code>+  * Création du répertoire :<code>sudo mkdir /chroot</code>N'importe quel répertoire peut faire l'affaire. L'exemple est donné avec le dossier **/chroot**, à changer à loisir. 
 + 
 +  * Installation d'une distribution (Ubuntu). Pour cela, on récupérera l'ensemble des paquets. Pour du 64 bits :<code>sudo debootstrap --arch amd64 noble /chroot/noble http://fr.archive.ubuntu.com/ubuntu/</code>Ou bien, pour installer l'environnement en 32 bits Debian 12 dernier OS 32 bits :<code>sudo debootstrap --arch i386 bookworm /chroot/bookworm http://ftp.fr.debian.org/debian</code>Après cela, le dossier **/chroot/noble/** contient l'arborescence habituelle de la racine de la distribution Ubuntu Noble 24.04 LTS ou dossier /chroot/bookworm debian 12 stable 32 bits. 
 + 
 +  * Pour conserver les logins utilisateurs, mots de passe, groupes etc du système hôte, ajouter ces lignes au fichier /etc/schroot/default/copyfiles :<code> 
 +/etc/passwd 
 +/etc/shadow 
 +/etc/group 
 +/etc/sudoers 
 +/etc/hosts 
 +/etc/hostname 
 +</code>Pour conserver les dépôts de paquets (NE PAS FAIRE lorsque les distributions sont différentes...), ajouter cette ligne:<code> 
 +/etc/apt/sources.list 
 +</code>
  
-  * Installation d'une distribution (Ubuntu). Pour cela, on récupérera l'ensemble des paquets :<code>sudo debootstrap --arch amd64 lucid /chroot/lucid http://us.archive.ubuntu.com/ubuntu/</code>Ou<code>sudo debootstrap --arch i386 lucid /chroot/lucid http://us.archive.ubuntu.com/ubuntu/</code> 
  
   * [[:tutoriel:comment_modifier_un_fichier|Configuration du fichier]] **/etc/schroot/schroot.conf**<file>   * [[:tutoriel:comment_modifier_un_fichier|Configuration du fichier]] **/etc/schroot/schroot.conf**<file>
-[lucid+[noble
-description=lucid +description=noble 
-directory=/chroot/lucid+directory=/chroot/noble 
 +users=user1,user2,...
 root-groups=root root-groups=root
 root-users=root root-users=root
 type=directory type=directory
-</file> +aliases=default 
-===== Gestion du chroot ===== +</file>Et remplacer "user1", "user2" par les utilisateurs ayant le droit d'utiliser le chroot. La ligne peut être remplacée par "groups=schroot" par exemple, en ajoutant les utilisateurs au groupe "schroot". 
-  * Démarrer un environnement chroot :<code>schroot -b -c lucid</code> +===== Utilisation courante ===== 
-   +  * Pour se connecter dans un environnement chroot et avoir la main en ligne de commande :<code>schroot</code> ou bien, si plusieurs environnements chroot sont installés :<code>schroot -c lucid</code>Pour quitter l'environnement, utiliser les touches **Ctrl+d** ou bien la commande **exit**. 
-Lors du démarrage du chroot, schroot nous donne l'identifiant du chroot, par exemple **lucid-00e8c158-e183-48ad-8407-272808c6b0c6**+ 
 +  * Démarrer un environnement chroot :<code>schroot -b -c lucid</code>Lors du démarrage du chroot, schroot nous donne l'identifiant du chroot, par exemple **lucid-00e8c158-e183-48ad-8407-272808c6b0c6**
  
   * S'identifier dans l'environnement schroot :<code>schroot -r -c lucid-00e8c158-e183-48ad-8407-272808c6b0c6</code>   * S'identifier dans l'environnement schroot :<code>schroot -r -c lucid-00e8c158-e183-48ad-8407-272808c6b0c6</code>
Ligne 52: Ligne 66:
   * Stopper le chroot :<code>schroot -e -c lucid-00e8c158-e183-48ad-8407-272808c6b0c6</code>   * Stopper le chroot :<code>schroot -e -c lucid-00e8c158-e183-48ad-8407-272808c6b0c6</code>
  
-===== Exemple d'utilisation =====+===== Exemple d'utilisation avancée =====
  
-Nous allons installer un serveur [[LAMP|LAMP]] dans un environnement chroot. Le système exploitation hôte sera une distribution ubuntu. Par contre le système inviter sera une distribution debian.+Nous allons installer un serveur [[LAMP|LAMP]] dans un environnement chroot. Le système exploitation hôte sera une distribution ubuntu. Par contre le système invité sera une distribution Debian.
  
 ==== Configuration de schroot ==== ==== Configuration de schroot ====
Ligne 61: Ligne 75:
   * Installation d'une distribution Debian. Pour cela, on récupérera l'ensemble des paquets :   * Installation d'une distribution Debian. Pour cela, on récupérera l'ensemble des paquets :
  
-  debootstrap --arch amd64 lenny /chroot/lenny http://ftp.fr.debian.org/debian/+  debootstrap --arch amd64 squeeze /chroot/squeeze http://ftp.fr.debian.org/debian/
  
   * [[:tutoriel:comment_modifier_un_fichier|Configuration du fichier]] **/etc/schroot/schroot.conf**, on ajoute notre nouvelle distribution debian.   * [[:tutoriel:comment_modifier_un_fichier|Configuration du fichier]] **/etc/schroot/schroot.conf**, on ajoute notre nouvelle distribution debian.
 <file> <file>
-[lenny+[squeeze
-description=lenny +description=squeeze 
-directory=/chroot/lenny+directory=/chroot/squeeze
 root-groups=root root-groups=root
 root-users=root root-users=root
 type=directory type=directory
-script-config=script-lenny+script-config=script-squeeze
 </file> </file>
  
-  * On crée le fichier script-lenny qui a la même structure et que se trouve dans répertoire que script-defaults+  * On crée le fichier script-squeeze qui a la même structure et qui se trouve dans répertoire que script-defaults
  
-  touch /etc/schroot/script-lenny+  touch /etc/schroot/script-squeeze
  
-  * Puis, on édite le fichier **/etc/schroot/script-lenny**+  * Puis, on édite le fichier **/etc/schroot/script-squeeze**
 <file> <file>
 # Default settings for chroot setup and exec scripts. # Default settings for chroot setup and exec scripts.
Ligne 84: Ligne 98:
  
 # Filesystems to mount inside the chroot. # Filesystems to mount inside the chroot.
-FSTAB="/etc/schroot/mount-lenny"+FSTAB="/etc/schroot/mount-squeeze"
 </file> </file>
   * On copie le fichier /etc/schroot/mount-defaults   * On copie le fichier /etc/schroot/mount-defaults
  
-  cp /etc/schroot/mount-defaults /etc/schroot/mount-lenny+  cp /etc/schroot/mount-defaults /etc/schroot/mount-squeeze
  
-  * On comment les lignes dont le montage ne doit pas s'effectuer+  * On commente les lignes dont le montage ne doit pas s'effectuer
 <file> <file>
 # mount.defaults: static file system information for chroots. # mount.defaults: static file system information for chroots.
Ligne 117: Ligne 131:
 === Démarrage automatique du serveur lamp === === Démarrage automatique du serveur lamp ===
  
-Pour démarrer de façon automatique la chroot et tout les services que vous désiré, je vous propose le script téléchargeable ici+Pour démarrer de façon automatique la chroot et tout les services que vous désirez, je vous propose ce script 
 +<code bash> 
 +#!/bin/bash 
 + 
 +#****************************************************************************** 
 +# File : /etc/init.d/schrootlamp 
 +
 +# Auteur : Zarkxe 
 +
 +# Date create : Mon Nov  1 16:01:09 2010 
 +# Description : démarrer de façon automatique la chroot et tout les services 
 +# que vous désiré 
 +#****************************************************************************** 
 + 
 +. /lib/lsb/init-functions 
 + 
 +NAMESCRIPT="schrootlamp" 
 + 
 +do_start() { 
 + 
 + if [ ! -e "/tmp/schroot/$NAMESCRIPT" ]; then 
 + 
 + SCHROOT_ID=$(schroot -b -c lenny) 
 + 
 + schroot -r -c "$SCHROOT_ID" /etc/init.d/mtab.sh  
 + schroot -r -c "$SCHROOT_ID" /etc/init.d/mysql start 
 + schroot -r -c "$SCHROOT_ID" /etc/init.d/apache2 start 
 + schroot -r -c "$SCHROOT_ID" /etc/init.d/exim4 start 
 + 
 + mkdir /tmp/schroot/ 
 + echo "$SCHROOT_ID" >  /tmp/schroot/$NAMESCRIPT 
 + 
 + elif [ -e "/tmp/schroot/$NAMESCRIPT" ]; then 
 + echo "$NAMESCRIPT is already running" 
 + fi 
 +
 + 
 +do_stop() { 
 + 
 + if [ -e "/tmp/schroot/$NAMESCRIPT" ]; then 
 + SCHROOT_ID=$(cat /tmp/schroot/$NAMESCRIPT) 
 + schroot -r -c "$SCHROOT_ID" /etc/init.d/mysql stop 
 + schroot -r -c "$SCHROOT_ID" /etc/init.d/apache2 stop 
 + schroot -r -c "$SCHROOT_ID" /etc/init.d/exim4 stop 
 + schroot -e -c "$SCHROOT_ID" 
 + 
 + rm -R /tmp/schroot/ 
 + elif [ ! -e "/tmp/schroot/$NAMESCRIPT" ]; then 
 + echo "$NAMESCRIPT is not starting" 
 + fi 
 +
 + 
 +case $1 in  
 + start) 
 + log_daemon_msg "Starting configuration" $NAMESCRIPT 
 + if [[ $EUID = 0 ]] 
 + then 
 + do_start 
 + log_end_msg 0 
 + else 
 + log_end_msg 1 
 + echo "You are not root !" 
 +  
 + fi 
 + ;; 
 + stop) 
 + log_daemon_msg  "Stopping configuration" $NAMESCRIPT 
 + if [[ $EUID = 0 ]] 
 + then 
 + do_stop 
 + log_end_msg 0 
 + else 
 + log_end_msg 1 
 + echo "You are not root !" 
 + fi  
 + ;; 
 + restart) 
 + log_daemon_msg  "restarting configuration" $NAMESCRIPT 
 + if [[ $EUID = 0 ]] 
 + then 
 + do_stop 
 + do_start 
 + log_end_msg 0 
 + else 
 + log_end_msg 1 
 + echo "You are not root !" 
 + fi  
 + ;; 
 + status) 
 + if [[ $EUID = 0 ]] 
 + then 
 + if [ ! -e "/tmp/schroot/$NAMESCRIPT" ]; then 
 + echo "$NAMESCRIPT isn't running" 
 + elif [ -e "/tmp/schroot/$NAMESCRIPT" ]; then 
 + SCHROOT_ID=$(cat /tmp/schroot/$NAMESCRIPT) 
 + echo "$NAMESCRIPT is running : $SCHROOT_ID" 
 + fi 
 + else 
 + echo "You are not root !" 
 + fi 
 + ;; 
 +     *) 
 + log_daemon_msg  "./$NAMESCRIPT [start|stop|restart|status]" 
 + ;; 
 +esac 
 +</code>
  
 ===== Voir aussi ===== ===== Voir aussi =====
   * [[chroot|chroot]]   * [[chroot|chroot]]
-  * **(fr)** [[http://ftp.traduc.org/doc-vf/gazette-linux/html/2008/150/lg150-C.html|Virtualiser sans virtualiser]], article sur l'usage de chroot et schroot+  * **(fr)** [[https://ftp.traduc.org/doc-vf/gazette-linux/html/2008/150/lg150-C.html|Virtualiser sans virtualiser]], article sur l'usage de chroot et schroot
   * **(fr)** [[http://cepcasa.info/apt/debootstrap.html|Installer Debian depuis une distribution Debian avec debootstrap]]   * **(fr)** [[http://cepcasa.info/apt/debootstrap.html|Installer Debian depuis une distribution Debian avec debootstrap]]
   * **(en)** [[http://www.debian-administration.org/articles/566|schroot - chroot for any users]]   * **(en)** [[http://www.debian-administration.org/articles/566|schroot - chroot for any users]]