ln-s по сравнению с монтированием - связывают

Вероятно, не путь Вы предназначаете. Windows обрабатывает символьные ссылки как физический дескриптор. Инструмент для создания их является "linkd" на WinXP. Это требует локальной файловой системы, форматированной для NTFS как цель.

Самый близкий Windows добирается, через DFS. В этом случае Вы создаете специальную долю на сервере, на который отображается Ваша рабочая станция. Та доля затем имеет свое собственное собранное пространство имен, это, вероятно, что Вы ищете. Это не локально, все же.

19
задан 7 June 2011 в 16:39
4 ответа

Ад да. Если Вы выполняетесь ln -s Вы создаете символьную ссылку, которая является inode, указывающим на определенный объект файловой системы, который является, почему символьные ссылки могут пересечь файловые системы, и жесткие ссылки не могут: жесткие ссылки не имеют своего собственного inode.

Если Вы монтируете файловую систему с --bind, Вы создаете вторую точку монтирования для устройства или файловой системы.

Если Вы предполагаете символьную ссылку как перенаправление, то предполагаете a --bind смонтированная файловая система как создающий другой шлюз к данным.

Символьные ссылки и связывают монтирование, совершенно другой ballgame.

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

Править: Я думал об этом, и хит производительности мог бы быть немного больше, чем я первоначально думал. Если у Вас будет приложение, которое читает много различных файлов, то каждый новый файл, который открыт, потребует дополнительного чтения. Некоторое исследование здесь предполагает, что мое предположение корректно, поэтому если Вы имеете тяжелое приложение IO, работающее там, рассматриваете --bind опция смонтироваться выше решения для символьной ссылки.

Причина это не распространено, вероятно, то, что символьная ссылка видима в ls, тогда как связывание монтирования только видимо при рассмотрении/proc/mounts или/etc/mtab (который является тем, что делает команда монтирования, если это выполняется без параметров). Кроме этого, я не думаю, что существуют любые проблемы. Мне было бы интересно, если существует, все же.

Дополнение: другая проблема с ln -s это для некоторых приложений, когда путь разыменовывается, он может заставить приложение уклоняться, если он "ожидает", что определенные объекты будут в определенных местах.

25
ответ дан 2 December 2019 в 20:17
  • 1
    Спасибо за посредством объяснения! Небольшой последующий вопрос - что - rbind параметр на самом деле делает и как он может использоваться? Из руководства это кажется поддержками параметра, монтирующими, что подмонтирование в смонтированном дереве, это исправляет? Кроме того, только - rbind достаточно, или я должен сделать - связывают затем - снова переплетают? Еще раз спасибо. –  SyRenity 31 December 2009 в 15:53
  • 2
    mount при вызове без любых аргументов печатает содержание /etc/mtab, который имеет немного отличающуюся информацию, чем /proc/mounts. (В частности, /proc/mounts (символьная ссылка на /proc/self/mounts) всегда показывает точки монтирования, видимые процессу, читая его.) –  grawity 31 December 2009 в 16:54

Одни из больших различий между ln -s и связывание монтирования состоит в том, что можно использовать связывание, монтируются для "изменения" файловой системы только для чтения. Например, если был CD, смонтированный на /mnt/application, и Вы хотели заменить /mnt/application/badconfigfile.conf с правильной версией Вы могли сделать это:

mount -o bind /path/to/correct/file.conf /mnt/application/badconfigfile.conf

Не было бы возможно влиять на то же изменение с помощью символьной ссылки, потому что Вы не можете изменить целевую файловую систему.

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

6
ответ дан 2 December 2019 в 20:17

Различие Practial № 1 для меня между ln-s и монтируется - свяжите:

vsftpd не не позволяет просматривать каталог через символьную ссылку, но позволяет при монтировании.

Я не знаю, какого демона Вы используете, но это может вести себя так же.

2
ответ дан 2 December 2019 в 20:17

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

есть, если привязать A к B и связать B с C, а затем привязать D к B, C все равно будет привязан к A. Это может быть то, что вы хотите, или нет. Если кто-то желает, чтобы C следовал за B, то перемонтируйте его, используя те же цели, например mount -o remount BC , или используйте вместо этого - rbind . Нет опции - перепривязать .

1
ответ дан 2 December 2019 в 20:17

Теги

Похожие вопросы