Is it possible to access files "shadowed" by a mount?

19

3

In Linux, is there a way to access files on a mounted filesystem that have been "shadowed" when another file system was mounted over a subdirectory?

E.g.

cd /
mkdir /foo
touch /foo/bar
mount /dev/sda1 /foo
# now, can I still get to /foo/bar on the / filesystem?

The solution of my dreams would not require elevated permissions or be specific to a certain file system, but I'll take whatever scraps I can get without risking a corrupted file system.

themel

Posted 2012-02-13T08:56:27.763

Reputation: 317

Answers

29

You can use the mount command to access the underlying filesystem.

$ mkdir /mnt/root
$ sudo mount --bind / /mnt/root
$ cat /mnt/root/foo/bar

There is no issue with corruption with doing this, but it does require permission to mount the file system.

Paul

Posted 2012-02-13T08:56:27.763

Reputation: 52 173

+1, I thought that mount --bind was the answer. But I wasn't sure. – Dan D. – 2012-02-13T09:38:22.030

1+0.95, I completely forgot about binds being nonrecursive by default. However, last time I bindmounted / elsewhere, I could not umount it without rebooting; might have been some GUI component grabbing it though. Have you tested that? – user1686 – 2012-02-13T09:41:11.503

Thanks! I thought about bind mounts for a second, but thought they'd work based on path name rewriting and thus be recursive... – themel – 2012-02-13T09:51:47.020

5

If you have root, you can mount --move the mounted filesystem on top of a temporary directory, then move it back afterwards.

mkdir /bar
mount --move /foo /bar

Having root also allows accessing the underlying block devices, if any, directly. For ext4, you can use debugfs to export files.

Read-only access can never corrupt the filesystem.


Directories can have handles, or file descriptors, obtained for them. The "current directory" is a handle too, not a path. If you have a handle to a directory, you can access files inside even if that location has been mounted over. This does not need special privileges, only special preparation.

user1686

Posted 2012-02-13T08:56:27.763

Reputation: 283 655