Mklink windows 10 не работает

Обновлено: 04.07.2024

Сложно сказать, какими функциями не обладает компьютер на базе Windows 10. Кажется, разработчики предусмотрели все, что только может понадобиться пользователю. Так, например, владельцам ПК доступна символьная ссылка на операционной системе Windows 10. Подавляющему большинству пользователей данная опция незнакома, а потому важно рассказать о ней более подробно, чтобы понять, при каких сценариях может пригодиться Symbolic link.

Что это такое и для чего нужно?

Многие владельцы компьютеров не ограничиваются одним накопителем, а используют сразу два диска. Чаще всего встречается комбинация HDD и SSD, когда системные данные и программы хранятся на шустром твердотельном накопителе, а мультимедийная информация остается на вместительном жестком диске. В этой связи пользователям нередко приходится переносить данные с одного накопителя на другой, а любой диск, как известно, от частой перезаписи начинает быстро изнашиваться.

И что делать, если файл располагается на HDD, а вы хотите его запускать с SSD, но в то же время желаете не расходовать оставшийся ресурс перезаписи?

В подобной ситуации на помощь готова прийти символьная ссылка, которая представляет собой ярлык с информацией о расположении данных. Воспользовавшись подобным инструментом, вы сможете заставить Windows думать, что файл находится на диске D, но при этом запускать его с накопителя C и наоборот.

На заметку. Ссылку можно создать не только для файлов, но и целых папок. То же самое касается приложений и других видов данных, доступных на компьютере.

Говоря о Symbolic link, стоит отдельно рассказать, чем она отличается от обычного ярлыка. На самом деле, если мы подразумеваем мягкую ссылку, то она не имеет никакой разницы в сравнении с привычным ярлыком. То есть двойной клик по иконке приводит к перемещению пользователя в исходное расположение файла/папки. Другое дело, если речь идет о жесткой ссылке, которая выглядит как настоящая папка (файл), но при этом располагается в другом месте. Далее мы будем говорить о двух видах Symbolic link.

screenshots_2

Как создать символьную ссылку в Windows 10

Создать Symbolic link можно встроенными средствами компьютера. Всего выделяется два способа, каждый из которых ориентирован на определенную группу пользователей. Проанализируйте оба варианта, чтобы выбрать для себя наиболее подходящий.

Mklink

Чаще всего символическая ссылка создается при помощи инструмента Mklink через Командную строку. Выглядит процедура следующим образом:

  • Щелкните ПКМ по значку «Пуск».
  • Откройте Командную строку.

screenshots_3

  • Для создания мягкой ссылки на конкретный файл введите запрос формата «mklink X», где вместо «X» будет указано имя файла. Для обработки команды не забудьте нажать клавишу «Enter».
  • Если речь идет о конкретном каталоге, воспользуйтесь запросом «mklink /D X», подставив вместо «X» конкретную директорию. Например, «C:\Games».
  • Для жестких аналогов используйте команды формата «mklink /H X» и «mklink /J X» соответственно.

screenshots_4

Если подобный способ создания символических ссылок кажется вам слишком сложным, предлагаем обратиться к альтернативному варианту.

Применение графического инструмента

Также воспользоваться инструментом можно без помощи Командной строки, а напрямую через «Проводник». Но предварительно нужно будет установить на компьютер Link Shell Extension. Дальнейшая инструкция выглядит следующим образом:

  • Щелкните ПКМ по нужному файлу/каталогу.
  • Выберите опцию «Запомнить источник ссылки».

screenshots_5

  • Откройте директорию, куда планируется поместить Symbolic link.
  • Кликните ПКМ.
  • Выберите «Поместить как», а затем – «Символическую ссылку».

screenshots_6

Отметим, что Link Shell Extension дает возможность использования других линков, поэтому сначала изучите функционал программы, после чего обращайтесь к нему при первой необходимости.

Как создаются и работают ссылки Windows, или что можно сделать при помощи mklink.

СПРАВКА, или что такое ссылка для Windows?

documents and settings windows xp

А вот она в Windows 7:

documents and settings windows7

загляните внутрь папки Documents and Settings: ничего не замечаете?

А в Windows 10 этой папки нет? Вскроем скрытые файлы и папки:

documents and settings нет в windows 10 ?

Да нет, всё на месте:

Documents and Settings в windows10

Чем отличаются символьные ссылки от стандартных ярлыков?

Таким образом, в отличии симлинка от обычного ярлыка и кроется её основное предназначение: Windows относится к симлинку как к настоящей папке. Т.е. разницы между ними нет. Одна и та же папка может находится сразу в нескольких местах. Представьте, что у вас есть программа, файлы которой ОБЯЗАТЕЛЬНО должны находиться по адресу C:\Program Files. Только системный диск забит и места на диске С уже нет. А вот другой диск или том под буквой, например, D полупуст. Вам нужно лишь перетащить вашу программу на диск D, создав попутно папку типа D:\Программа, создав в папке C:\Program Files симлинк на D:\Программа. И, если в вашем арсенале есть такие инструменты как виртуальный хранилища данных на манер like Dropbox, Google Drive, Яндекс.Диск или OneDrive, пространство рабочей зоны Windows можно серьёзно увеличить.

