web-dev-qa-db-ja.com

別のファイルシステムがパスにマウントされているときにファイルを削除することは可能ですか?

/ usrを新しいパーティションに移動する についての答えを書いたばかりなので、新しいパーティションがマウントされたらファイルを削除することを考えていました。質問の例を使用するには、/usrに新しいパーティションをマウントし、ルートパーティションの/usrの下にあるすべてのファイルを削除して、ルートパーティションのスペースを解放することができます。

17
Hamish Downer

直接ではありませんが、それを回避する方法があります:mount --bindはあなたの友達です:

# 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#

man mountも参照してください-「バインドマウント」を検索してください。

23
Nicholas Knight