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.
Sommario:
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.