web-dev-qa-db-fra.com

Quelle est la différence entre les liens physiques NTFS et les jonctions de répertoires?

Le titre dit tout ... quelle est la différence? Quand utiliser l'un et quand utiliser l'autre?

Ajouté: Notez que Points de jonction , Liens durs et Les liens symboliques (légers) sont trois choses distinctes sur NTFS.

76
Vilx-

Les fichiers de données NTFS sont stockés avec tous leurs attributs en tant qu '"inode" avec un ID et les noms de fichiers pointent vers l'inode. Tous les fichiers ont un + lien dur. certains outils peuvent créer des noms supplémentaires (liens durs) qui pointent vers le même inode, qui possède un compteur du nombre de noms pointant vers lui. Si le nombre passe à zéro, le système d'exploitation supprime le fichier, l'inode.

Des outils spéciaux, tels que LN, peuvent créer des noms de fichiers supplémentaires qui pointent vers des inodes existants, en utilisant un nom de fichier qui les pointe. Notez que tous les attributs de fichier, y compris les dates et les heures, sont stockés avec l'inode, pas le nom de fichier.

Les liens physiques (extra) sont utiles lorsque vous souhaitez que différents noms pointent vers les mêmes données, en lecture ou en écriture. Ils économisent de l'espace et des frais généraux. Cependant, ils clobber des programmes qui supposent des noms différents pointent sur des données différentes. Par exemple, si vous remplacez les références à des fichiers en double par des liens physiques en un seul fichier, vous avez supprimé toute sauvegarde que vous avez! Le système d'exploitation Windows est un programme qui suppose que différents noms pointent vers différents ensembles de bits.

Les liens physiques doivent être sur le même volume physique et logique.

Ils sont utiles pour:

  • réduction de la longueur des chemins puisque Windows ne prend en charge que 256 caractères environ.

  • réduction de l'espace de stockage des fichiers de données en double - par exemple, vous pouvez effectuer plusieurs sauvegardes d'une partition avec plusieurs arborescences de répertoires complètes, mais avec des liens fixes pour les fichiers qui n'ont pas changé depuis la sauvegarde précédente.

Les points de jonction sont plus encombrants et utilisent des points de réparation (que je ne comprends pas). Ils peuvent pointer sur différents volumes physiques ou logiques, mais ils doivent se trouver sur le même ordinateur. Ils peuvent apparemment être utilisés comme des liens symboliques pour des répertoires, permettant ainsi un second nom pour la même destination, mais limité à un seul ordinateur, plutôt qu’à un seul volume.

Utile pour réduire la longueur des chemins ou simplifier l'utilisation de plusieurs programmes avec des noms de répertoire codés en dur.

Mêmes mises en garde aussi! De nombreux programmes prennent des noms différents = différents fichiers.

Et puis il y a les liens symboliques (qui peuvent aller à travers les réseaux), les raccourcis et les PIF et .....

Aussi quelques informations de Microsoft lui-même :

