Назад | Перейти на главную страницу

Невозможно удалить каталог Linux - бесконечная рекурсия

У нас есть монтирование NFS на виртуальной машине RHEL6, которая поддерживает наш сервер управления версиями - недавно один из репозиториев немного сошел с ума, и вот что я нашел на сервере:

ls -latri repo.git/refs/heads/

total 28
5551210 drwxr-xr-x. 2 git git 8192 Jun  1 21:21 .
5551210 drwxr-xr-x. 2 git git 8192 Jun  1 21:21
5551210 drwxr-xr-x. 2 git git 8192 Jun  1 21:21
5551209 drwxr-xr-x. 3 git git 4096 Jun  1 22:09 ..

Когда я бегу tree против dir, он кажется бесконечно рекурсивным, например:

repo.git/refs/heads/
├──
│   ├──
│   │   ├──
│   │   │   ├──
│   │   │   │   ├──
│   │   │   │   │   ├──
│   │   │   │   │   │   ├──
│   │   │   │   │   │   │   ├──
│   │   │   │   │   │   │   │   ├──
│   │   │   │   │   │   │   │   │   ├──
│   │   │   │   │   │   │   │   │   │   ├──
│   │   │   │   │   │   │   │   │   │   │   ├──
│   │   │   │   │   │   │   │   │   │   │   │   ├──
│   │   │   │   │   │   │   │   │   │   │   │   │   ├──
│   │   │   │   │   │   │   │   │   │   │   │   │   │   ├──
│   │   │   │   │   │   │   │   │   │   │   │   │   │   │   ├──
│   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   ├──

Я попытался удалить репозиторий через его индексный индекс:

[root@node repo.git/refs]# ls -latri
total 16
5551210 drwxr-xr-x. 2 git git 8192 Jun  1 21:21 heads

[root@node repo.git/refs]# find . -inum 5551210 -exec rm -rf {} \;
rm: cannot remove `./refs/heads': Directory not empty
find: `./refs/heads/': No such file or directory
find: `./refs/heads/': No such file or directory

Я немного не понимаю, что здесь делать - информация об индексе на ls -latri Кажется, команда указывает, что в каталоге 'Heads' есть 2 каталога, которые жестко связаны с каталогом Head?

Любые идеи о том, как это очистить, будут очень приветствоваться - думаю, что я решил проблему с приложением, которую это вызывало, но более серьезную проблему с файловой системой необходимо решить.

Спасибо!

Изменить: немного дополнительного вывода:

нет скрытых символов:

[root@node repo.git/refs]# ls -latrib heads/
total 28
5551210 drwxr-xr-x. 2 git git 8192 Jun  1 21:21 .
5551210 drwxr-xr-x. 2 git git 8192 Jun  1 21:21
5551210 drwxr-xr-x. 2 git git 8192 Jun  1 21:21
5551209 drwxr-xr-x. 3 git git 4096 Jun  1 22:09 ..

но вот забавный вывод, когда я на самом деле в руководитель режиссер:

[root@node repo.git/refs/heads]# ls -latrib
ls: cannot access : No such file or directory
ls: cannot access : No such file or directory
total 12
      ? -?????????? ? ?   ?      ?            ?
      ? -?????????? ? ?   ?      ?            ?
5551210 drwxr-xr-x. 2 git git 8192 Jun  1 21:21 .
5551209 drwxr-xr-x. 3 git git 4096 Jun  1 22:09 ..

Во-первых: Git не может быть ни причиной, ни решением проблемы, которая проявляется как бессмысленный вывод из ls. Прекратите использовать Git или другие инструменты в файловой системе и отключите его, чтобы избежать вреда.

Это похоже либо на сломанную файловую систему, либо на сломанное монтирование. Попробуйте размонтировать и снова смонтировать файловую систему на клиенте. Попробуйте полностью перезагрузить клиент. Попробуйте сделать то же монтирование на другом клиенте. Каждый раз проверяйте, что ls вывод, чтобы увидеть, станет ли он нормальным. Это поможет вам определить, связана ли проблема со стороной сервера NFS. Если ls вывод продолжает выглядеть так же, исследование и восстановление файловой системы (fsck или что-то еще) и / или служба NFS (перезапуск демонов, связанных с NFS; перезагрузка, если nfsd находится в ядре) должна выполняться на стороне сервера.