En Linux, ¿hay alguna manera de acceder a los archivos en un sistema de archivos montado que se ha "sombreado" cuando otro sistema de archivos se montó sobre un subdirectorio?
P.ej
cd /
mkdir /foo
touch /foo/bar
mount /dev/sda1 /foo
# now, can I still get to /foo/bar on the / filesystem?
La solución de mis sueños no requeriría permisos elevados o ser específico para un determinado sistema de archivos, pero tomaré los desechos que pueda obtener sin arriesgar un sistema de archivos dañado.
mount --bind
era la respuesta. Pero no estaba seguro.Si tiene root, puede
mount --move
colocar el sistema de archivos montado en la parte superior de un directorio temporal y luego volverlo a mover.Tener root también permite acceder a los dispositivos de bloque subyacentes, si los hay, directamente. Para ext4, puede usar
debugfs
para exportar archivos.El acceso de solo lectura nunca puede dañar el sistema de archivos.
Los directorios pueden tener identificadores o descriptores de archivo, obtenidos para ellos. El "directorio actual" también es un identificador, no una ruta. Si tiene un identificador para un directorio, puede acceder a los archivos dentro, incluso si esa ubicación se ha montado. Esto no necesita privilegios especiales, solo preparación especial.
fuente