Невозможно удалить файлы для мусора в подключенной файловой системе

Я пытаюсь настроить общий домашний каталог для двух установок Linux, и поэтому я использую bindmounts. Мой пользователь назван dbz а его домашний каталог – /home/dbz . У меня также есть общий каталог /home/shared где хранятся мои общие файлы (эта папка также принадлежит пользователю dbz ).

Я монтирую другие каталоги из этого общего каталога в свой домашний каталог, используя привязку:

 mount -B /home/shared/work /home/dbz/work 

Это решение решает мои потребности, и единственная проблема, которая у меня есть, и я не знаю, как ее решить – когда я пытаюсь удалить файл или каталог из смонтированного каталога, я не могу удалить его для мусора, возможно только постоянное удаление. Например:

  • удаление файла /home/shared/work/test.txt : ОК, поскольку удаление происходит прямо из каталога, в котором находится файл test.txt ;
  • удаление файла /home/dbz/work/test.txt : НЕ МОЖЕТ, потому что … кстати, потому что что? У bind-mounts есть некоторые ограничения на удаление файлов?

Наконец , проблема была отправлена ​​на bugzilla.kernel.org

  • Использование корзины с Mutt: имеет ли смысл?
  • В соответствии с тем, что GNOME очищает мусор «через 30 дней»?
  • Где файлы идут, когда выдается команда rm?
  • Каковы каталоги .Trash-500 и .Trash-1000?
  • Где корзина для корневого раздела?
  • mutt: отметьте как прочитанное и удаляемое
  • Восстановить скрипт корзины не работает
  • Как отключить корзину в KDE
  • 3 Solutions collect form web for “Невозможно удалить файлы для мусора в подключенной файловой системе”

    Это проблема ядра Linux. Он не смотрит на настоящий супер-блок исходной и целевой файловой систем:

     17926 rename("d1/foo", "d2/foo") = -1 EXDEV (Invalid cross-device link) 

    Похоже, проблема в do_rename() ( fs/namei.c ):

      error = -EXDEV; if (oldnd.mnt != newnd.mnt) goto exit2; 

    *вздох*

    Чтобы создать каталог мусора, вы должны иметь возможность сделать .Trash_<uid> на точке монтирования (по крайней мере, на Ubuntu при удалении из nautilus, ваш дистрибутив может использовать другой каталог). Если этот каталог не может быть создан, потому что родительский dbz не может быть dbz , вы не сможете выполнить резервное копирование.

    Не обязательно иметь родительский каталог, который можно .Trash_<uid> , достаточно создать .Trash_<uid> как root, а затем dbz его на dbz .

    Мне несколько легче проверить, что происходит с созданием файла мусора, используя gvfs-trash , которая фактически дает ошибку, если файл не может быть поврежден. Используйте что-то вроде:

     touch /home/dbz/work/test.txt strace gvfs-trash /home/dbz/work/test.txt 2>&1 | grep .Trash | grep mkdir 

    чтобы увидеть, какую директорию он пытается сделать.

    У вас есть символическая ссылка для любого из родительских каталогов каталога Trash в другую файловую систему. У меня была ~/.local/share/Trash soft, связанная с каталогом в другой файловой системе, что привело к этой ошибке. Конечно, он все равно должен работать, но работать – это держать корзину в одной и той же файловой системе.

    Кроме того, я обнаружил, что trash Ubuntu из пакета trash-cli работает с этой символической gvfs-trash , тогда как gvfs-trash который используется приложениями gnome, не работает.

    Interesting Posts

    Почему корневой каталог на веб-сервере помещается по умолчанию в «/ var / www»?

    Использование X11 в качестве фоторамки

    Невозможно обновить новое ядро ​​для CentOS 7, хотя на сервере достаточно места

    Как перечислить n-й самый младший файл (без разбора ls!)

    Отслеживание изменений и разработка встроенных Linux

    Синергия: подключение не удалось подключиться к серверу: несовместимый клиент 1.3

    Как добавить номер строки, следуя вкладке в текстовый файл

    Минималистичный Framebuffer, показывающий только текст и прогресс

    У меня есть переменная окружения для LANG, установленная в ~ / .profile, но она не устанавливается

    Как получить уведомление, когда устройство USB было подключено?

    Что такое ионита `none: prio 0`, эквивалентная?

    Использовать sudo из другой программы

    как я могу создать / применить файл политики selinux, на redhat 7?

    Пользовательское приложение X Сценарий запуска RCNG

    Полностью доступ к структуре меню DVD-фильмов: любая альтернатива VLC?

    Linux и Unix - лучшая ОС в мире.