Intenté lograr algo similar, pero la respuesta de Ephemient no explicó la semántica del método. Falló para mí y, por lo tanto, hice la misma pregunta anteriormente aquí en Unix. Después de un comentario, lo descubrí por mi cuenta y lo respondí. Esta es una versión editada de mi respuesta para encajar en este contexto aquí. Eliminé mi otra pregunta (y respuesta) a favor de esta.
Esto es lo que estaba tratando de hacer:
Caso de ejemplo
Monturas:
/dev/sda1 on / type ext4 (rw)
/dev/sdb1 on /data type ext4 (rw)
/data/home on /home type none (rw,bind)
Después de montar /
tengo una carpeta /home/joe
para el usuario joe
. Una vez que se monta la otra ubicación ( /data
), tengo el conjunto completo de carpetas de inicio disponibles, por lo que estoy enganchándolas en su lugar ( /data/home on /home
). Hay una carpeta /data/home/joe
, por lo que siempre que el montaje sea /dev/sdb1
exitoso, obtendrá el contenido /data/home/joe
, de lo contrario, volverá a /home/joe
( /dev/sda1
¡ encendido !).
Cuando tiene éxito, ¿cómo puedo acceder a los contenidos originales de /home/joe
(on /dev/sda1
!) En lugar de los montados en su lugar /data/home/joe
?
Solución
Basado en un comentario del comentario de Patrick sobre mi pregunta y la solución por ephemient (respuesta aceptada aquí), se me ocurrió lo siguiente.
Que es aparentemente posible mount --bind
(o mount -o bind
la) carpeta principal ( esta es la parte crucial ) de un aprieto a montar en otro lugar y con ello acceder a los contenidos originales. Entonces, para mi caso de ejemplo, en lugar de intentar:
mount --bind /home/joe /home/joe/underneath
# or ...
mount --bind /home /home/joe/underneath
(es decir, montar las ubicaciones ya montadas en otro lugar) Tuve que:
test -d /.ROOT || mkdir /.ROOT
mount --bind / /.ROOT
mount --bind /.ROOT/home/joe /home/joe/underneath
Entonces esto es lo que Patrick quiso decir en su comentario
A menos que esté volviendo a montar /
(root), esa respuesta debería funcionar bien.
Siempre que tenga una carpeta principal para la ubicación montada en enlace disponible, funcionará, aunque con una indirección como se muestra arriba. Si montaste algo por encima, /
no tienes suerte, ya que no hay una carpeta principal para /
.
mount --bind
, pero solo obtuve algunas ideas intrincadas que seguramente se romperían cuando lo necesitara. Esto hace exactamente lo que necesito e incluso puede entrar como una montura permanente. Gracias