- Hard Links and Junctions
- Hard Links
- Junctions
- Hard links windows what is
- What are NTFS Hard Links, Junctions and Symbolic Links?
- Hard Links
- Junctions
- Symbolic Links
- Использование символических и жестких ссылок в Windows
- Содержание:
- Символические ссылки
- Жесткие ссылки
- Как можно применить символические ссылки?
- Как упростить создание символических и жестких ссылок?
- Часто задаваемые вопросы
Hard Links and Junctions
There are three types of file links supported in the NTFS file system: hard links, junctions, and symbolic links. This topic is an overview of hard links and junctions. For information about symbolic links, see Creating Symbolic Links.
Hard Links
A hard link is the file system representation of a file by which more than one path references a single file in the same volume. To create a hard link, use the CreateHardLink function. Any changes to that file are instantly visible to applications that access it through the hard links that reference it. However, the directory entry size and attribute information is updated only for the link through which the change was made. Note that the attributes on the file are reflected in every hard link to that file, and changes to that file’s attributes propagate to all the hard links. For example if you reset the READONLY attribute on a hard link to delete that particular hard link, and there are multiple hard links to the actual file, then you will need to reset the READONLY bit on the file from one of the remaining hard links to bring the file and all remaining hard links back to the READONLY state.
For example, in a system where C: and D: are local drives and Z: is a network drive mapped to \\fred\share, the following references are permitted as a hard link:
- C:\dira\ethel.txt linked to C:\dirb\dirc\lucy.txt
- D:\dir1\tinker.txt to D:\dir2\dirx\bell.txt
- C:\diry\bob.bak linked to C:\dir2\mina.txt
The following are not:
- C:\dira linked to C:\dirb
- C:\dira\ethel.txt linked to D:\dirb\lucy.txt
- C:\dira\ethel.txt linked to Z:\dirb\lucy.txt
To delete a hard link, use the DeleteFile function. You can delete hard links in any order regardless of the order in which they are created.
Junctions
A junction (also called a soft link) differs from a hard link in that the storage objects it references are separate directories, and a junction can link directories located on different local volumes on the same computer. Otherwise, junctions operate identically to hard links. Junctions are implemented through reparse points.
Assuming the same conditions in the Hard Links section, the following references are permitted as junctions:
- C:\dira linked to C:\dirb\dirc
- C:\dirx linked to D:\diry
Hard links windows what is
Microsoft has implemented linking tools in its NTFS operating file systems since Windows NT 4.0 and Windows 2000. These links provide a convenient method for users to access their data.
Over the years Microsoft continued to improve these tools which can now be used to link files and/or directories together. The latest form of file link was introduced in Windows Vista and continues to form part of their latest operating system. In this article we will look at what these file links are and how they differ from one another.
What are NTFS Hard Links, Junctions and Symbolic Links?
Hard links, junction points and symbolic links are linking processes used by Windows to associate other files, directories or volumes. One of the methods to create file links is to use the command line program mklink :
- To create a file hard link: mklink /H linkName target
- To create a directory junction: mklink /J linkName target
- To create a directory symbolic link: mklink /D linkName target
- To create a file symbolic link: mklink linkName target
The following sections describe each type of file link in detail.
Hard Links
A hard link is a file that represents another file on the same volume without duplicating the data of that file. More than one hard link can be created to point at the same file. Hard links cannot link to a file that is on a different partition, volume or drive. Hard links on directories are not supported as it would lead to inconsistencies in parent directory entries.
Although a hard link is essentially a mirrored copy of the target file that it is pointing to, no additional hard drive space is required to store the hard link file. If a 1GB file is mirrored by 3 hard links, the total space used on the partition will only be 1GB instead of 4GB.
In addition, if any of the hard links or the original file(s) is/are deleted, the data will not be deleted, and the rest of the other links will still be able to access it. The file is only deleted once all links to it, and the file itself, are deleted. Changes made to the data contents via any of the hard links or the original will be propagated to the rest of the other items automatically (as they all ultimately point to the same file data) .
Hard links only work on Microsoft Windows operating systems that support NTFS partitions (Windows NT 4.0 or later) while FAT and ReFS file systems do not work with hard links.
An example of using hard links is when a user needs to have a file stored in two different folders. He could copy the file to the other folder and have two copies of the same file. However, twice the amount of storage space would be used. Also, if file contents of one file is changed, the other file will be outdated unless the newer file is copied over to replace it. Both issues could be solved with the use of hard links.
Junctions
Sometimes referred to as soft links, the function of a junction is to reference a target directory, unlike a hard link which points to a file. Junctions can be created to link directories located on different partitions or volume, but only locally on the same computer. It does this through the implementation of the NTFS feature called reparse points. Redirected targets in junctions are defined by an absolute path. An absolute path refers to a path which will contain the root element and the complete directory list that is required to locate the target. For example, \Main\Folder\report is an absolute path. All the information required to locate the target is contained in the path string.
Like hard links, directory junctions do not take up additional space even though they are stored on the drive partition; their function is to point to the original files in the original directory. Thus, it should be noted that if the target is deleted, moved or renamed, all junctions which point to the target will break and continue to point to a non-existant directory. Content changes from any of the junction links or the target will automatically propagate to the rest.
An example in which junctions are often used is on Windows Vista (and newer), where the name “C:\Documents and Settings” is a junction that points to C:\Users. Thus, older programs that reference hard-coded legacy file paths can continue to work in Vista and newer.
Symbolic Links
Symbolic links were introduced in Windows Vista/Windows Server 2008. An NTFS symbolic link is a file system object that points to another file system object. In simpler terms, it is a more advanced type of shortcut. Symbolic links can point to any file or folder either on the local computer or using a SMB path to point at targets over a network (the target machine on the remote end needs to run Windows Vista or later). They do not use any disk space.
A symbolic link can use either a relative path or an absolute path to point to its target. A relative path must be combined with another path in order to properly access the target file. For a detailed explanation between the difference of absolute and relative paths, please refer to Microsoft’s documentation.
Symbolic links are transparent to users – they appear as normal files or directories. All applications will be able to recognize both the link and the target. Like junctions, symbolic links will become a stale link if the target is moved, renamed or deleted. The operating system does not check to see if the target exists.
Использование символических и жестких ссылок в Windows
Ниже мы разберем понятие жестких и символических ссылок в Windows, расскажем про их основное предназначение и ключевые отличия. Также Вы сможете научиться быстро создавать ссылки стандартными способами Windows или при помощи специального ПО.
Содержание:
Символические ссылки
Символьные ссылки (также известный как «Мягкие ссылки» или «SymLink») представляют собой специальные объекты, в которых вместо информации и данных находится путь к конкретному файлу или каталогу на жестком диске компьютера.
Такой функционал имеет некоторые схожести с ярлыками, но в отличие от них, создается жесткая привязка символической ссылки к конкретному месту. Использование таких ссылок позволяет экономить место винчестере, а также получать своеобразную точку доступа к информации между различными файловыми системами, не заполняя носитель лишними копиями данных.
Ключевым моментом в использовании символических ссылок, является сохранение работоспособности программ и отдельных её объектов, на которые были созданы символические ссылки. Помимо этого, обычные ярлыки представляют собой ссылки, по которым можно перейти в оригиналы папок. Если пользователь перешел в оригинал папки по ярлыку, то все действия с файлами (удаление, изменение имени и т.д) будут иметь прямое воздействие на оригинал. В случае использования символических ссылок, пользователь сможет создать символический образ каталога (папки), в котором будут находиться символические ссылки на файлы оригинала. Стоит отметить, что такие данные имеют незначительный вес. Их размер примерно сопоставим с ярлыками, хотя из-за особенностей работы (символические ссылки буквально «обманывают» программы и операционную систему, выдавая под видом символической ссылки реально существующий объект), вес папки всегда будет показываться равным весу оригинала.
Жесткие ссылки
Жесткая ссылка или Hard Link имеет схожий функционал с символическими ссылками, но её ключевыми отличиями являются:
- Возможность работы только в одной конкретной файловой системе.
- Возможность работы в пределах только одного логического раздела.
- Жесткая ссылка так же, как и символическая ссылка воспринимается системой как оригинальный файл, но жесткая ссылка сохраняет свою оригинальность (все файлы жестких ссылок действительно являются оригиналами), в то время как при изменении настоящего файла или каталога символической ссылки, такие ссылки потеряют свою актуальность, поскольку им некуда будет ссылаться.
Таким образом жесткие ссылки имеют гораздо меньший круг применения, но обеспечивают безопасность при использовании, поскольку все жесткие ссылки не зависят от своего оригинала.
Как можно применить символические ссылки?
Символические ссылки могут иметь большое применение. Для примера, такие ссылки можно использовать при работе с виртуальными машинами или для более удобной работы с облачными хранилищами. Символьные ссылка позволяют не тратить ресурс жесткого диска, перемещая большие папки и файлы, а просто создавать символические ссылки, которые будут иметь такие же характеристики, полную работоспособность и другие возможности данных, куда была создана символьная ссылка.
Таким образом можно перемещать и синхронизировать объемные папки под видом символических ссылок в хранилища или перемещать программы с основного компьютера на виртуальную машину, без установки, траты места и с сохранением работоспособности утилиты. Это позволяет редактировать, работать или изменять структуру данных с виртуальной машины, синхронизировано с данными на реальном носителе ПК, при этом не открывая доступ с виртуальной машины на реальный компьютер.
Для примера, попробуем создать символическую ссылку на программу для восстановления данных RS Partition Recovery, чтобы сэкономить место, перенести её на другой диск и в то же время не переустанавливать утилиту в корень папки на новом системном диске.
Важно! Функции символьных ссылок доступны с Windows Vista. Более старые версии ОС не поддерживают работу с ними, поскольку в их функционале присутствует возможность создания только жестких и мягких (ярлыков) ссылок.
Процесс создания символической ссылки выглядит следующим образом:
Шаг 1. Работа с символическими ссылками происходит через стандартную утилиту Windows – «Командная строка». Нажимаем сочетание клавиш Win+R и в открывшемся окне вводим команду «cmd».
Шаг 2. В открывшемся окне вводим команду «mklink», при помощи которой можно получить описание функционала и возможные действия с символическими ссылками.
Шаг 3. Ознакомившись с ключами, попробуем создать символическую ссылку на каталог «C:\Program Files (x86)\Recovery Software\RS Partition Recovery 2.8» для этого нам потребуется ввести следующую команду «mklink /j «D:\recoverymk» «C:\Program Files (x86)\Recovery Software\RS Partition Recovery 2.8″».
Разберем подробнее каждый из пунктов команды.
- Mklink – основная команда связанная для создания символьных ссылок, её прописывают в начале.
- /j – ключ для создания символьный ссылки для каталога. Для создания файла следует использовать ключ /d. Для жесткой ссылки ключ /h.
- “D:\recoverymk” – путь куда будет сохранена символьная ссылка на каталог.
- «C:\Program Files (x86)\Recovery Software\RS Partition Recovery 2.8» – источник, откуда была создана символьная ссылка.
В нашем случае успешное создание символьной ссылки выглядит следующим образом:
Проверяем созданную ссылку и её работу в том месте, которое было указано при создании. В нашем случае это «D:\recoverymk».
Пробуем запустить утилиту через символическую ссылку.
Программа RS Partition Recovery (как и любые другие программы, архивы, игры и т.д) успешно заработала через символическую ссылку.
Также продемонстрируем наглядное пособие по созданию символической ссылки на конкретный файл. Для примера создадим символьную ссылку архива «карты», который расположен на диске C.
Для этого вводим «mklink /d «D:\карты» «C:\карты»»
В данном случае каждая часть команды отвечает за следующее:
- Mklink – основная команда для работы с ссылками.
- /d – ключ для создания символьных ссылок на конкретные файлы.
- «D:\карты» – место куда будет создана символьная ссылка.
- «C:\карты» – источник (оригинал) файла.
Важно! Для выполнения действий необходимо открыть командную строку от имени администратора. В противном случае утилита выдаст ошибку «Недостаточно прав».
Как упростить создание символических и жестких ссылок?
Для неподготовленных пользователей работа в командной строке может оказаться достаточно трудной и неудобной, поэтому многие предпочитают использовать специальный утилиты, добавляющие возможность быстрого создания ссылок различных типов из контекстного меню (меню, которое появляется при нажатии по файлу правой кнопкой мыши).
Одной из самых популярных программ для быстрого создания ссылок из контекстного меню является Link Shell Extension.
Процесс создания символической ссылки с дополнительными утилитами выглядит следующим образом:
Шаг 1. Нажимаем ПКМ по нужному объекту и выбираем пункт «Запомнить источник ссылки».
Шаг 2. Переходим в любой каталог, куда будет помещена ссылка, нажимаем ПКМ по пустому месту и выбираем пункт «Поместить как», после чего следует выбрать «Жесткую ссылку» или «Символическую ссылку».
Независимо от метода создания, ссылки будут функционировать в штатном режиме.
Часто задаваемые вопросы
Это сильно зависит от емкости вашего жесткого диска и производительности вашего компьютера. В основном, большинство операций восстановления жесткого диска можно выполнить примерно за 3-12 часов для жесткого диска объемом 1 ТБ в обычных условиях.
Если файл не открывается, это означает, что файл был поврежден или испорчен до восстановления.
Используйте функцию «Предварительного просмотра» для оценки качества восстанавливаемого файла.
Когда вы пытаетесь получить доступ к диску, то получаете сообщение диск «X: \ не доступен». или «Вам нужно отформатировать раздел на диске X:», структура каталога вашего диска может быть повреждена. В большинстве случаев данные, вероятно, все еще остаются доступными. Просто запустите программу для восстановления данных и отсканируйте нужный раздел, чтобы вернуть их.
Пожалуйста, используйте бесплатные версии программ, с которыми вы можете проанализировать носитель и просмотреть файлы, доступные для восстановления.
Сохранить их можно после регистрации программы – повторное сканирование для этого не потребуется.