Having just written an answer about moving /usr to a new partition I was wondering about deleting files once a new partition has been mounted. To use the example from the question, is it possible to mount a new partition on /usr and then delete all the files under /usr on the root partition to free up space on the root partition.
Asked
Active
Viewed 1.3k times
25
Hamish Downer
- 19,506
1 Answers
34
Not directly, but there is a way around that: mount --bind is your friend:
# Existing directory with a couple files in it
root@nkubuntu1004:~/test# ls testdir
bar foo
# Mount a filesystem over existing directory
root@nkubuntu1004:~/test# mount -o loop testfs testdir
root@nkubuntu1004:~/test# ls testdir
lost+found
# Bind mount root filesystem to another directory
root@nkubuntu1004:~/test# mount --bind / bindmnt
# Can now get to contents of original directory through the bind mount
root@nkubuntu1004:~/test# ls bindmnt/root/test/testdir/
bar foo
# Remove a file
root@nkubuntu1004:~/test# rm bindmnt/root/test/testdir/bar
root@nkubuntu1004:~/test# ls bindmnt/root/test/testdir/
foo
root@nkubuntu1004:~/test# ls testdir
lost+found
# Unmount filesystem
root@nkubuntu1004:~/test# umount testdir
# Observe the change having taken effect
root@nkubuntu1004:~/test# ls testdir
foo
root@nkubuntu1004:~/test#
See also man mount -- search for "bind mounts".
Nicholas Knight
- 2,496