Создавая ссылки для Windows: mklink

справка mklink

Итак, что видно по справке?

  • mklink может создавать ссылки не только на сами папки и файлы, но и на такие же символьные ссылки
  • если не использовать аргумент /d, будет создана символьная ссылка на файл
  • если флаг /d применяется в команде, то появится символьная ссылка на папку/директорию

создать простую символическую ссылку

сохранение файла через символьную ссылку

А зачем это надо-то?

Да, казалось бы, в том варианте как описывается, разницы между созданием обычного ярлыка для файла или папки нет. Но это лишь на первый взгляд. Ну, представьте себе, что купленная только что игра требует установиться в корневую C:\Games (как обычно), требуя при том свободного места на диске С этак Гбайт 30. И при этом карта системного диска С выглядит примерно так:

диск С забит

справится с задачей в два счёта. И оп: игра-то думает, что её установили в нужную папку. А это не так, на самом деле. Какие ещё варианты? Я не особо игрок, но для меня, обладателя огромного количества виртуальных машин, которые занимают немало пространства, в такой ситуации тоже есть свои плюсы как решить проблему нехватки пространства для кучи виртуальных Windows.

Кроме того, создание ссылки подразумевает возможность быстрого к ней обращения: фактически вы создаёт новый путь. А он может быть максимально коротким. И тут в дело вступает возможность быстрого доступа из поисковой строки. Например, на одном из томов хранятся памятные фотографии, причём доступ к ним ограничен, а путь бесконечно долог для проводника. Создадим ссылку на манер:

А теперь набираем WIN + R, вводим D:\Фотки и работаем как хотим:

Ссылки Windows из mklink: о чём следует помнить?

суть символьной ссылки

ссылка помечена как Junction, а не DIR

Точки стыка (жёсткие связи), соединения и символические ссылки файловой системы NTFS

Итак, в чём основные отличия связующих ссылок?

Отличия между типами связей можно представить в таком виде:

Ну, вот такая в целом ситуация с типами внутренних связей Windows. Успехов.

Символьная ссылка (также симлинк от англ. Symbolic link, символическая ссылка) — специальный файл в файловой системе, для которого не формируются никакие данные, кроме одной текстовой строки с указателем. Эта строка трактуется как путь к файлу, который должен быть открыт при попытке обратиться к данной ссылке (файлу). Символьная ссылка занимает ровно столько места в файловой системе, сколько требуется для записи её содержимого (нормальный файл занимает как минимум один блок раздела).

Создать символьную ссылку очень просто и сейчас я вам это докажу. Открываем командную строку, нажимаем Win+R, вводим cmd и жмём ОК. Хотя если вы собираетесь работать с системными файлами, может понадобиться командная строка с правами администратора.

Создать символьную ссылку очень просто и сейчас я вам это докажу. Открываем командную строку, нажимаем Win+R, вводим cmd и жмём ОК.

Дальше нам нужно ввести команду для создания символьной ссылки, выглядит она следующем образом:

где /j — атрибут создания соединения для каталога. Если вы создаете ссылку на файл, атрибут ставить не надо.

