Apakah mungkin untuk menghapus file ketika sistem file lain dipasang di jalan?

18

Baru saja menulis jawaban tentang memindahkan / usr ke partisi baru saya bertanya-tanya tentang menghapus file setelah partisi baru dipasang. Untuk menggunakan contoh dari pertanyaan, apakah mungkin untuk memasang partisi baru /usrdan kemudian menghapus semua file di bawah /usrpada partisi root untuk membebaskan ruang pada partisi root.

Hamish Downer
sumber

Jawaban:

24

Tidak secara langsung , tetapi ada jalan keluarnya: mount --bindadalah teman Anda:

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

Lihat juga man mount- mencari "bind mounts".

Nicholas Knight
sumber
Jawaban luar biasa - Saya hanya akan menambahkan tautan ke versi online dari halaman manual mount .
Hamish Downer