Можно ли удалять файлы, когда по пути смонтирована другая файловая система?

18

После того, как я написал ответ о перемещении / usr в новый раздел, я задумался об удалении файлов после монтирования нового раздела. Чтобы использовать пример из вопроса, возможно ли смонтировать новый раздел /usrи затем удалить все файлы /usrв корневом разделе, чтобы освободить место в корневом разделе.

Хэмиш Даунер
источник

Ответы:

24

Не напрямую , но есть способ обойти это: 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- поиск "bind mounts".

Николас Найт
источник
Отличный ответ - я просто добавлю ссылку на онлайн-версию страницы руководства по монтированию .
Хэмиш Даунер