Come usare bind-mount e symlink su Linux

Ci sono molte cose banali su Linux che molti utenti non pensano che siano incredibilmente utili. Quando i nuovi utenti imparano a usare questi piccoli trucchi banali e noiosi, diventano utenti Linux migliori. Bind-mount e Symlink su Linux sono un ottimo esempio di questo. In questo articolo, discuteremo esattamente di cosa sia un collegamento simbolico, come crearne uno e a cosa servono. Vedremo anche come creare bind mount, perché sono così utili e mostreremo anche agli utenti come rinforzare i bind mount con i bindf!

AVVISO SPOILER: scorri verso il basso e guarda il video tutorial alla fine di questo articolo.

Cos’è un collegamento simbolico?

Un collegamento simbolico, o “collegamento simbolico”, è un riferimento a un altro file o cartella da qualche altra parte nel file system. Ad esempio, la maggior parte degli sviluppatori, invece di duplicare le librerie sul sistema di un utente, farà in modo che il proprio codice crei collegamenti simbolici alle cartelle della libreria e ai file di programma. Ciò consente al programma di avere facilmente tutti gli strumenti richiesti e i file di libreria di cui ha bisogno per eseguire, senza creare cruft extra.

I collegamenti simbolici vengono utilizzati anche quando si fa riferimento a file tra partizioni e unità diverse. Ad esempio: l’intera libreria musicale è archiviata sul disco rigido B e la dimensione dell’intera libreria è di 500 GB. A causa delle sue dimensioni, non è possibile spostare direttamente la libreria musicale sul disco rigido A (ovvero l’unità di sistema).

Per risolvere facilmente questo problema, gli utenti possono creare un collegamento simbolico e fare riferimento a ogni file dall’unità B all’unità A. In questo modo il lettore musicale può trovare e accedere facilmente a tutti i file musicali.

Utilizzo dei collegamenti simbolici

I collegamenti simbolici possono essere utilizzati in due modi: per collegare un’intera directory o un singolo file. Ecco come crearli.

Collegamento simbolico a un file

Per collegare simbolicamente un file, prima apri un terminale. Quindi, cd nella directory con il file da collegare.

cd ~/path/to/file

Crea il collegamento simbolico. Tieni a mente dove dovrebbe andare il link.

ln -s original-file /path/where/link/goes

Collega simbolicamente una cartella

ln -s /path/to/original/folder /path/where/linked/folder/goes

Elimina un collegamento simbolico

cd /path/where/symlink/is
rm symlinkname
unlink symlinkname

Cos’è un Bind-mount?

Un bin-mount è un modo per mostrare il contenuto di una cartella in una sola volta nel file system in una directory diversa. Il montaggio di binding suona molto collega simbolicamente una cartella, ma è molto diverso. Il bind mount è molto utile. Gli amministratori di sistema utilizzano spesso questo metodo per aggiungere rapidamente più spazio di archiviazione a una cartella al volo quando il file system del sistema principale è di “sola lettura”. I bind-mount possono anche essere usati per associare rapidamente una condivisione di rete a una directory locale, senza la necessità di impostare un punto di montaggio nel file fstab, ecc.

Utilizzo dei montaggi bind con il comando kernel Linux integrato

Il kernel Linux ha un comando bind integrato. È per questo motivo che gli utenti possono montare facilmente il contenuto delle directory attraverso il file system con facilità. Ecco come farlo.

Pensa a una directory che contiene file che desideri montare in un’altra posizione. Quando hai in mente la posizione, pensa al luogo in cui vorresti montarlo.

In questo esempio, collegheremo una directory musicale da un disco rigido all’altro.

sudo mount --bind /mnt/DataDrive/Music /home/user/Music

Smonta il bind mount con:

umount /home/derrik/Music

BindFS

Prima di effettuare un montaggio bind, è necessario installare bindfs. È uno strumento che rende possibile il montaggio bind e aggiunge anche funzionalità extra (impostazioni di autorizzazione, mirroring migliore e così via). Ecco come ottenerlo sulla tua distribuzione Linux:

Ubuntu

sudo apt install bindfs

Debian

sudo apt-get install bindfs

Arch Linux

Bindfs non è nelle fonti ufficiali del software Arch, sfortunatamente. Se gli utenti desiderano utilizzare bindfs, dovranno eseguire l’installazione questo pacchetto AUR anziché.

Fedora

sudo dnf install bindfs

OpenSUSE

sudo zypper install bindfs

Altri Linux

Per ottenere bindf sulla distribuzione Linux di tua scelta, considera di andare al sito ufficiale sito web bindfs. In alternativa, apri il gestore di pacchetti sul tuo PC Linux, cerca “bindfs” e installalo!

Utilizzo di Bindfs per Bind-mount

Usare bindfs ha i suoi vantaggi. Il comando di bind del kernel integrato funziona in un attimo, ma è molto semplice e non consente alcune funzionalità avanzate come la limitazione dell’accesso ai bind e così via. Ecco come utilizzare bindfs.

Crea un montaggio bind di sola lettura

bindfs --perms=a-w /path/to/the/original/directory/ /path/to/bind/to/

Crea un collegamento di lettura / scrittura

bindfs /path/to/the/original/directory /path/to/bind/to

Smonta un montaggio bindfs

sudo umount /path/to/bind/

Conclusione

Operazioni banali come collegamenti simbolici e bind mount sono probabilmente l’argomento meno esplorato su Linux perché sono piuttosto poco interessanti e di solito non vengono utilizzate dagli utenti generici. Il fatto è: quando apprendi che i collegamenti simbolici ti consentono di accedere rapidamente e facilmente ai file ovunque, o che i supporti vincolati possono rendere incredibilmente facile aggiungere spazio di archiviazione aggiuntivo dove vuoi, questi argomenti diventano molto più interessanti.