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

Я пытаюсь настроить общий домашний каталог для двух установок 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

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, не работает.

  • Как найти мусорную корзину Nautilus в файловой системе
  • Как «rm» в файловой системе NTFS отличается от собственной реализации Windows?
  • Восстановить скрипт корзины не работает
  • Не удается удалить одно и то же имя папки дважды
  • Каковы каталоги .Trash-500 и .Trash-1000?
  • Не удалось удалить файл, что бы я ни делал
  • Где файлы идут, когда выдается команда rm?
  • Interesting Posts

    ping работает, но завиток не

    трансляция / web iptables vpn netns, доступ к сетевому приложению netns из локальной сети

    Будет ли Debian Wheezy (стабильный) автоматически обновляться до Джесси, как только Джесси станет стабильным релизом?

    извлекать блоки текста из XML-файла

    Загрузка и переименование FTP

    Экранная сессия работает от имени root? (это не должно быть) node.js

    Как использовать GNOME Keyring с Python Keyring в виртуальной среде?

    Fedora 20 kde меняет раскладку клавиатуры в Латинскую Америку?

    Front-end для `~ / .config / mimeapps.list`

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

    как переопределить logrotate для конкретной услуги upstart

    Как протоколировать команды в «sudo su -»?

    Как удалить ~ обозначенные файлы из моего каталога с помощью команды linux?

    Выберите наиболее подходящее имя файла

    Есть ли какой-нибудь анализируемый процесс мониторинга?

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