Lors de la saisie d'un chroot, il est parfois nécessaire de monter / sys et / dev en utilisant -rbind au lieu de -bind afin de s'assurer que tout est au bon endroit lorsque quelqu'un cherche.
Le problème survient lors du démontage.
Un simple umount échoue toujours; avec les enfants montés également, il semble être utilisé:
$ umount /mnt/chroot/sys
umount: /mnt/chroot/sys: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
Une autre solution possible consiste à répertorier les montages de proc et à démonter chacun d'eux comme ceci:
$ grep /mnt/chroot/sys /proc/mounts | cut -f2 -d" " | sort -r | xargs umount
Cependant, cela échoue également car les montages récursifs ne sont pas réellement enregistrés dans la mtab:
/mnt/chroot/sys/kernel/security is not mounted (according to mtab)
Peut-être que la solution consiste à effectuer un umount paresseux, mais cela me semble assez dangereux.
Y a-t-il une meilleure façon de faire cela que j'ai raté?
mount
unmounting
natecornell
la source
la source
/mnt/chroot/sys/kernel/security
est monté à ce point? Quelle est la sortie degrep /sys/kernel/security /proc/mounts
?umount
n'a pas besoin que son argument soit répertorié/etc/mtab
. Si vous le réussissez-n
, il n'ouvrira pas du tout le fichier.Réponses:
Cela a fonctionné correctement pour moi - /unix//a/264488/4319 :
Il était important d'avoir les deux premières commandes comme deux commandes distinctes: ne pas combiner
--rbind
et--make-rslave
en une seule invocation de mount.Sans
--make-rslave
, le comportement était indésirable (et non réussi):umount -l
affecterait également les anciens points de montage d'origine,umount -R
serait affecté par les fichiers occupés (ouverts) sous les anciens points de montage d'origine. (Très inattendu ...)la source
--rbind
et--make-rslave
dans la même invocation de montage:mount --rbind --make-rslave /dev /mnt/test
Le mérite revient à Gilles pour cette réponse; Gilles a noté dans les commentaires de la question que le commutateur '-n' ignore le mtab et démonte tout ce qui est répertorié dans / proc / mounts.
Depuis la page de manuel:
Donc, pour répondre à ma question sur la façon de démêler une monture --rbind, voici la commande complète qui a fonctionné pour moi:
Merci, Gilles!
la source
mount --rbind / /mnt && umount -n /mnt/dev/shm
(ou pts), je comprendsumount: /mnt/dev/shm: target is busy
.umount -l /mnt
tue le système (par exemple sudo échoue en disant que stdin n'est pas un tty). C'est sur un système Fedora installé. Je suppose que c'est un vieux problème à moi: unix.stackexchange.com/questions/269695/…Depuis util-linux v2.23 (25-Apr-2013), la
umount
commande prend en charge l'-R, --recursive
option.Voici ce que dit la page de manuel:
la source
Merci pour ça. J'utilise ceci dans mes scripts pour démonter le chroot-tree entier: (Assurez-vous de définir $ MNT en conséquence)
la source