无法删除Linux目录-无限递归


8

我们在支持我们的版本控制服务器的RHEL6 VM上安装了NFS-最近,其中一个存储库变得有些疯狂,这是我在服务器上找到的:

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对目录运行时,它似乎是无限递归的-例如:

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

我试图通过其inode ref删除存储库:

[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命令的inode信息似乎表明'heads'目录中有2个目录是与heads目录的硬链接?

任何有关如何清理此问题的想法都将受到欢迎-认为我已经解决了它引起的应用程序问题,但是文件系统的更大问题需要得到解决。

谢谢!

编辑:附加输出位:

没有隐藏的字符:

[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 ..

但是当我实际上 heads目录中时,这是一些有趣的输出:

[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 ..

您的ls -latri输出是奇数,因为如果有这两个额外的目录,则索引节点5551210的链接数是奇数。你能尝试一下ls -latrib吗?什么是基础文件系统类型?
Paul Haldane

嘿,文件系统类型为nfs4-带-b标志的输出与不带-b的输出完全相同-已在上面添加了我可以提供的信息
oldNoakes

您是否查看了NFS服务器(您的版本控制VM正在从中装载文件系统的服务器)上有问题的目录?我认为您需要查看它正在发生的事情(这是我询问的NFS服务器上的文件系统类型)。
Paul Haldane

2
文件系统是否完整?ls输出中的那些问号令我怀疑。您是否在NFS服务器上运行了fsck?
Lacek

3
我强烈建议您进行fsck ...尤其是在看到任何进一步的损坏之前。
已退出--Anony-Mousse

Answers:


3

第一:Git既不是问题的原因,也不是解决方案的结果,而这是来自的无意义的输出ls。停止在文件系统上使用Git或其他工具,并卸载它以避免造成伤害。

这看起来像是文件系统损坏或安装失败。尝试在客户端上卸载并重新安装文件系统。尝试完全重新启动客户端。尝试在另一个客户端上执行相同的安装。每次检查ls输出是否正常。这将帮助您诊断问题是否出在NFS服务器端。如果ls输出看起来仍然相同,fsck则需要在服务器端对文件系统(或任何文件)和/或NFS服务(重新启动与NFS相关的守护程序;如果nfsd位于内核,则重新启动)进行调查和修复。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.