[chroot] Faut-il monter le dossier /dev de l'installation principale ?

Bonjour à tous,

Je bricole avec “chroot” et j’ai des problèmes si je ne monte pas le dossier “/dev/” de l’installation principale dans l’installation chrootée.

$ sudo vim /etc/hostname 
sudo: pas de tty présent et pas de programme askpass spécifié

J’utilise un script pour me connecter dessus et monter automatiquement les dossiers qu’il me faut :

#!/bin/bash

cd /dossier/de/mon/chroot/debian-stretch
sudo mount --bind /proc proc
sudo mount --bind /sys sys
sudo mount --rbind /dev dev
sudo chroot . /bin/bash
sudo umount sys
sudo umount proc
sudo umount dev

Ça marche. Par contre, ça me pose d’autres problèmes quand je quitte l’installation chrootée car il est parfois impossible de démonter le dossier “/dev/”.

Y a-t-il une solution élégante à ce problème ?

Merci d’avance

Salut,
Chacun son chemin, chacun sa…root :joy:

Depuis un live-cd, je fais comme ça

user@debian:~$ sudo mkdir /mnt/chroot

user@debian:~$ sudo mount /dev/sda1 /mnt/chroot
user@debian:~$ sudo mount --bind /dev/ /mnt/chroot/dev
user@debian:~$ sudo mount -t proc /proc /mnt/chroot/proc

user@debian:~$ sudo mount -t sysfs /sys /mnt/chroot/sys

user@debian:~$ sudo chroot /mnt/chroot
root@debian:/#

1 J'aime

Depuis que /dev est un devtmpfs (instance unique de tmpfs spécialement pour /dev), on n’est plus obligé de monter le /dev/ du système d’origine en bind. On peut le monter à nouveau, comme /proc et /sys d’ailleurs :

mount -t devtmpfs udev /dev

Mais ça ne change rien au problème que des processus lancés dans le chroot peuvent utiliser /dev et rester résidents. Il me semble que j’ai eu le cas avec dbus qui était lancé par une application graphique. En tuant ces processus, on pouvait démonter /dev.
Note qu’on peut faire démontage “paresseux” d’un système de fichiers “occupé” avec l’option --lazy. Il n’est pas vraiment démonté tant qu’il reste occupé mais n’apparaît plus dans l’arborescence.

Merci pour vos réponses.

Mais du coup, si je comprends bien, difficile de faire autrement à moins de démonter avec l’option “lazy”…

Faire autrement que quoi ?

Ce que je voulais dire, c’est qu’il n’y a pas de moyen de monter le “/dev/” de la machine principale sans que ça coince quand on veut quitter l’installation “chrootée”.

Je sais pas si c’est vraiment gênant cela dit. J’avais l’impression que ce n’était pas “propre” qu’il reste des montages visibles même après avoir quitté le “chroot”.

Comme je l’ai déjà écrit, il faut tuer les processus qui utilisent le /dev du chroot avant de le démonter.