En gros, ils recommandent d'utiliser des liens physiques uniquement pour les fichiers d'un même volume (lettre d'unité de disque) et des points de jonction uniquement pour des répertoires d'un même ordinateur (ils peuvent s'étendre sur différents volumes locaux).

32
tOM Trottier

Définitions rapides:

Lien symbolique: Lien vers un fichier ou un répertoire du même volume ou un volume différent (lettre de lecteur) ou même vers un fichier ou un répertoire distant (en utilisant UNC dans son chemin).

Lien dur: Lien vers un fichier du même volume (lettre de lecteur) uniquement. Chaque fichier (données du fichier) a au moins 1 lien dur (nom du fichier). La suppression de tous les liens physiques supprime effectivement le fichier.

Jonction: Lien vers un répertoire du même volume ou d'un volume différent (lettre de lecteur), mais pas vers un répertoire distant.


Détails:

En supposant que vous travaillez avec des volumes NTFS dans Windows Vista/7, vous pouvez utiliser l'outil de ligne de commande MKLINK pour créer les trois types de liens:

MKLINK [[/D] | [/H] | [/J]] Link Target

        /D      Creates a directory symbolic link.  Default is 
                a file symbolic link.

        /H      Creates a hard link instead of a symbolic link.

        /J      Creates a Directory Junction.

        Link    specifies the new symbolic link name.

        Target  specifies the path (relative or absolute) that 
                the new link refers to.

Liens symboliques : un lien symbolique est un objet du système de fichiers qui pointe vers un autre objet du système de fichiers (par exemple: fichier/répertoire).

  • MKLINK peut être utilisé pour créer des liens symboliques. L'utilisation du paramètre /D crée un lien symbolique dans le répertoire. MKLINK ne vérifie pas si la cible est un fichier ou un répertoire, ni même si la cible existe! Cela signifie que vous pouvez éventuellement créer des liens non valides, tels qu'un lien symbolique de répertoire vers un fichier ou un lien symbolique vers un fichier/répertoire non existant.

  • Les liens symboliques peuvent être des liens absolus ou relatifs. Les liens absolus sont des liens qui spécifient chaque partie du nom du chemin, tandis que les liens relatifs sont déterminés en fonction du lieu où les spécificateurs de lien relatif se trouvent dans un chemin spécifié.

  • Les liens symboliques absolus peuvent pointer vers des fichiers/répertoires d'un même volume ou d'un volume différent, ainsi que vers un fichier ou un répertoire distant à l'aide du chemin UNC. Cependant, les liens symboliques relatifs sont limités à un seul volume.

  • Des privilèges élevés sont requis pour créer un lien symbolique bien qu'une fois créés, les privilèges élevés ne sont plus nécessaires pour supprimer le lien.

Liens durs : un lien dur est la représentation du système de fichiers d'un fichier par lequel plusieurs chemins renvoient à un seul fichier.

  • MKLINK permet de créer des liens physiques (en utilisant le paramètre /H) uniquement à partir de fichiers (et non de répertoires). Un lien physique ne peut être créé qu'à partir d'un fichier du même volume.

  • Un fichier contenant plusieurs liens physiques n'est réellement supprimé que lorsque tous les liens matériels sont supprimés, c'est-à-dire que le nombre de liens atteint zéro. Ainsi, chaque fichier que vous créez a au moins un lien physique, que vous utilisiez ou non MKLINK.

  • Toute modification apportée à ce fichier est immédiatement visible pour les applications qui y accèdent via les liens physiques qui y font référence. Toutefois, la taille de l'entrée de répertoire et les informations d'attribut sont mises à jour uniquement pour le lien par lequel la modification a été effectuée.

  • Notez que les attributs du fichier sont reflétés dans chaque lien physique vers ce fichier et que les modifications apportées aux attributs de ce fichier se propagent à tous les liens physiques. Par exemple, si vous désactivez l'attribut en lecture seule sur un lien physique pour supprimer ce lien physique particulier et qu'il existe plusieurs liens physiques vers le fichier réel, vous devrez redéfinir l'attribut en lecture seule du fichier. à partir de l’un des liens durs restants pour ramener le fichier et tous les liens durs restants à l’état de lecture seule.

Jonctions : une jonction (également appelée lien symbolique) diffère d'un lien physique en ce que les objets de stockage qu'elle référence sont des répertoires distincts et une jonction peut relier des répertoires situés sur des volumes locaux différents. sur le même ordinateur. Sinon, les jonctions fonctionnent de manière identique aux liaisons en dur. Les jonctions sont mises en œuvre via des points d'analyse.

  • MKLINK permet de créer une jonction (à l'aide du paramètre /J) d'un répertoire (et même de fichiers bien que cela doive probablement être considéré comme un lien non valide).

  • Une jonction peut être considérée comme l'équivalent d'un lien physique pour un lien symbolique vers un répertoire. Un lien de jonction ne peut pas être créé dans un répertoire distant, mais peut être créé dans un répertoire situé sur le même volume/sur un autre.


Références:

[1] Liens durs et jonctions: https://msdn.Microsoft.com/en-us/library/windows/desktop/aa365006%28v=vs.85%29.aspx

[2] Création de liens symboliques: https://msdn.Microsoft.com/en-us/library/windows/desktop/aa363878%28v=vs.85%29.aspx

[3] "jonction d'annuaire" vs "lien symbolique d'annuaire"?

45
moo

Le lien dur est juste un autre nom pour un fichier. Si vous avez un fichier nommé A.txt et que vous avez un lien L.txt, une fois que vous supprimez A.txt, vous aurez toujours accès à ses données via L.txt. Ce n'est que lorsque les deux sont supprimés que le fichier est parti.

D'autre part, vous avez un lien symbolique (jonction s'il s'agit d'un dossier ou lien symbolique s'il s'agit d'un fichier). Dans ce cas, lorsque vous supprimez A.txt, le fichier est vraiment parti. La suppression de L.txt n’a aucun effet sur le fichier.

Les liens physiques ne peuvent être utilisés que sur la même partition que le fichier d'origine et les liens symboliques peuvent être utilisés sur plusieurs partitions.

P.S. Les fichiers et les dossiers sont généralement interchangeables en ce qui concerne NTFS.

9
Josip Medved

Lien dur: ne fonctionne que pour le même volume.
Jonction: tout volume local
Symbolique: volume local ou chemin UNC

| Link Type     | Same Volume | Different Volume | UNC Path |
|---------------|-------------|------------------|----------|
| Hard link     | Yes         | No               | No       |
| Junction      | Yes         | Yes              | No       |
| Symbolic link | Yes         | Yes              | Yes      |

Bonus Chatter

Windows crée des jonctions et des liens symboliques à des fins AppCompat; pour ces applications mal écrites qui pensent:

  • C:\Utilisateurs\Tous les utilisateurs
  • C:\Utilisateurs\Utilisateur par défaut

sont valides.

C:\Users>dir /as

 Directory of C:\Users

04/11/2018  07:45 PM    <SYMLINKD>     All Users [C:\ProgramData]
04/11/2018  07:45 PM    <JUNCTION>     Default User [C:\Users\Default]

La même chose est vraie dans le dossier de profil de l'utilisateur, pour les applications qui attendent que les dossiers Windows XP ère existent encore aujourd'hui:

| Folder           | Type       | Target                                                           |
|------------------|------------|------------------------------------------------------------------|    | Application Data | <JUNCTION> | C:\Users\Ian\AppData\Roaming                                     |
| Cookies          | <JUNCTION> | C:\Users\Ian\AppData\Local\Microsoft\Windows\INetCookies         |
| Local Settings   | <JUNCTION> | C:\Users\Ian\AppData\Local                                       |
| My Documents     | <JUNCTION> | C:\Users\Ian\Documents                                           |
| NetHood          | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Network Shortcuts |
| PrintHood        | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Printer Shortcuts |
| Recent           | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Recent            |
| SendTo           | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\SendTo            |
| Start Menu       | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Start Menu        |
| Templates        | <JUNCTION> | C:\Users\Ian\AppData\Roaming\Microsoft\Windows\Templates         |
0
Ian Boyd