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