NTFS junction point

"Junction point" redirects here. For the video game studio, see Junction Point Studios.

An NTFS junction point is a symbolic link to a directory that acts as an alias of that directory. This feature of the NTFS file system offers benefits over a Windows shell shortcut (.lnk) file, such as allowing access to files within the directory via Windows Explorer, the Command Prompt, etc.

Unlike NTFS symbolic links Junction points can only link to a local volume; junction points to remote shares are unsupported.[1]

Junction points are a type of NTFS reparse point. They were introduced with NTFS 3.0, the default file system for Windows 2000. The Windows 2000 and Windows 2003 Resource Kits include a program called linkd,[2] to create junction points; Mark Russinovich of Winternals released a tool called junction[3] which provided more complete functionality. Windows XP includes "fsutil";[4]Masatoshi Kimura released a filter driver[5] for the soft/symbolic link functionality existing in Windows XP's NTFS version, to be accessible to the end user. Windows Vista, Windows Server 2008, and later operating systems include an mklink command-line utility for creating junction points.

Examples of use

Program redirection

By setting a junction point that points to a directory containing a particular version of a piece of software, it may be possible to add another version of the software and redirect the junction point to point to the version desired.

Saving disk space

The contents of a junction use almost no disk space (they simply point to the original files in the original directory). If you need to have multiple points of entry to a large directory, junction points will serve that purpose well. Junction points should not be confused with a copy of something as they simply point to the original. If directories need to be modified separately a junction cannot be used as it does not provide a distinct copy of the directory or files within.

Circumventing pre-defined paths

Since reinstalling Windows (or installing a new version) often requires deleting the contents of the C: drive, it is advantageous to create multiple partitions so only one partition needs to be deleted during the installation. However, some programs don't let the user choose the installation directory, or install some of their files to the C: drive even when they are installed to a different drive. By creating a junction point, the program can be tricked into installing to a different directory.

Obtaining a list of junction points

A list of all the junctions present in the current directory can be obtained from an elevated Command Prompt as Admin by executing dir /aL, and a list of all the junctions present on a disk volume, by executing dir /aL /s C:\, where "C:" is the volume to scan.

Creating or deleting a junction point

A junction point can be created in Vista or later[6]

mklink /J <Link> <Target> 

To delete it in Vista or later, use: [7]

rmdir 

or

fsutil reparsepoint delete PATH

A junction point can be created in XP (after installing; Server 2003 Resource Kit) with

LINKD Source Destination

To delete it in XP, use:

LINKD Source /D 

Limitations

Neither the Windows NT startup process nor the Windows Vista startup process support Junction points, so it's impossible to redirect certain system folders:

However it is possible to redirect non-critical folders:

Creating junctions for \Users and \ProgramData pointing to another drive is not recommended as it breaks updates and Windows Store Apps.[8]

Creating junctions for \Users, \ProgramData, "\Program Files" or "\Program Files (x86)" pointing to other locations breaks installation resp. upgrade of Windows.[9]

Creating junctions for "\Program Files" or "\Program Files (x86)" pointing to another drive breaks Windows' Component Based Servicing which hardlinks files from its repository \Windows\SxS to their installation directory.

See also

References

  1. THIS INFORMATION IS SUSPECT. Sysinternals Junction documentation
  2. Microsoft Knowledge Base, 2007-02-20, How to create and manipulate NTFS junction points, http://support.microsoft.com/kb/205524/en-us
  3. Mark Russinovich, 2010-09-08, Junction, http://technet.microsoft.com/en-us/sysinternals/bb896768
  4. http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/fsutil.mspx?mfr=true
  5. http://emk.name/#download http://schinagl.priv.at/nt/ln/ln.html#symboliclinksforwindowsxp
  6. "mklink"
  7. "How to Delete a Junction by Using Command Line in Windows 7"
  8. "Relocation of the Users directory and the ProgramData directory to a drive other than the drive that contains the Windows directory". Retrieved 2015-03-12.
  9. "You encounter an error when trying to install Windows 8.1 due to redirecting the Users or Program Files folder to another partition". Retrieved 2015-03-12.

External links

This article is issued from Wikipedia - version of the 12/31/2015. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.