К примеру, если я хочу создать символьную ссылку на папку mklink на локальном диске E, как папку mk на диске С, мне нужно ввести следующую команду (и да, символьная ссылка может называться не так, как исходный файл (папка):

002

В результате мы получим вот это.

003

Если же мы хотим создать символьную ссылку на файл, например на файл 1.txt, хранящийся в корне диска E. для использования в виде файла 2.txt. скажем в папке mslink на диске C, команда будет выглядеть вот так:

004

А на выходе получим вот это.

005

Резюмируя скажу, что знание возможностей данной функции, открывает большие возможности. С помощью неё я выходил из нескольких ситуаций, когда не хватало свободного пространства, на моем старом SSD, позволяя быстро перенести игру из папки origin на другой диск. Но вариантов использования её гораздо больше, к примеру перенос кэша браузеров, о котором мы поговорим в одной из будущих статей.

Вроде всё. Надеюсь эта статья оказалась вам полезной, обязательно нажмите одну из кнопок ниже, чтобы рассказать о ней друзьям. Также подпишитесь на обновления сайта, введя свой e-mail в поле справа или подписавшись на группу во Вконтакте и канал YouTube.
Спасибо за внимание

date

03.03.2021

directory

PowerShell, Windows 10, Windows Server 2016

comments

комментариев 6

Символическая ссылка (симлинк, символьная ссылка, Symbolic link) это специальный файл на файловой системе, которые сам не содержит данных, а является по сути ярлыком, указывающим на какой-то другой объект (файл или папку). При обращении к симлику операционная система считает, что это оригинальный файл (папка) и работает с ними совершенно прозрачно.

Символические ссылки используются в Windows довольно часто для системных файлов и каталогов. Пользователь может их применять, когда нужно перенести часть “тяжелых” файлов на другой диск, но чтобы Windows считала, что файлы все еще находятся в исходном каталоге (например в ситуациях, когда нужно экономить место на SSD, перенеся некоторые каталоги на более медленный и емкий SSD, не нарушая работоспособности программ). Можно использовать симлинки на SMB файловом сервере, когда каталоги с разных LUN должны быть доступны через одну точку входа.

В Windows есть три типа файловых ссылок для NTFS томов: жесткие, мягкие (симлинки), точки соединения (Junction point).

  • Hard Links (жесткие ссылки) – могут указывать только на локальный файл, но не на папку. Такой файл – это ссылка на другой файла на этом же диске без фактического дублирования самого файла. У него отображается такой же размер и свойства, как у целевого файла (но реальное место на диске он не занимает);
  • Junction Points (Directory Hard Link, точка соединения) – могут указывать только на папку (на этом же или на другом разделе);
  • Symbolic Links (мягкая ссылка, симлинк) – могут указывать на локальный файл, папку и сетевой каталог на удаленном компьютере (UNC), поддерживаются относительные пути.

В подавляющем большинстве случаев вам будет достаточно функционала symbolic link, как наиболее универсального средства создания ссылки на любой объект.

Как создать символическую ссылку в Windows?

Для создания символических и жестких ссылок в Windows можно использовать встроенную утилиты mklink или PowerShell.

mklink утилита для создания симлинков в windows

Чтобы использовать mklinkдля создания символических ссылок нужно запустить командную строку с правами администратора. Иначе при запуске команды появится ошибка “ You do not have sufficient privilege to perform this operation ”.

параметр групповой политики Create Symbolic Links

Создадим в каталоге C:\PS символическую ссылку на файл notepad.exe:

mklink C:\PS\note.exe c:\Windows\System32\notepad.exe

Теперь для запуска процесса notepad.exe можно использовать символическую ссылку note.exe.

Теперь создадим в этом каталоге симлинк на другой каталог на этом же диcке:

mklink /D “C:\PS\Downloads” “C:\Users\user\Downloads”

пример использования mklink для создание символьных ссылок в windows

Теперь при переходе в каталог C:\PS\Downloads вы будете видеть содержимое каталога, на который он ссылается.

символическая ссылка на каталог в windows

Выведем содержимое каталога C:\PS:

Dir вывести информацию о всех symlink в папке

Как вы видите, в атрибутах некоторых файлов указано, что это symlink/simlinkd. Также указан объект, на который они ссылаются. В Windows File Explorer симлинки отображаются с иконками ярлыков, а в их свойствах можно посмотреть целевой объект на который они ссылаются.

Также можно создать символически ссылки в Windows 10 с помощью PowerShell (в этом примере я использую относительные пути, чтобы создать символическую ссылку):

New-Item -ItemType SymbolicLink -Path ".\test\tmpfiles" -Target "..\tmp\files"

создать SymbolicLink с помощью powershell

Можно создать символическую ссылку на сетевую папку на удаленном компьютере/сервере. Адрес сетевой папки нужно указывать в формате UNC. Следующий пример создаст симлинк на сетевой каталог на сервере:

mklink /D c:\ps\share \\mskfs01\Share

Например, подключим административную шару C$ с удаленного компьютера по IP адресу:

mklink /D c:\remotePC\server1 \\192.168.31.15\С$

Если при доступе к сетевой папке через симлинк, вы получили ошибку

проверьте разрешенные способы использования символических ссылок на вашем компьютере:

fsutil behavior query SymlinkEvaluation

fsutil behavior query SymlinkEvaluation

Чтобы включить использование символических ссылок на удаленные ресурсы, выполните команды:

fsutil behavior set SymlinkEvaluation R2R:1
fsutil behavior set SymlinkEvaluation R2L:1

Вы можете работать с символическими ссылками, как с обычными объектами файловой системы, можно переименовать, переносить или удалить их. Система автоматически изменит настройки таких симлинков, чтобы они указывали на верные целевые объекты.

Для удаления симлинков используются обычные команды, как и для удаления файлов:

Del c:\ps\note.exe
RD c:\ps\downloads

Как найти и вывести все символические ссылки на диске?

В Windows нет простых инструментов для просмотра и управления всеми симлинками на диске.

Вы можете вывести список всех символических ссылок на диске с помощью команды:

dir /AL /S C:\ | find "SYMLINK"

вывести все симлинке на диске в windows

Также можно вывести список всех символических ссылок на диске с помощью PowerShell. Для этого нужно просканировать все каталоги и найти NTFS объекты с атрибутом ReparsePoint:

Get-ChildItem -Path C:\ -Force -Recurse -ErrorAction 'silentlycontinue' | Where

Читайте также: