¿Qué hace Linux con los archivos existentes en un punto de montaje?
52
Si intento montar una carpeta que ya tiene archivos, ¿Linux me da un mensaje de error o muestra el sistema de archivos montado y los archivos que ya estaban en la carpeta?
Siempre podría probarlo con algunos archivos de prueba, ¿no?
Chris
Lo haría si pudiera. Simplemente resultó que no tenía nada para probar. Intenté desmontar y montar la unidad en cuestión, pero los resultados no fueron concluyentes porque ambos tenían los mismos archivos.
delgado
¿Hay alguna manera de hacer que la carpeta no se pueda escribir para que los archivos no puedan existir?
endolito el
Respuestas:
33
Simplemente se montará y los archivos desaparecerán, volviendo cuando la carpeta esté desmontada.
¿Qué quieres decir con desaparecer? ¿Continúan existiendo en el servidor y simplemente no se muestran o se eliminan?
delgado
Voy a hacer una revisión rápida, pero creo que se eliminan.
Azz
17
+1 Los archivos son simplemente invisibles mientras el directorio está montado "sobre" ellos. Realmente nunca desaparecen, son simplemente inaccesibles ...
sleske
10
Funciona como una pila, si monta algo más, oculta el contenido anterior. Cuando desmontas, las cosas anteriores se vuelven visibles de nuevo.
vtest
44
Me confunde cómo alguien que dijo "volver cuando la carpeta está desmontada" pudo decir 3 minutos después "Creo que se eliminaron". Afortunadamente para todos los demás, la primera es la realidad aquí.
underscore_d
111
Cuando monta un sistema de archivos en un directorio /mount-point, ya no puede acceder a los archivos /mount-pointdirectamente. Todavía existen, pero /mount-pointahora se refiere a la raíz del sistema de archivos montado, no al directorio que sirvió como punto de montaje, por lo que no se puede acceder al contenido de este directorio, al menos de esta manera. Por ejemplo:
# touch /mount-point/somefile
# ls /mount-point/somefile
/mount-point/somefile
# mount /dev/something /mount-point
# ls /mount-point/somefile
ls: cannot access /mount-point/somefile: No such file or directory
Hay formas de obtener una vista combinada del sistema de archivos montado y los datos que ya estaban presentes, pero necesita una capa adicional llamada sistema de archivos de unión .
Bajo Linux, hay una manera de ver los archivos ocultos. Puede usar mount --bindpara obtener otra vista del sistema de archivos donde está el punto de montaje. Por ejemplo
mount --bind / /other-root-view
Verá todos los archivos en el sistema de archivos raíz en /other-root-view.
# cat /other-root-view/etc/hostname
darkstar
En particular, /mount-pointahora será accesible como /other-root-view/mount-point, y como /other-root-view/mount-pointno es un punto de montaje, puede ver su contenido allí:
# ls /mount-point/somefile
ls: cannot access /mount-point/somefile: No such file or directory
# ls /other-root-view/mount-point/somefile
/other-root-view/mount-point/somefile
¡Gilles, esta respuesta me salvó el trasero cuando necesitaba obtener algunas grabaciones de asteriscos que se guardaron debajo de un punto de montaje NSF! Siempre pensé que --bind tenía la misma perspectiva que el usuario. ¡Gracias!
andyortlieb
¿Qué pasa con los directorios? Si monté en y /mount-point/1/luego monté otro sistema de archivos /mount-point/, ¿puedo acceder /mount-point/1/?
CMCDragonkai
@CMCDragonkai Sí, indirectamente usando un montaje de enlace como se describe en mi respuesta.
Gilles 'SO- deja de ser malvado'
Giles, esta es una técnica brillante y me ha ayudado a analizar lo que hay en mi propio sistema. También ha ayudado con otra pregunta, que es cómo verificar el uso de todos los directorios raíz sin atravesar puntos de montaje. Solución: mkdir /r; mount --bind / /r; du -sh /r/*. Gracias
Manngo
@Manngo para referencia futura, esto no es necesario. du -x(equivalente a du --one-file-system) lo habría hecho sin la necesidad de --bindtravesuras.
Respuestas:
Simplemente se montará y los archivos desaparecerán, volviendo cuando la carpeta esté desmontada.
fuente
Cuando monta un sistema de archivos en un directorio
/mount-point
, ya no puede acceder a los archivos/mount-point
directamente. Todavía existen, pero/mount-point
ahora se refiere a la raíz del sistema de archivos montado, no al directorio que sirvió como punto de montaje, por lo que no se puede acceder al contenido de este directorio, al menos de esta manera. Por ejemplo:Hay formas de obtener una vista combinada del sistema de archivos montado y los datos que ya estaban presentes, pero necesita una capa adicional llamada sistema de archivos de unión .
Bajo Linux, hay una manera de ver los archivos ocultos. Puede usar
mount --bind
para obtener otra vista del sistema de archivos donde está el punto de montaje. Por ejemploVerá todos los archivos en el sistema de archivos raíz en
/other-root-view
.En particular,
/mount-point
ahora será accesible como/other-root-view/mount-point
, y como/other-root-view/mount-point
no es un punto de montaje, puede ver su contenido allí:fuente
/mount-point/1/
luego monté otro sistema de archivos/mount-point/
, ¿puedo acceder/mount-point/1/
?mkdir /r; mount --bind / /r; du -sh /r/*
. Graciasdu -x
(equivalente adu --one-file-system
) lo habría hecho sin la necesidad de--bind
travesuras.