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:14] zarkxeschroot [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 ce script : +Pour démarrer de façon automatique la chroot et tout les services que vous désirez, je vous propose ce script :
 <code bash> <code bash>
 #!/bin/bash #!/bin/bash
Ligne 141: Ligne 155:
  SCHROOT_ID=$(schroot -b -c lenny)  SCHROOT_ID=$(schroot -b -c lenny)
  
- schroot -r -c $SCHROOT_ID /etc/init.d/mtab.sh  + 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/mysql start 
- schroot -r -c $SCHROOT_ID /etc/init.d/apache2 start + schroot -r -c "$SCHROOT_ID/etc/init.d/apache2 start 
- schroot -r -c $SCHROOT_ID /etc/init.d/exim4 start+ schroot -r -c "$SCHROOT_ID/etc/init.d/exim4 start
  
  mkdir /tmp/schroot/  mkdir /tmp/schroot/
- echo $SCHROOT_ID >  /tmp/schroot/$NAMESCRIPT+ echo "$SCHROOT_ID>  /tmp/schroot/$NAMESCRIPT
  
  elif [ -e "/tmp/schroot/$NAMESCRIPT" ]; then  elif [ -e "/tmp/schroot/$NAMESCRIPT" ]; then
Ligne 158: Ligne 172:
  if [ -e "/tmp/schroot/$NAMESCRIPT" ]; then  if [ -e "/tmp/schroot/$NAMESCRIPT" ]; then
  SCHROOT_ID=$(cat /tmp/schroot/$NAMESCRIPT)  SCHROOT_ID=$(cat /tmp/schroot/$NAMESCRIPT)
- schroot -r -c $SCHROOT_ID /etc/init.d/mysql stop + 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/apache2 stop 
- schroot -r -c $SCHROOT_ID /etc/init.d/exim4 stop + schroot -r -c "$SCHROOT_ID/etc/init.d/exim4 stop 
- schroot -e -c $SCHROOT_ID+ schroot -e -c "$SCHROOT_ID"
  
  rm -R /tmp/schroot/  rm -R /tmp/schroot/
Ligne 178: Ligne 192:
  else  else
  log_end_msg 1  log_end_msg 1
- echo "You are no root !"+ echo "You are not root !"
   
  fi  fi
Ligne 190: Ligne 204:
  else  else
  log_end_msg 1  log_end_msg 1
- echo "You are no root !"+ echo "You are not root !"
  fi   fi 
  ;;  ;;
Ligne 202: Ligne 216:
  else  else
  log_end_msg 1  log_end_msg 1
- echo "You are no root !"+ echo "You are not root !"
  fi   fi 
  ;;  ;;
Ligne 215: Ligne 229:
  fi  fi
  else  else
- echo "You are no root !"+ echo "You are not root !"
  fi  fi
  ;;  ;;
Ligne 226: Ligne 240:
 ===== 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]]