Cómo eliminar un directory con "Demasiados niveles de enlaces simbólicos"

Tengo un problema extraño en un sistema RHEL.

En nuestros sistemas tenemos nuestro directory de inicio montado en /export/home . Hay algunas excepciones, ya que estoy experimentando con el uso de Gluster para nuestros directorys locales. Estos están /gluster/home debajo de /gluster/home

Esto funciona en todos nuestros (30+) serveres. Hoy esto dejó de funcionar en uno de ellos. Me sale el error:

 Too many levels of symlinks 

cuando bash hacer un cd en /gluster/home/$HOME

Terminé moviendo temporalmente /gluster a /gluster_broken , e hice un nuevo /gluster/home , reinicé autofs y todo volvió a funcionar.

Ahora quiero eliminar /gluster_broken .

El problema es que aparentemente hay un bucle de enlace simbólico en /gluster_broken/home . No sé de dónde vino. Mis bashs de deshacerme de él han sido infructuosos hasta ahora.

 [root@dc1-03 /]# rm -rf gluster_broken/ rm: cannot remove `gluster_broken/home': Too many levels of symbolic links [root@dc1-03 /]# rm -rf /gluster_broken/ rm: cannot remove `/gluster_broken/home': Too many levels of symbolic links [root@dc1-03 /]# rm -rf /gluster_broken/home/ rm: cannot remove `/gluster_broken/home/': Is a directory [root@dc1-03 /]# rm -rf /gluster_broken/home rm: cannot remove `/gluster_broken/home': Too many levels of symbolic links [root@dc1-03 /]# rmdir /gluster_broken/home/ rmdir: failed to remove `/gluster_broken/home/': Device or resource busy [root@dc1-03 /]# fuser -m /gluster_broken/home/ Cannot stat /gluster_broken/home/: Too many levels of symbolic links Cannot stat /gluster_broken/home/: Too many levels of symbolic links Cannot stat /gluster_broken/home/: Too many levels of symbolic links [root@dc1-03 /]# ls -ld /gluster_broken/home/ ls: cannot access /gluster_broken/home/: Too many levels of symbolic links [root@dc1-03 /]# ls -ld /gluster_broken/home drwxr-xr-x. 2 root root 0 Jan 22 10:20 /gluster_broken/home [root@dc1-03 /]# fuser -m /gluster_broken/home 

Como puede ver, la mayoría de los commands arrojan el mismo post de error. Realmente me gustaría deshacerme de este problema. Pero estoy un poco perdido aquí. ¿Alguna sugerencia?

Salida de commands sugeridos:

 [root@dc1-03 /]# ls /gluster_broken/ home [root@dc1-03 /]# ls /gluster_broken/home/ ls: cannot access /gluster_broken/home/: Too many levels of symbolic links [root@dc1-03 /]# ls -hblF /gluster_broken /gluster_broken/home /gluster_broken: total 0 drwxr-xr-x. 2 root root 0 Feb 4 12:00 home/ ls: cannot open directory /gluster_broken/home: Too many levels of symbolic links 

Intenta encontrar

 find -L /gluster_broken -mindepth 10 

para encontrar los loops de enlace

a continuación, un rm no recursivo en el (los) file (s) erróneo (s)

find seguirá los enlaces y encontrará el mismo error de "demasiados niveles". Utilizo -mindepth para filtrar cualquier cosa less de 10 de profundidad para evitar los files / directorys ok. Sí, esto supone que no tienes más de 10 de profundidad en tu tree normal. Todo lo que intenta hacer este command es encontrar el file por error.

– editar

Creo que seguir el command es mejor,

 find -L /gluster_broken >/dev/null 

Aquí está mi testing

 $ find . . ./dira ./dira/a ./dira/dirb ./dira/dirb/dirc ./dira/error ./dira/b ./dira/test ./dira/test/ab&<cd.file ./dira/test/magic?newlines ./dira/test/cleanup $ find -L . >/dev/null find: './dira/a': Too many levels of symbolic links find: './dira/error': Too many levels of symbolic links find: './dira/b': Too many levels of symbolic links $ 

— editar 2

Creo que mi sugerencia (comentario) para verificar el sistema de files podría ser la mejor, acabo de ver esta respuesta y me pregunto si tienes un problema similar.

Tal vez estoy equivocado, pero parece que nadie más respondió la pregunta.

El problema es que tienes el / al final de tu command.

En lugar de

 rm gluster/ 

solo corre

 rm gluster 

Al colocar / al final, intenta ingresar al directory, que es un enlace circular, por lo que nunca encuentra el final. Sin el / , simplemente está eliminando el enlace simbólico.

Recientemente me encontré con este mismo problema al crear un enlace simbólico sin darle un directory absoluto.

Esto produjo el mismo error al intentar leer el file ("Demasiados niveles de enlaces simbólicos"):

 ln -s ./config ~/.config/terminator 

Aparentemente porque el enlace simbólico intenta regresar a sí mismo:

 ls -l ~/.config/terminator lrwxrwxrwx 1 zane zane 8 Dec 22 16:14 config -> ./config 

Pero esto funcionó:

 ln -s /home/zane/config ~/.config/terminator/config 

Con suerte, esto ayudará a alguien en la misma situación.