Невозможно удалить каталог на btrfs


1

В файловой системе btrfs есть объект под названием «????????? ??????» который, вероятно, какой-то неправильно удаленный или скопированный временный файл или каталог. И которые нельзя удалить обычными командами: rm, rm -d:

[root@localhost sessions]# rm -d \?\?\?\?\?\?\?\?\?\ \?\?\?\?\?\?/
rm: cannot remove ‘????????? ??????/’: Directory not empty
[root@localhost sessions]# rm -dr \?\?\?\?\?\?\?\?\?\ \?\?\?\?\?\?/
rm: descend into directory ‘????????? ??????/’? y
rm: remove directory ‘????????? ??????/’? y
rm: cannot remove ‘????????? ??????/’: No such file or directory
[root@localhost sessions]# rm \?\?\?\?\?\?\?\?\?\ \?\?\?\?\?\?/
rm: cannot remove ‘????????? ??????/’: Is a directory
[root@localhost sessions]# file \?\?\?\?\?\?\?\?\?\ \?\?\?\?\?\?/
????????? ??????/: directory

Как такие объекты должны быть удалены?

ОБНОВЛЕНИЕ: ОС и оболочка:

Linux 4.0.4-2-ARCH # 1 ПРЕДСТАВЛЕНИЕ SMP Пт 22 мая 03:19:32 UTC 2015 i686   GNU / Linux

GNU bash, версия 4.3.39 (1) -релиз (i686-pc-linux-gnu)

UPDATE2:

[root@localhost sessions]# rm -fr \?\?\?\?\?\?\?\?\?\ \?\?\?\?\?\?/
[root@localhost sessions]# ls
????????? ??????   backup-9.session
[root@localhost sessions]# lsattr \?\?\?\?\?\?\?\?\?\ \?\?\?\?\?\?/
[root@localhost sessions]# 

Update3:

[root@localhost sessions]# echo $LANG
en_US.UTF-8
[root@localhost sessions]# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

UPDATE4:

[root@localhost sessions]# ls -la
ls: ????????? ??????: No such file or directory
total 23760
drwxr-xr-x 1 al users       0 Aug 13  2014 ????????? ??????
drwxr-xr-x 1 al users       0 Jun  7 05:53 .
drwx------ 1 al users       0 Jun  8 05:06 ..
-rw-r--r-- 1 al users  274557 May 24 18:58 backup-11.session

UPDATE5:

[root@localhost sessions]# find . -exec rm -fr {} \;
rm: refusing to remove ‘.’ or ‘..’ directory: skipping ‘.’
[root@localhost sessions]# ls -la
ls: ????????? ??????: No such file or directory
total 0
drwxr-xr-x 1 al users 0 Aug 13  2014 ????????? ??????
drwxr-xr-x 1 al users 0 Jun  8 17:03 .
drwx------ 1 al users 0 Jun  8 05:06 ..
[root@localhost sessions]# 

Я обычно использую команду rm -rf, Вы уверены, что имя каталога правильное ( ls часто показывает ? для непечатных символов)? Пытаться ls -b проверять. Я часто нахожу файловый менеджер с графическим интерфейсом, это хороший способ удалить неловкие имена. Немного больше о вашем дистрибутиве Linux и его оболочке будет полезно.
AFH

@AFH: имя было введено с автозаполнением нажатием Tab. Про ОС и оболочку я обновил пост.
Al Berger

1
Глядя на комментарии против ответа e_z, я склонен подозревать, что файловая система повреждена. Если проблема находится в том же разделе, что и корневой каталог, вам нужно загрузить другую систему, например Live CD, и запустить fsck оттуда (или используйте режим восстановления). Вы также сможете удалить его, и Live CD предоставит вам файловый менеджер с графическим интерфейсом, если вы не настроили его в своей системе.
AFH

AFH, я только что запустил еще одну проверку btrfs, и она показывает «проверка контрольной суммы не удалась ...». Когда он закончится, я запусту 'btrfs check --fix-crc' и посмотрю, не исчезла ли проблема.
Al Berger

Ответы:


2

После восстановления контрольных сумм для всего раздела, еще раз запустив scrub и --repair - записи файловой системы мусора наконец исчезли.


0

Пожалуйста, попробуйте выполнить следующее:

rm -fr <directory>

также проверьте атрибуты, используя lsattrПри необходимости можно использовать chattr чтобы изменить атрибуты, смотрите соответствующие справочные страницы.


Кажется, что с этим объектом не работают ни rm -fr, ни lsattr (сообщение обновлено)
Al Berger

какова ценность LANG переменная окружения? не могли бы вы запустить locale и отправьте это. Может быть, вам нужно установить языковые настройки?
e_z

Любой вывод в /var/log/messages при попытке удалить эту папку?
e_z

Я бы тоже попробовал fsck на файловой системе в удобное время. Если вы можете временно переместить другие файлы в другое место, вы можете сделать что-то вроде: cd <parent> ; mv <all needed files/folders elswhere>;find . -exec rm -fr {} \; ;mv <back your backed up files/folders>
e_z

На этой машине используется systemd, а / var / log / messages нет. 'journalctl -xn20' не показывает сообщений за это время.
Al Berger
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.