Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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.

share|improve this question

2 Answers 2

up vote 10 down vote accepted

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.

share|improve this answer
    
+1, I thought that mount --bind was the answer. But I wasn't sure. –  Dan D. Feb 13 '12 at 9:38
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? –  grawity Feb 13 '12 at 9:41
    
Thanks! I thought about bind mounts for a second, but thought they'd work based on path name rewriting and thus be recursive... –  themel Feb 13 '12 at 9:51

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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.