Жорсткі та символічні посилання у Windows
Використовуючи жорсткі посилання файлів і каталогів, можна мати кілька різних імен файлів або каталогів, що посилаються на ті самі дані. У windows механізм працює у файловій системі NTFS. Стаття про те, як зробити такі посилання в windows.
- Встановити програму або гру на HDD диск, а частину перенести на SSD.
- Перетягніть дані програми без змінення конфігурації. (Приклад нижче для SQL Server)
- Додаток/дані не влазять на один диск, а на іншому диску якраз є вільне місце під частину, що залишилася.
Все це можна вирішити, використовуючи посилання на файли та каталоги. Наприклад, починаючи з Windows Vista у вінді відсутня каталог "Documents and Settings", а операційна система на нього посилається з папки "Users" для сумісності з програмами написаними для Windows XP.
Створення символічного посилання
Для створення посилання використовується команда mklink (з командного рядка cmd, кеп).
Мені недавно хотілося видалити папку кеша оновлень Microsoft SQL Server, щоб звільнити 2 Гб на системному диску SSD. Замість видалення, я переніс дані на інший диск (D:). Створив символьне посилання і, вуаля, місце звільнено, а SQL Server думає, що дані на попередньому місці.
> d:\distr\Sql Server\Update Cache
Існують інструменти створення посилань через графічний інтерфейс, наприклад Link Shell Extension або NTFS Link , також їх можна легко зробити в Far'е по Alt+F6
Відмінності жорстких посилань від символічних посилань та зв'язків
Матеріал із довідки Far Manager.
На розділах NTFS можна створювати жорсткі посилання (HardLink) для файлів, зв'язку (Junction) для папок та символічні посилання (SymLink) для файлів та папок за допомогою команди Alt-F6.
Жорсткі посилання
Жорстке посилання (HardLink) - це ще один запис у папці для даного файлу.
Коли створюється жорстке посилання, файл не копіюється фізично, а тільки з'являється під ще одним ім'ям або в ще одному місці, а його старі ім'я і місцезнаходження залишаються недоторканими. З цього моменту жорстке посилання невідмінна від початкового запису у папці. Єдина відмінність - те, що для жорсткого посилання не створюється коротке ім'я файлу, тому з ДОС-програм вона не видно.
Коли розмір або дата файлу змінюється, всі відповідні записи в папках оновлюються автоматично. При видаленні файлу він не видаляється фізично доти, доки всі жорсткі посилання, що вказують на нього, не будуть видалені. Порядок їхнього видалення значення не має. У разі видалення жорсткого посилання в кошик кількість посилань у файлу зберігається.
FAR вміє створювати жорсткі посилання, відображати їх кількість для кожного файлу в окремій колонці (за замовчуванням це остання колонка у 9-му режимі панелей), а також сортувати файли за кількістю жорстких посилань.
Створювати жорсткі посилання можна тільки на тому ж диску, на якому розміщено вихідний файл.
Зв'язки
Ця технологія дозволяє відображати будь-які локальні папки на інші локальні папки. Наприклад, якщо папка D:\SYMLINK вказує на C:\WINNT\SYSTEM32 як свою мету, то програма, що звертається до D:\SYMLINK\DRIVERS, буде насправді звертатися до C:\WINNT\SYSTEM32\DRIVERS. На відміну від жорстких посилань, зв'язки папок не обов'язково повинні розміщуватись на тому ж диску.
У Windows 2000 неможливо створити зв'язок, що посилається на папку CD-ROM, але це обмеження можна обійти, змонтувавши CD-ROM диск на папку NTFS-розділу.
Символічні посилання
Символічні посилання (SymLink) на NTFS підтримуються, починаючи з Windows Vista (NT 6.0). підтримуються відносні шляхи.
UPD PowerShell
Створення символічного посилання за допомогою New-Item
Записки IT фахівця
Працюємо з жорсткими та символічними посиланнями у Windows
Жорсткі та символічні посилання давно знайомі та активно використовуються Linux-адміністраторами, у той час як їхні Windows колеги використовують їх набагато рідше, а деякі взагалі не знають про таку можливість. Проте така можливість у Windows існує і дозволяє значно спростити деякі сценарії роботи папками та файлами У цій статті ми розглянемо всі види посилань, доступні в середовищі Windows, а також різні способи роботи з ними, починаючи від командного рядка та закінчуючи PowerShell.
Онлайн-курс з влаштування комп'ютерних мереж
На поглибленому курсі "Архітектура сучасних комп'ютерних мереж" ви з нуля навчитеся працювати з Wireshark і «під мікроскопом» вивчіть роботу мережевих протоколів.
Жорсткі посилання (HardLink)
Жорсткі посилання являють собою додатковий запис у таблиці файлів розділів для існуючого файлу. Таким чином, жорстке посилання не відрізняється від оригінального файлу, але файл фізично не копіюється і залишається на диску в одній копії за допомогою будь-якого з жорстких посилань, решта оновлюються автоматично (що логічно, оскільки є лише один файл).
Ми можемо перейменовувати, копіювати, переміщувати (у межах логічного тому) посилання - розмір займаного місця у своїй не зміниться. При видаленні посилань файл продовжує існувати доти, доки не буде видалено останнє жорстке посилання на нього. Фактично відрізнити де знаходиться оригінальний файл, а де жорстке посилання неможливо, по суті, файл на розділі це і є жорстке посилання.
Жорстке посилання може існувати тільки в межах логічного тома, що підтримується файловими системами NTFS і ReFS починаючи зі складання 19536.
Для створення жорсткого посилання можна скористатися утилітою mklink:
mklink /H C:\Folder1\LinkFileName C:\Folder\FileName
Де ключ /H наказує створити саме жорстке посилання, далі йде шлях до нового файлу та цільового файлу, на який ми робимо посилання. Шлях можна вказувати як абсолютні, так і відносні, в імені файлу, що створюється, не забувайте вказувати розширення.
Посилання можна створювати і за допомогою PowerShell, для цього скористайтесь командою:
New-Item -ItemType HardLink -Path C:\Folder1\LinkFileName -Target C:\Folder\FileName
Команда інша, але принцип той самий: -ItemType - тип створюваного посилання, у нашому випадку жорстке посилання, -Path - шлях до створюваного файлу посилання, -Target - Файл на який ми робимо посилання.
Чи можна зробити жорстке посилання на директорію? Ні, лише на файли.
Начебто все зрозуміло, але якщо уважний читач загляне у властивості папки з жорстким посиланням, він побачить, що її розмір дорівнює вихідному файлу, якщо зробимо у ній ще одне жорстке посилання - двом вихідним файлам. Як це? Не варто хвилюватися, все нормально.Для операційної системи жорстке посилання нічим не відрізняється від звичайного файлу і підрахунку вільного місця враховується розмір кожного посилання, але насправді на диску зберігається єдина копія. У цьому можна переконатися, якщо одночасно зі створенням жорстких посилань контролювати вільне місце на диску.
За бажання ми можемо провернути навіть такий фокус:
Який висновок можна зробити з того, що ми побачили і де нам можуть стати в нагоді жорсткі посилання? Насамперед для надання користувачам доступу до об'ємних архівів, образів або інсталяційних пакетів. Скажімо, у вас є файловий сервер і кілька відділів, кожному з яких потрібно надати доступ до одного і того ж великого файлу. При цьому ви можете не боятися, що хтось видалить файл, він видалить його тільки в директорії, для решти користувачів він залишиться доступним.
Але при цьому треба дуже уважно ставитися до питання одночасного редагування файлу, так як він існує в єдиному екземплярі, але доступний по безлічі посилань в цьому сценарії можуть виникнути різні колізії.
Точки з'єднання (Junction)
Дуже стара технологія, що підтримується ще з Windows 2000, дозволяє зробити один з каталогів псевдонімом іншого каталогу. Чимось нагадує символічні посилання, але у вкрай спрощеному варіанті. Як ціль можна використовувати лише локальні папки, але при цьому немає обмеження щодо розміщення їх на одному томі. Тобто. цільова папка може бути на диску C:, а точка з'єднання для неї на диску D: і все буде працювати. Точки з'єднання підтримуються файловими системами NTFS та ReFS.
Для створення точки з'єднання можна використовувати mklink:
mklink /J D:\LinkFolder C:\Folder
Ключ /J вказує на створення точки з'єднання, далі слідує папка каталогу-псевдоніма і папка цільового каталогу. За будь-якої зміни цільового каталогу (переміщення, перейменування, видалення) точка з'єднання перестає працювати.
Зверніть увагу, що ця папка у провіднику відображається як ярлик, а виведення команди dir як точка з'єднання.
Це ж дія в PowerShell:
New-Item -ItemType Junction -Path D:\LinkFolder -Target C:\Folder
Коментувати тут особливо нічого, стислість не входить до чеснот PowerShell, але не залишає місця здогадів, все просто і зрозуміло.
Навіщо зараз потрібні точки з'єднання? Після появи в NT 6.0 справжніх символічних посилань не потрібні, але ви можете зустрітися з ними як у застарілих системах, так і в сучасних, де вони можуть бути у вигляді спадщини. Тому знати про них та вміти з ними працювати сучасному адміністраторові треба.
Символічні посилання (SymbolicLink)
Мабуть, найпопулярніший вид зв'язку дозволяє створювати безліч псевдонімів для файлів або каталогів розміщуючи їх на будь-яких підтримуваних локальних файлових системах. Як мета можуть бути використані як локальні, так і мережеві об'єкти. Під час створення символічного посилання можна використовувати як абсолютні, і відносні шляхи. Але в останньому випадку ви не можете переміщувати посилання – воно перестане працювати. Символічні посилання підтримуються з NT 6.0 (Vista і Server 2008) і працюють з файловими системами NTFS і ReFS.
Для створення символічних посилань можна використовувати mklink, без параметрів вона створює симлінк для файлу:
mklink C:\Folder1\LinkFileName C:\Folder\FileName
При створенні посилання не забуваємо вказати розширення файлу. Як і у випадку з точкою з'єднання символічне посилання відображається у вигляді ярлика та позначається у виведенні команди dir:
Для створення символічного посилання на директорію додайте ключ /D:
mklink /D D:LinkFolder C:Folder
У PowerShell все простіше, тип об'єкта буде визначено автоматично:
New-Item -ItemType SymbolicLink -Path C:\Folder1\LinkFileName -Target C:\Folder\FileName
Якщо як мета зазначений файл - буде створено посилання на файл, каталог - посилання на каталог.
При перейменуванні, переміщенні чи видаленні вихідного файлу чи каталогу всі символічні посилання працювати перестануть:
Під час копіювання символічного посилання за межі локального тома буде скопійовано вихідний файл, навіть якщо цільовий том підтримує роботу з посиланнями, але це не заважає створити нове посилання на іншому томі.
Онлайн-курс з влаштування комп'ютерних мереж
На поглибленому курсі "Архітектура сучасних комп'ютерних мереж" ви з нуля навчитеся працювати з Wireshark та «під мікроскопом» вивчіть роботу мережевих протоколів. Протягом курсу треба буде виконати понад п'ятдесят лабораторних робіт у Wireshark.
Чи допомогла стаття? Підтримай автора та нові статті виходитимуть частіше:
Або підпишись на наш Телеграм-канал: