PDA

Показать полную графическую версию : Жесткие и символические ссылки в NTFS - все вопросы


Страниц : [1] 2

truvo
11-04-2009, 02:49
С легкой руки Amigos открыл для себя Америку - жесткие и символьные ссылки в NTFS. Полезная штука, о которой, думаю, не все знают. Воспользовавшись фильтрами, обнаружил, что специальной темы на нашем форуме нет - так, отдельные упоминания. Поэтому решил создать такую тему - для обмена опытом и решения соответствующих вопросов.

Полезные материалы по теме:
Создание точек соединения NTFS и управление ими (http://support.microsoft.com/kb/205524/ru)
Секреты NTFS. Жесткие ссылки (http://www.computerra.ru/gid/rtfm/system/38545/)
Секреты NTFS. Символьные ссылки (http://www.computerra.ru/gid/rtfm/system/38547/)
NTFS Links - плагин для Total Commander (http://wincmd.ru/plugring/ntfslinks.html)
Чисто символически (http://vadikan.spaces.live.com/blog/cns!3270464DC78ABAEE!264.entry)
Junction (http://technet.microsoft.com/ru-ru/sysinternals/bb896768.aspx)
Link Shell Extension (http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html)

Busla
11-04-2009, 13:22
truvo, 2k и XP не поддерживает символические ссылки - они появились только в Vista. Не путай людей!

truvo
11-04-2009, 13:34
Busla, исходя из того, что я начитал в Гугле - поддерживает. Но только на каталоги (сам проверил и убедился!). Только название вроде бы "символьные".

А на файлы - возможны только жесткие ссылки.

Котяра
11-04-2009, 14:36
http://vadikan.spaces.live.com/blog/cns!3270464DC78ABAEE!264.entry
Если бы я работал в Windows Vista, я бы обошелся командой mklink.

Создание символической ссылки.
MKLINK [[/D] | [/H] | [/J]] Ссылка Назначение
/D Создание символической ссылки на каталог.
По умолчанию создается символическая ссылка на файл.
/H Создание жесткой связи вместо символической ссылки.
/J Создание соединения для каталога.

Подробнее об этой команде можно почитать в статье Марка Руссиновича на Technet. Но я работал в XP, где проще всего для этой цели воспользоваться утилитой все того же Марка - Junction. Пользоваться ей несложно:

junction <Ссылка> [<Назначение>]

Busla
11-04-2009, 16:07
truvo, junction point (точка разветвления) и symbolic link (символическая ссылка) - разные сущности, хотя и похожие.
Интернет (во главе с Гуглом), это не только кладезь знаний, но ещё и сборник заблуждений, как говорится: "не пускайте детей в интернет, - он от них тупеет". "Полистайте" MSDN (у меня в подписи ссылка на памятку по всему этому безобразию).
В русскоязычной литературе (и по Windows, и по Unix, и по Linux), а так же в локализованных версиях Windows именно символические.

Vadikan
11-04-2009, 18:38
junction point (точка разветвления) и symbolic link (символическая ссылка) - разные сущности, хотя и похожие. »
А в чем их практическое различие?

Есть и третий термин - Создание точек соединения NTFS и управление ими (http://support.microsoft.com/?kbid=205524) :) Но это так перевели Junction когда-то. И это правильнее, чем
junction point (точка разветвления)
разветвлениe - это fork

2k и XP не поддерживает символические ссылки - они появились только в Vista. »
Руссинович так не считает... Windows 2000 and higher supports directory symbolic links, where a directory serves as a symbolic link to another directory on the computer.
<..>
Directory symbolic links are known as NTFS junctions in Windows. Это из описания к его Junction http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx

Может в других ОС какие-то различия и существуют, но в Windows это равноправные понятия.

Busla
11-04-2009, 21:10
А в чем их практическое различие? »
в том, что поведение junction point исторически не стандартизировано - в разных версиях Windows ведут себя по-разному. А для symlink варианты обработки чётко прописаны (http://msdn.microsoft.com/en-us/library/aa365682(VS.85).aspx).

По поводу разветвления/соединения - обязательно уточню. Спасибо.

Руссинович это написал довольно давно - когда у MS такого термина ещё не было. Термины и понятия не совсем одно и то же. Точно так же мы часто не делаем различий между словами Папка и Директория (каталог), хотя как термины они вовсе не однозначны.

truvo
12-04-2009, 01:20
Интернет (во главе с Гуглом), это не только кладезь знаний, но ещё и сборник заблуждений »Я же вам написал чётко, чтосам проверил и убедился! »Поставил плагин для Totala, создал ссылку на каталог из диска C на диске D. Или вы хотите, чтобы я своим глазам не верил? Не дождетесь.

Grub
12-04-2009, 02:48
Можно по подробнее. Я впервые встретил эти термины и не пойму что к чему. :(
1. при создании жесткой ссылки у меня создается точная копия файла\папки? Занимает столько же места?
2. если у меня "связаны" несколько файлов\папок м\д собой, то при удалении связь не рвется(это из статьи про жесткие ссылки). Как это достигается? За счет чего? Как тогда удалить из цепочки ссылок не нужную чтобы не разорвать всю цепь?
3. практическое применение?
Например, у меня несколько проектов раскиданы по разным папкам, где много других второстепенных файлов. Для удобства бэкапа мне удобнее было бы видеть все проекты в одном месте, скажем в D:\4Backup. Нет проблем! В D:\4Backup создаются папки-ссылки на папки проектов. Теперь, если я, скажем, захочу прожечь все проекты на DVD, мне не нужно будет ползать по диску, собирая нужные папки - все сосредоточено в одном месте.
из примера следует что мы сначала развели бардак, а потом решили жесткими ссылками все собрать вместе. Не проще файлы и папки переместить в D:\4Backup?
Надеюсь Vadima Sterkina не обидел своим высказыванием.

amel27
12-04-2009, 06:04
1. Нет, файл не создается - в таблице NTFS создается еще один "указатель" на тот же физический файл. Все указатели, включая исходный равноправны, сам файл удалится только вместе с последним "указателем".

2. Как сказал выше - нет никакой "цепочки", физический файл - один, логических ссылок - неограниченно. Жеские ссылки поддерживаются только для файлов (не для папок) и только в пределах NTFS-тома.

3. Навскидку: http://forum.oszone.net/showthread.php?p=407544#post407544

truvo
12-04-2009, 11:23
Grub, скачай то, что в шапке под п. 4 - объем малюсенький, и там в справке (она на русском языке) есть хорошие примеры насчетпрактическое применение? »

Busla
12-04-2009, 12:23
Я же вам написал чётко, что сам проверил и убедился! »
Убедился в чём?! Создай ярлык на папку - тоже будет похоже себя вести (в ряде случаев) - это же не значит, что ярлык и символическая ссылка - одно и то же ;-)

truvo
12-04-2009, 14:28
Busla, вы бы тоже не путали людей с умным видом... Если имеете в виду что-то конкретное, то выражайтесь яснее. Скачайте плагин к TC, ознакомьтесь с его работой, посмотрите на пути, на свойства того что получается - это разве ярлык? Ну что вам, ещё скрины приводить? Вот из справки к плагину:Поле Глубина рекурсии... предназначено для указания того, как поступать с каталогами: создавать для них символические ссылки или создавать обычные подкаталоги, добавляя в них жёсткие ссылки на файлы.

Busla
12-04-2009, 20:12
truvo, я выражаюсь предельно ясно, с отсылками на официальную документацию, а нагуглить можно что угодно.

toliksu
24-04-2009, 15:09
truvo, а теперь возьмите и удалите ту "ссылку" которую вы создали на на диске D.
через explorer тогда и поймете разницу :))
Busla, есть вопрос а в server 2008 на DFS ссылки работают ?

truvo
24-04-2009, 16:52
toliksu, видимо вы об этом: ссылка в шапке под п. 4, цитирую:Некоторые программы, в частности - Проводник Windows, не умеют корректно распознавать символические ссылки! В результате при попытке удаления символической ссылки Проводником будет удалено всё содержимое оригинального каталога! Это НЕ ошибка программы NTFS Links, это особенность работы программ, не умеющих правильно работать с символическими ссылками.Мораль: не пользуйтесь проводником.

toliksu
24-04-2009, 18:33
truvo, NTFS Links, это плагин который обрабатывает точки соединения NTFS, я к примеру пользуюсь для работы с junction point Farом.
Попробуйте зайти по сети на Ваш диск D, средствами фара видно что это связь, а вот разорвать увы.
Если вы работали с Unix системами то могли видеть что Symlink существующие там можно создавать и на другие файловые системы, на другие сетевые ресурсы. Этого хотели и от microsft.
И вот похоже они это реализовали в Symbolic Links.

truvo
24-04-2009, 23:20
toliksu, усё это (насчет сети и Unix) для меня заоблачные выси... Я создал тему, чтобы народу было где поговорить... ну, заодно и самому просветиться малясь...

Busla
25-04-2009, 10:17
toliksu, 2008 не эксплуатировал вообще :-(

toliksu
27-04-2009, 21:03
truvo, Чесно говоря, до того как прочитал статью Busla "Ссылочные объекты NTFS" ну и адльше по теме думал, что это кривой Symlink от Microsofta хотя пользуюсь ими уже года 2-3. Но когда начал использовать их внутри DFS раздела, впал в ступор. Они видны только на том сервере где ты их создал. А другие сервера их не видят. Остается надежда что на 2008 сервере Symbolic Links работает аналогично Symlink.




© OSzone.net 2001-2012