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

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

我们在支持版本控制服务器的 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 ..

但实际上,这是一些有趣的输出主管目录:

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

答案1

首先:Git 既不是导致问题的原因,也不是解决问题的方法,因为 .gist.txt 输出毫无意义ls。停止在文件系统上使用 Git 或其他工具并将其卸载,以避免造成损害。

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

相关内容