Jak používat Bind-mounts a symbolické odkazy v Linuxu

V operačním systému Linux existuje mnoho nenápadných funkcí, které si uživatelé často neuvědomují, a přitom jsou nesmírně užitečné. Jakmile nováčci proniknou do těchto zdánlivě obyčejných triků, stanou se z nich pokročilejší uživatelé Linuxu. Symbolické odkazy a bind mounty jsou toho skvělým příkladem. V tomto článku si podrobně vysvětlíme, co přesně symbolický odkaz představuje, jak ho vytvořit a k čemu ho lze využít. Také si objasníme princip fungování bind mountů, jejich výhody a nakonec si ukážeme, jak je vylepšit pomocí nástroje bindfs!

MALÝ SPOILER: Pro detailnější vizuální průvodce se podívejte na video tutoriál na konci tohoto článku.

Co je to symbolický odkaz?

Symbolický odkaz, známý také jako „symlink“, je v podstatě ukazatel na jiný soubor nebo složku, která se nachází někde jinde v systému souborů. Například, vývojáři často namísto kopírování knihoven do různých částí systému, vytvářejí symbolické odkazy na složky s knihovnami a programovými soubory. Díky tomu program snadno získá přístup ke všem potřebným nástrojům a souborům, aniž by bylo nutné vytvářet zbytečné duplikáty.

Symbolické odkazy se také hojně využívají pro propojování souborů mezi různými diskovými oddíly nebo dokonce různými fyzickými disky. Představte si například situaci, kdy máte celou svou hudební sbírku uloženou na disku „B“, a tato knihovna má velikost 500 GB. Kvůli její velikosti není možné ji jednoduše přesunout na disk „A“ (nebo systémový disk).

Pro elegantní vyřešení tohoto problému mohou uživatelé vytvořit symbolické odkazy na jednotlivé soubory na disku „B“ a umístit tyto odkazy na disk „A“. Hudební přehrávač tak snadno najde a přehraje všechny vaše oblíbené skladby.

Jak používat symbolické odkazy

Symbolické odkazy lze vytvářet pro adresáře i pro jednotlivé soubory. Následující kroky vám ukážou, jak na to.

Symbolický odkaz na soubor

Pro vytvoření symbolického odkazu na soubor otevřete terminál. Následně se přesuňte do adresáře, kde se nachází soubor, na který chcete odkazovat.

cd ~/cesta/k/souboru

Vytvořte symbolický odkaz. Důkladně si rozmyslete, kam by měl odkaz směřovat.

ln -s puvodni-soubor /cesta/kam/se/odkaz/umisti

Symbolický odkaz na složku

ln -s /cesta/k/puvodni/slozce /cesta/kam/se/odkazovana/slozka/umisti

Odstranění symbolického odkazu

cd /cesta/kde/se/symlink/nachazi
rm nazev-symlinku
unlink nazev-symlinku

Co je to bind-mount?

Bind-mount je mechanismus, který umožňuje zpřístupnit obsah jedné složky v systému souborů v jiném adresáři. Zní to podobně jako symbolický odkaz na složku, ale existuje zde zásadní rozdíl. Bind-mount je velmi praktický. Administrátoři systémů ho často používají k rychlému přidání dalšího úložiště do složky v situacích, kdy je hlavní souborový systém pouze pro čtení. Může také sloužit k rychlému propojení síťového sdílení s místním adresářem, aniž by bylo nutné konfigurovat mount point v souboru fstab apod.

Jak používat bind-mounts s vestavěnými příkazy Linuxového jádra

Linuxové jádro obsahuje vestavěný příkaz pro bind mounting. Díky tomu mohou uživatelé snadno připojovat obsah adresářů napříč systémem souborů. Zde je postup.

Představte si složku se soubory, kterou chcete připojit na jiné místo. Jakmile si zvolíte zdrojový adresář, promyslete si, kam chcete jeho obsah zpřístupnit.

V tomto příkladu připojíme hudební adresář z jednoho pevného disku na druhý.

sudo mount --bind /mnt/DatovyDisk/Hudba /home/uzivatel/Hudba

Pro odpojení použijte příkaz:

umount /home/uzivatel/Hudba

BindFS

Před použitím bind-mounts, je potřeba nainstalovat nástroj bindfs. Jedná se o utilitu, která umožňuje vytváření bind mountů a navíc nabízí i pokročilejší funkce (nastavení oprávnění, přesnější zrcadlení atd.). Zde je návod, jak ho získat ve vaší linuxové distribuci:

Ubuntu

sudo apt install bindfs

Debian

sudo apt-get install bindfs

Arch Linux

Bohužel, bindfs není součástí oficiálních balíčků pro Arch Linux. Pokud uživatelé chtějí používat bindfs, musí si nainstalovat tento balíček z AUR.

Fedora

sudo dnf install bindfs

OpenSUSE

sudo zypper install bindfs

Ostatní distribuce Linuxu

Pokud chcete získat bindfs na vámi preferované distribuci, podívejte se na oficiální webové stránky bindfs. Případně otevřete správce balíčků ve vašem Linuxu, vyhledejte „bindfs“ a nainstalujte ho!

Jak používat Bindfs pro Bind-mounts

Používání bindfs nabízí několik výhod. Vestavěný příkaz jádra „bind“ funguje rychle, ale je velmi základní a neumožňuje pokročilé funkce, jako je omezování přístupu k mountům. Níže je ukázka, jak využít bindfs.

Vytvoření připojení pouze pro čtení

bindfs --perms=a-w /cesta/k/puvodni/slozce/ /cesta/kam/se/mountuje/

Vytvoření připojení pro čtení i zápis

bindfs /cesta/k/puvodni/slozce /cesta/kam/se/mountuje

Odpojení bindfs mount

sudo umount /cesta/kam/se/mountuje/

Závěrem

Základní operace, jako jsou symbolické odkazy a bind-mounts, jsou v Linuxu možná nejméně probádanými tématy, protože se zdají být málo zajímavé a běžní uživatelé je obvykle nevyužívají. Nicméně, jakmile zjistíte, že symbolické odkazy vám umožňují rychlý přístup k souborům odkudkoliv nebo že bind-mounts vám usnadní připojení dalšího úložiště, kamkoliv potřebujete, začnou tato témata být mnohem zajímavější.