Al ingresar un chroot a veces es necesario montar / sys y / dev usando -rbind en lugar de -bind para asegurar que todo esté en su lugar cuando alguien va a buscar.
El problema viene al desmontar.
Un simple montaje siempre falla; con los niños montados también parece estar en uso:
$ 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))
Otra posible solución es enumerar los montajes de proc y desmontar cada uno de ellos así:
$ grep /mnt/chroot/sys /proc/mounts | cut -f2 -d" " | sort -r | xargs umount
Sin embargo, esto también falla porque los montajes recursivos no están realmente registrados en el mtab:
/mnt/chroot/sys/kernel/security is not mounted (according to mtab)
Tal vez la solución es realizar un montaje perezoso, pero esto me parece bastante peligroso.
¿Hay una mejor manera de hacer esto que me haya perdido?
mount
unmounting
natecornell
fuente
fuente
/mnt/chroot/sys/kernel/security
está montado en ese punto? ¿Cuál es la salida degrep /sys/kernel/security /proc/mounts
?umount
no necesita su argumento para aparecer en la lista/etc/mtab
. Si lo pasa-n
, no abrirá el archivo en absoluto.Respuestas:
Esto funcionó para mí correctamente: /unix//a/264488/4319 :
Era importante tener los dos primeros comandos como dos comandos separados: no combinar
--rbind
y--make-rslave
en una invocación de montaje.Sin
--make-rslave
el comportamiento no deseado (y no exitoso):umount -l
afectaría también a los viejos puntos de montaje originales,umount -R
se vería afectado por los archivos ocupados (abiertos) en los puntos de montaje antiguos originales. (Muy inesperado ...)fuente
--rbind
y--make-rslave
en la misma invocación de montura:mount --rbind --make-rslave /dev /mnt/test
El crédito va a Gilles por esta respuesta; Gilles señaló en los comentarios de la pregunta que el modificador '-n' ignora el mtab y desmonta todo lo que aparece en / proc / mounts.
Desde la página del manual:
Entonces, para responder mi pregunta sobre cómo desentrañar un montaje --rbind, este es el comando completo que funcionó para mí:
Merci, Gilles!
fuente
mount --rbind / /mnt && umount -n /mnt/dev/shm
(o pts), lo entiendoumount: /mnt/dev/shm: target is busy
.umount -l /mnt
mata el sistema (por ejemplo, sudo falla diciendo que stdin no es un tty). Esto está en un sistema Fedora instalado. Supongo que es un viejo problema mío: unix.stackexchange.com/questions/269695/…Desde util-linux v2.23 (25-abr-2013) el
umount
comando admite la-R, --recursive
opción.Esto es lo que dice la página del manual:
fuente
Gracias por eso. Lo uso en mis scripts para desmontar todo el árbol chroot: (Asegúrese de configurar $ MNT en consecuencia)
fuente