У меня была эта проблема с папкой в файловой системе btrfs. Проверка точек монтирования и lsof - это обычные вещи, которые нужно искать. В моем случае это было повреждение, вызванное старой ошибкой, так как исправлено:
Нормальные вещи для проверки:
- Lsof + D <путь> - Это будет л я ев т всех ö пера ф Ильз. Вы не можете удалить папку, содержащую открытые файлы, хотя обычно это приводит к несколько иной ошибке: «Устройство или ресурс занят». Обратите внимание, что если вы пропустите «+ D <путь>», lsof покажет список всех папок во всех файловых системах, что приведет к потере времени. ;)
- mount : Это покажет вам в настоящее время смонтированные файловые системы. Вы не можете удалить активно смонтированную точку монтирования или ее родительские папки.
- Подсписок btrfs <путь> : Подобно точке монтирования, вы не можете удалить подобъем btrfs, кроме как с помощью команды btrfs: btrfs subvolume delete <путь> .
Коррупция Обходной путь
В случае повреждения, когда это не может быть легко исправлено, основным обходным решением является резервное копирование, форматирование файловой системы, а затем восстановление (исключая неверные данные). В зависимости от того, сколько данных у вас в файловой системе, это может быть рутиной. : - /
В моем случае проблемная папка была внутри подобъема, так что я смог сделать вышеописанное, но удалив только подобъем вместо всей файловой системы. Я сделал резервную копию своих данных и удалил подобъем: btrfs sub del <subvolume-path> . Затем я смог восстановить в новый том, оставив проблемную папку.
Коррупция i_size
Причиной в моем случае было обнаружено повреждение i_size , где он был ненулевым. Btrfs использует i_size, чтобы указать, пуста ли папка. Чтобы проверить это, запустите:
stat -c %s <foldername>
I_size пустой папки в btrfs должен быть нулевым. В ext это обычно 4к.
Ссылки по теме:
https://btrfs.wiki.kernel.org/index.php/Problem_FAQ#I_cannot_delete_an_empty_directory
rm -r
из терминала? Вы пробовали с ответами на этот пост ?