Dans un précédent billet, nous avons créé un linux de base. Son arborescence a maintenant besoin d'être rattachée à la machine sur laquelle elle va s'exécuter. Pour cela nous allons répliquer les pseudo-systèmes de fichier /dev /proc et /sys déjà présents sur la machine :

  • /proc contient les infos sur les processus en train de tourner
  • /sys contient des informations système sur comment créer les périphériques (numéros de séries...)
  • /dev contient les fichiers d'accès aux périphériques eux-même (recréés dynamiquement par udev à chaque redémarage à partir des infos de /sys)

Le fichier complet :

bindir=$(dirname $0)
root_dir=$bindir/root_dir

montePointsPourChroot() {
  sudo echo -ne « mounting pseudo filesystems: »
  for pseudo in dev proc sys
  do
    sudo mount –bind /$pseudo $root_dir/$pseudo
    echo -ne  » $pseudo »
  done
  echo «  »
}

demontePointsPourChroot() {
  echo -ne « unmounting pseudo filesystems: »
  for pseudo in dev/pts proc sys dev
  do
    sudo umount -l $root_dir/$pseudo
    echo -ne  » $pseudo »
  done
  echo «  »
}

montePointsPourChroot

echo « /root/.bashrc va lancer $root_dir/init_chroot.sh »
sudo su -c « chroot $root_dir /bin/bash »
sudo su -c « chroot $root_dir /arrete_chroot.sh »

demontePointsPourChroot