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, 12:50] 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 107: Ligne 121:
      
 ==== Installation du serveur LAMP ==== ==== Installation du serveur LAMP ====
 +
 +=== Installation ===
  
   sudo -s   sudo -s
Ligne 113: Ligne 129:
   apt-get install apache2 mysql-server php5   apt-get install apache2 mysql-server php5
  
 +=== Démarrage automatique du serveur lamp ===
 +
 +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]]