21 votos

ln -s vs mount--bind

¿Hay alguna diferencia práctica entre el uso de ln -s o mount --bind ?

Quiero mover algunas carpetas a otra partición, sin cambiar su configuración del demonio y me pregunto qué enfoque debería tomar.

Prefiero ln -s como requiere configuración mínima (no /etc/fstab modificaciones), pero tal vez hay una razón por qué no es común.

27voto

Jeff Hillman Puntos 3333

Diablos, sí. Si se ejecuta el ln -s crear un enlace simbólico, que es un inodo que apunta a un determinado objeto del sistema de archivos, que es por qué los enlaces simbólicos pueden recorrer a través de los sistemas de ficheros y enlaces duros no: enlaces duros no tienen su propio inodo.

Si se monta un sistema de ficheros con --bind, de crear un segundo punto de montaje para un dispositivo o sistema de ficheros.

Si usted se imagina un enlace simbólico como una redirección, entonces imaginar un --bind sistema de archivos montado como la creación de otra puerta de acceso a datos.

Los enlaces simbólicos y se unen los montajes son un conjunto de circunstancias completamente distintas.

El --bind monte parece un poco más robusto para mí y probablemente es un poco más rápido que trabajar con un enlace simbólico. Por otro lado, no existen serios inconvenientes con el enlace simbólico, como el impacto en el rendimiento va a ser pequeño (si es que en todos existe).

Edit: he estado pensando sobre esto, y el impacto en el rendimiento podría ser un poco más grande de lo que se pensaba originalmente. Si usted tiene una aplicación que lee un montón de diferentes archivos, a continuación, cada nuevo archivo que se abre requieren un extra de leer. Algunas investigaciones que aquí se sugiere que mi suposición es correcta, así que si usted tiene un IO pesado ejecución de la aplicación de allí, considerar la --bind opción para montar sobre el enlace de la solución.

La razón por la que no es común, es, probablemente, el hecho de que un enlace simbólico es visible en un ls, mientras que la de enlazar sólo es visible cuando se mira en /proc/mounts o /etc/mtab (que es lo que el comando mount hace, si se ejecuta sin parámetros). Aparte de eso, creo que no hay ningún problema. Yo estaría interesado si lo hay, aunque.

Además: otro problema con la ln -s es que para algunas aplicaciones, cuando la pista se eliminan las referencias, puede provocar que la aplicación se frustre si se "espera" de ciertos elementos que en lugares específicos.

8voto

Eric Noob Puntos 531

Una de las grandes diferencias entre ln -s y una enlazar es que se puede utilizar una enlazar a "modificar" sólo lectura del sistema de archivos. Por ejemplo, si hay un CD montado en /mnt/application, y que quería reemplazar /mnt/application/badconfigfile.conf con una versión correcta, usted podría hacer esto:

mount -o bind /path/to/correct/file.conf /mnt/application/badconfigfile.conf

No sería posible afectar el mismo cambio a través de un enlace simbólico porque no eres capaz de modificar el sistema de archivos de destino.

Esto también puede ser usado a buen efecto si se distribuye un conjunto común de software a través de NFS (o algún tipo de sistema de archivos de clúster), y de la que desea hacer de host específico de los cambios en un sistema. Usted puede simplemente utilizar un enlace de montaje en el sistema de destino a reemplazar los archivos o directorios como sea necesario.

3voto

petrus Puntos 4657

Práctico diferencia #1 para mí entre ln -s y mount--bind:

vsftpd no no permite navegar por un directorio a través de un enlace simbólico, pero permite cuando está montado.

No sé qué demonio que usas, pero puede comportarse de manera similar.

2voto

Wiley Puntos 11

Uno podría señalar que, como consecuencia de la unión a un monte, que es en sí mismo un enlace, que es posterior rebote, vinculante original permanece intacta, suponiendo que todo lo que físicamente permanecer conectado.

Es decir, si se unen a a B, y se unen de la B a la C, y, a continuación, enlazar D a B, C seguirá vinculado a A. esto podría ser lo que usted quiere, o no. Si uno desea a C a B siga, a continuación, vuelva a montar el uso de los mismos objetivos, es decir, mount -o remount B C, o el uso de --rbind lugar. No hay ninguna --rebind opción.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: