¿Cuál es la diferencia entre los puntos de unión NTFS y los enlaces simbólicos?

140

En un nivel alto, la única diferencia obvia entre los puntos de unión NTFS y los enlaces simbólicos es que las uniones solo pueden ser directorios, mientras que los enlaces SymLinks también pueden apuntar a archivos.

¿Qué otras diferencias existen entre los dos?

(Tenga en cuenta que ya he visto esta pregunta y lo que estoy buscando es un poco diferente: esa pregunta está buscando una lista de pros y contras, estoy buscando un conjunto de diferencias técnicas)

Billy ONeal
fuente

Respuestas:

88

Los enlaces simbólicos tienen más funcionalidad, mientras que las uniones casi parecen ser una característica heredada debido a sus limitaciones, pero las implicaciones de seguridad de estas limitaciones son específicamente por qué una unión podría preferirse a un enlace simbólico. La orientación remota hace que los enlaces simbólicos sean más funcionales, pero también aumenta su perfil de seguridad, mientras que los cruces son más seguros porque están restringidos a rutas locales . Por lo tanto, si desea un enlace local y puede vivir con una ruta absoluta, probablemente sea mejor con un cruce; de lo contrario, considere un enlace simbólico para sus habilidades adicionales.

ingrese la descripción de la imagen aquí

** La declaración de diferencia en velocidad / complejidad proviene de una declaración no verificada en la entrada de Wikipedia sobre puntos de análisis NTFS (una buena lectura). *


Otras comparaciones de enlaces NTFS

Aquí hay algunas otras comparaciones sobre el tema, pero pueden ser engañosas cuando se consideran las uniones porque no enumeran los beneficios que enumero anteriormente.

Tomado de aquí (una buena lectura introductoria)

ingrese la descripción de la imagen aquí

Desde la página SS64 en MKLink

ingrese la descripción de la imagen aquí


Comentarios sobre terminología

Las uniones son puntos de análisis (pueden describirse como enlaces simbólicos)

NTFS Junctions y NTFS Symbolic links realmente están haciendo lo mismo de la misma manera (puntos de análisis), aparte de las diferencias antes mencionadas en cómo se procesan. De hecho, técnicamente, un cruce es un "enlace simbólico" en el sentido más general de la palabra, y a veces la documentación puede llamar a un cruce un enlace simbólico, como es el caso aquí . En tales casos, "enlace simbólico" no significa NTFS Symbolic Link, que es diferente de una unión (ver más abajo).

NTFS

Aunque el OP especifica esto, vale la pena señalar que "enlace simbólico" es un término muy general que no es específico de NTFS. Entonces, para ser específicos, esta comparación es sobre NTFS Junctions vs. NTFS Symbolic Links.

u8it
fuente
Los puntos de unión y los enlaces simbólicos son puntos de análisis, pero los puntos de unión definitivamente no son enlaces simbólicos. Ah, y la tabla también está mal en una cuenta. El objetivo de un Punto de unión debe existir en el momento de la creación, pero puede eliminarse más adelante.
0xC0000022L
3
@ 0xC0000022L Sí, tiene razón si lo que dice es que una unión NTFS no es un enlace simbólico NTFS. Puedo ver cómo se puede interpretar mal mi redacción al decir esto. Voy a editar para aclarar, pero el punto es que, en este contexto, "enlace simbólico" se refiere a los enlaces simbólicos NTFS que son implementaciones específicas de la idea más general de "enlace simbólico" a la que también pertenecen las uniones. ¿Seguiste el enlace que publiqué? No significa que una unión NTFS sea un enlace simbólico NTFS, pero el término "enlace simbólico" puede usarse para describir una unión.
u8it
Para ser justos, cuando se refiere al concepto, puede ser una forma de pensarlo. Pero realmente creo que el término punto de análisis trae el concepto a casa, porque explica mucho más lo que está sucediendo en el administrador de objetos NT y que este concepto va mucho más allá de los enlaces simbólicos que solían estar en Unix, por ejemplo (donde son archivos ordinarios con una bandera especial) Y sí, he escuchado puntos de unión explicados como "enlaces simbólicos para directorios".
0xC0000022L
@ 0xC0000022L Además, no veo el problema que menciona sobre la tabla que está mal. ¿Te refieres a la característica "Puede señalar un objetivo inexistente"? ¿Y estás diciendo que esto está mal al menos cuando creas un cruce por primera vez? Si está seguro de que ese es el caso en un entorno específico (tal vez para Windows XP o debido a la configuración de seguridad), tomaré nota de eso, pero en mi experiencia y en la documentación (y acabo de confirmar en Windows 10) una unión puede siempre apunte a una ruta inexistente, incluso después de la creación ... puede haber configuraciones de seguridad que restrinjan esto.
u8it
Los cruces no son heredados. Implementan puntos de montaje (enlace / volumen), no enlaces simbólicos. Cuando una ruta se analiza en un espacio abierto, el sistema recuerda las uniones atravesadas para evaluar los enlaces simbólicos relativos que atraviesan los puntos de montaje. Estos recorridos deben manejar una unión como si fuera un directorio normal, mientras que un enlace simbólico se analiza como su ruta de destino. Por ejemplo, diga "C: \ junction" y "C: \ symlink", ambos dirigidos a "E: \ spam", y el enlace simbólico relativo "E: \ spam \ eggs.txt" Target ".. \ eggs.txt". Entonces "C: \ junction \ eggs.txt" se resuelve en "C: \ eggs.txt", y "C: \ symlink \ eggs.txt" se resuelve en "E: \ eggs.txt".
Eryk Sun
35

Los lugares que encuentro más útiles para las diferencias:

http://blogs.msdn.com/b/junfeng/archive/2006/04/15/576568.aspx

http://www.hanselman.com/blog/MoreOnVistaReparsePoints.aspx

Postulado: Symlink es Junction en Windows como Symlink es Hardlink en Unix.

http://en.wikipedia.org/wiki/Symbolic_link#Windows_7_.26_Vista_symbolic_link

Windows 7 y Windows Vista admiten enlaces simbólicos para archivos y directorios con la utilidad de línea de comandos mklink. A diferencia de los puntos de unión, un enlace simbólico también puede apuntar a un archivo o ruta de red remota del Bloque de mensajes del servidor (SMB). Además, la implementación del enlace simbólico NTFS proporciona soporte completo para enlaces entre sistemas de archivos. Sin embargo, la funcionalidad que permite enlaces simbólicos entre hosts requiere que el sistema remoto también los admita, lo que limita efectivamente su compatibilidad con los sistemas operativos Windows Vista y posteriores de Windows.

http://www.tuxera.com/community/ntfs-3g-advanced/junction-points-and-symbolic-links/

Un enlace simbólico, creado por Windows, es muy similar a una unión de directorios, pero a diferencia de una unión de directorios, puede apuntar a un archivo o un archivo o directorio de red remoto. El objetivo puede definirse como una ruta relativa a la posición del enlace simbólico, o una ruta absoluta en el volumen actual u otro. También tenga en cuenta que los enlaces simbólicos a los archivos son diferentes de los enlaces simbólicos a los directorios y el destino debe coincidir con la definición.

James Manning
fuente
1
Para información específica de Windows 7: msdn.microsoft.com/en-us/library/windows/desktop/…
Joshua Drake
14
La respuesta aceptada ya tiene tres años, pero me gustaría señalar que los puntos de unión NFTS no se comparan con los enlaces duros en Unix, como lo implica el postulado citado. Esto debería ser obvio, ya que un punto de unión no puede hacer referencia a un archivo, pero un enlace de enlace sí puede. NTFS también admite enlaces duros (que son diferentes de las uniones), y esos son más o menos comparables a los enlaces duros Unix.
@elgonzo Totalmente de acuerdo. AFAIK un enlace duro de Unix solo puede referirse a un archivo, por lo que no se parece en absoluto a la unión de directorios NTFS.
Franklin Yu
20

Funcionalmente, en Windows, una vez creado, no hay una diferencia real. Sin embargo, hay diferencias significativas entre ellos en lo que pueden hacer. Las uniones solo se pueden usar para crear enlaces a carpetas, ya sea en la misma unidad o en unidades diferentes, pero solo si esas unidades están en el sistema local (no puede crear un enlace de unión a una carpeta a través de una red). Enlaces simbólicos Sin embargo, no tienen las mismas restricciones. Los enlaces simbólicos se pueden usar para vincular a archivos o carpetas y esos archivos o carpetas se pueden ubicar en el mismo sistema (misma unidad o unidades diferentes) o en un recurso compartido de red y pueden hacer uso de símbolos de ubicación relativa ("\\ system2 \ foldera \ file.txt "," d: \ foldera \ file.txt "," \\ system2 \ foldera "," d: \ foldera "o" d: \ foldera \ folderb .. "

En resumen: los puntos de unión se limitan a las carpetas en el sistema local solamente, mientras que los enlaces simbólicos pueden crear enlaces a carpetas o archivos accesibles a través de una ruta UNC o en el sistema local con más versatilidad en cómo se designan esas ubicaciones. Symbolic Links es básicamente un reemplazo más versátil tanto para Junction Points como para Hard Links. Además, los enlaces simbólicos son compatibles con Unix y Linux cuando se crea un enlace de plataforma UNC multiplataforma.

Con suerte, esto responde a su pregunta de manera satisfactoria. Editado para corregir errores tipográficos.

Techno Wizard
fuente
10

Link Shell Extension, http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html , es una gran herramienta para crear y ver muchos tipos de enlaces. También cuenta con excelente documentación.

[En una instalación completa, agrega una nueva pestaña de propiedades si está buscando un enlace avanzado. En también agrega flechas de superposición de iconos para los diversos tipos de enlaces: desplácese a la sección de preguntas frecuentes si no se muestran; Windows solo admite trece superposiciones; él muestra una solución alternativa de registro. Un ejemplo de su utilidad informativa: tratar sin éxito de obtener privilegios para lo que creía que era una carpeta, pero en realidad era un enlace de enlace proporcionado por el sistema, a menudo utilizado con fines de compatibilidad con ediciones anteriores de Windows.]

Las uniones y los enlaces simbólicos actúan esencialmente de manera idéntica cuando se crean para un directorio en un sistema local.

Sin embargo:

Actúan de manera diferente en una red. Este enlace describe este comportamiento: /superuser/343074/directory-junction-vs-directory-symbolic-link

Si piensa en Junction Links como "atajos que engañan al sistema operativo en cuanto a la ubicación", tendrá un buen símil práctico de su uso y lo que los rompe. La principal diferencia es que si copia enlaces simbólicos o uniones, copia el destino, más bien (como accesos directos) simplemente el archivo que contiene el puntero. Al igual que con los accesos directos, puede eliminar enlaces simbólicos o de unión sin eliminar los archivos / carpetas de destino. [Enlaces duros, el archivo solo se elimina con la eliminación del último enlace, incluso de la papelera de reciclaje. Mire la etiqueta de propiedades en LSE para ver cualquiera de estos enlaces para ver el objetivo o el recuento de referencias para enlaces duros.]

Los enlaces duros o los accesos directos son los únicos tipos de enlaces que se pueden mover sin efectos secundarios como romper o copiar todo el objetivo. Mover el destino siempre rompe los enlaces, aunque pueden actualizarse fácilmente en la pestaña de propiedades (mostrada con LSE) o recrearse, si es complicado, con LSE.

La creación de enlaces simbólicos requiere privilegios de administrador, mientras que Junctions no. Esto más el uso extenso e interno del sistema operativo de Junctions sugiere que Windows los maneja de una manera intuitiva y esperada. [Tenga cuidado con los efectos secundarios inesperados de las carpetas del sistema (por experiencia con Win 10).]

[Algunas de las características específicas de copia de seguridad de Link Shell Extension son extremadamente útiles; en resumen, puede crear varios tipos de estructuras de enlaces simbólicos actualizables en carpetas estándar para fines de copia de seguridad pendientes].

Arcilla
fuente
Y Link Shell Extension parece una gran herramienta. También hay una utilidad de peso ligero relacionada llamada ln.exe ... incluso si no la usa, aprenderá mucho solo leyendo la sencilla guía del usuario del sitio web.
u8it
Creo que tu edición del 2 de abril de 2016 dejó las cosas menos claras, Clay. Creo que quiso decir algo como esto: "La principal diferencia entre estos y los archivos de 'acceso directo' es que si ... copia el destino, en lugar de simplemente el archivo que contiene el puntero (que es lo que sucede si copia un acceso directo) archivo) "
Jon Coombs
4

Los enlaces simbólicos se han introducido recientemente en Windows: a partir de Vista.

Los enlaces simbólicos no deben considerarse como una alternativa a la tecnología NTFS "Reparse Point" existente.

Microsoft explica que el único propósito de los enlaces simbólicos es ser más compatible con Unix.

MSDN: " Los enlaces simbólicos se han diseñado para ayudar en la migración y la compatibilidad de aplicaciones con UNIX. Microsoft ha implementado sus enlaces simbólicos para que funcionen igual que los enlaces UNIX " .

Vista también es el primer sistema operativo que utiliza enlaces para su propio funcionamiento. Para ser compatible con los nombres de carpetas heredadas, C:\Documents and Settingsahora hay un enlace a C:\Users.

Curiosamente, aunque Vista introduce enlaces simbólicos, este " Documents and Settings" truco es en realidad una simple y antigua unión.

Philip
fuente
2
Esta respuesta no dice nada sobre las diferencias entre enlaces simbólicos y uniones. (Como tal, no creo que se aplique realmente a esta pregunta)
Billy ONeal
Desde Windows Vista en adelante, el enlace simbólico reemplaza a Junctions (también, como sabemos, ambos son puntos de análisis)
Aravind
2

Además de la excelente respuesta de u8it:

Si alguien está interesado en la diferencia de comportamiento en el Explorador de archivos de Windows en Windows 10:

arrastrar y soltar al directorio de destino:

  • symbolic link: mueve el symbolic linkal directorio de destino
  • junction: mueve el original directoryal directorio de destino

clic derecho del ratón + propiedades:

  • symbolic link: muestra propiedades de acceso directo
  • junction: le muestra las original directorypropiedades de la carpeta

clic izquierdo en el panel izquierdo (árbol de directorios):

  • symbolic link: selecciona el original directory
  • junction: selecciona el junction
Jinjinov
fuente
La creación de enlaces simbólicos requiere privilegios de administrador, mientras que Junctions no.
Jinjinov
Windows 10, versión 10.0.17134.1130: Al mover la unión en el explorador, solo se mueve el contenido del directorio original. Hacer clic izquierdo en el enlace simbólico en el árbol no selecciona el directorio original.
SalgoMato