¿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?


2
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.


1
¿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

55
¡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.
Darael
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.