버전 제어 서버를 지원하는 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'디렉토리에 heads 디렉토리에 대한 하드 링크 인 2 개의 디렉토리가 있음을 나타냅니다?
이것을 정리하는 방법에 대한 아이디어는 가장 환영받을 것입니다. 발생한 응용 프로그램 문제를 해결했지만 파일 시스템의 더 큰 문제를 정렬해야한다고 생각합니다.
감사합니다!
편집 : 추가 출력 비트 :
숨겨진 문자 없음 :
[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
출력의 물음표는 나에게 의심됩니다. NFS 서버에서 fsck를 실행 했습니까?
ls -latri
두 여분의 디렉토리가있는 경우 아이 노드 5,551,210에 대한 링크의 수가 홀수로 출력이 이상하다. 당신은 시도 할 수ls -latrib
있습니까? 기본 파일 시스템 유형은 무엇입니까?