Πώς να χρησιμοποιήσετε Bind-mounts και Symlinks στο Linux

Υπάρχουν πολλά εγκόσμια πράγματα στο Linux που πολλοί χρήστες δεν πιστεύουν ότι πολλά από αυτά είναι απίστευτα χρήσιμα. Όταν οι νέοι χρήστες μαθαίνουν πώς να χρησιμοποιούν αυτά τα πεζά, βαρετά μικρά κόλπα, γίνονται καλύτεροι χρήστες Linux. Τα Bind-mounts και τα Symlinks στο Linux είναι ένα χαρακτηριστικό παράδειγμα αυτού. Σε αυτό το άρθρο, θα συζητήσουμε ακριβώς τι είναι ένας συμβολικός σύνδεσμος, πώς να δημιουργήσετε έναν και σε τι χρησιμεύουν. Θα εξετάσουμε επίσης τον τρόπο δημιουργίας bind mount, γιατί είναι τόσο χρήσιμα, και θα δείξουμε στους χρήστες πώς να ενισχύσουν τα bind mounts με bindfs!

SPOILER ALERT: Κάντε κύλιση προς τα κάτω και παρακολουθήστε το εκπαιδευτικό βίντεο στο τέλος αυτού του άρθρου.

Τι είναι ο Symlink;

Ένας συμβολικός σύνδεσμος ή “συμβολικός σύνδεσμος” είναι μια αναφορά σε άλλο αρχείο ή φάκελο κάπου αλλού στο σύστημα αρχείων. Για παράδειγμα, οι περισσότεροι προγραμματιστές, αντί να αντιγράφουν βιβλιοθήκες στο σύστημα ενός χρήστη, θα βάλουν τον κώδικά τους να δημιουργεί συμβολικούς συνδέσμους προς φακέλους βιβλιοθήκης και αρχεία προγράμματος. Αυτό επιτρέπει στο πρόγραμμα να έχει εύκολα όλα τα απαραίτητα εργαλεία και αρχεία βιβλιοθήκης που χρειάζεται για να τρέξει, χωρίς να δημιουργεί επιπλέον cruft.

  Πώς να παίξετε Spelunky στο Linux

Οι συμβολικοί σύνδεσμοι χρησιμοποιούνται επίσης κατά την αναφορά αρχείων μεταξύ διαφορετικών κατατμήσεων και μονάδων δίσκου. Για παράδειγμα: ολόκληρη η μουσική βιβλιοθήκη σας είναι αποθηκευμένη στον σκληρό δίσκο Β και το μέγεθος ολόκληρης της βιβλιοθήκης είναι 500 GB. Λόγω του μεγέθους της, δεν είναι δυνατή η απευθείας μεταφορά της μουσικής βιβλιοθήκης στον σκληρό δίσκο A (γνωστός και ως μονάδα δίσκου συστήματος).

Για να λύσουν εύκολα αυτό το πρόβλημα, οι χρήστες μπορούν να δημιουργήσουν μια συμβολική σύνδεση και να παραπέμψουν σε κάθε αρχείο από τη μονάδα Β στη μονάδα Α. Με αυτόν τον τρόπο το πρόγραμμα αναπαραγωγής μουσικής μπορεί να βρει και να αποκτήσει εύκολα πρόσβαση σε όλα τα αρχεία μουσικής.

Χρήση συμβολικών συνδέσμων

Οι συμβολικοί σύνδεσμοι μπορούν να χρησιμοποιηθούν με δύο τρόπους: για τη σύνδεση ενός ολόκληρου καταλόγου ή ενός μεμονωμένου αρχείου. Δείτε πώς να τα δημιουργήσετε.

Συμβολισμός ενός αρχείου

Για να συνδέσετε ένα αρχείο, ανοίξτε πρώτα ένα τερματικό. Στη συνέχεια, cd στον κατάλογο με το αρχείο που πρόκειται να συνδεθεί.

cd ~/path/to/file

Δημιουργήστε τον συμβολικό σύνδεσμο. Λάβετε υπόψη πού πρέπει να πάει ο σύνδεσμος.

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

Συμβολισμός ενός φακέλου

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

Διαγραφή συμβολικού συνδέσμου

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

Τι είναι το Bind-mount;

Το bin-mount είναι ένας τρόπος εμφάνισης των περιεχομένων ενός φακέλου σε μία θέση στο σύστημα αρχείων σε διαφορετικό κατάλογο. Η τοποθέτηση bind ακούγεται πολύ σύνδεσμος που συνδέει συμβολικά έναν φάκελο, αλλά είναι πολύ διαφορετικό. Το bind mount είναι πολύ χρήσιμο. Οι διαχειριστές συστήματος χρησιμοποιούν συχνά αυτήν τη μέθοδο για να προσθέτουν γρήγορα περισσότερο χώρο αποθήκευσης σε έναν φάκελο εν κινήσει όταν το σύστημα αρχείων του κύριου συστήματος είναι «μόνο για ανάγνωση». Τα Bind-mounts μπορούν επίσης να χρησιμοποιηθούν για τη γρήγορη σύνδεση ενός κοινόχρηστου στοιχείου δικτύου σε έναν τοπικό κατάλογο, χωρίς να χρειάζεται να ρυθμίσετε ένα σημείο προσάρτησης στο αρχείο fstab κ.λπ.

  Πώς να παίξετε το God of War στο Linux

Χρήση Bind-mounts με την ενσωματωμένη εντολή Linux Kernel

Ο πυρήνας του Linux έχει μια ενσωματωμένη εντολή bind. Εξαιτίας αυτού, οι χρήστες μπορούν εύκολα να προσαρτήσουν τα περιεχόμενα των καταλόγων στο σύστημα αρχείων με ευκολία. Δείτε πώς να το κάνετε.

Σκεφτείτε έναν κατάλογο που έχει αρχεία που θέλετε να προσαρτήσετε σε άλλη τοποθεσία. Όταν έχετε κατά νου την τοποθεσία, σκεφτείτε το μέρος στο οποίο θα θέλατε να την τοποθετήσετε.

Σε αυτό το παράδειγμα, θα συνδέσουμε έναν κατάλογο μουσικής από τον έναν σκληρό δίσκο στον άλλο.

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

Αποσυνδέστε τη βάση σύνδεσης με:

umount /home/derrik/Music

BindFS

Πριν κάνετε ένα bind-mount, θα χρειαστεί να εγκαταστήσετε bindfs. Είναι ένα εργαλείο που καθιστά δυνατή την τοποθέτηση bind και προσθέτει επιπλέον λειτουργίες (ρυθμίσεις αδειών, καλύτερο mirroring κ.λπ.). Δείτε πώς μπορείτε να το αποκτήσετε στη διανομή Linux:

  Πώς να εγκαταστήσετε το Upterm σε Linux

Ubuntu

sudo apt install bindfs

Debian

sudo apt-get install bindfs

Arch Linux

Το Bindfs δεν περιλαμβάνεται στις επίσημες πηγές λογισμικού Arch, δυστυχώς. Εάν οι χρήστες θέλουν να χρησιμοποιήσουν bindfs, θα πρέπει να το εγκαταστήσουν αυτό το πακέτο AUR αντι αυτου.

Μαλακό καπέλλο

sudo dnf install bindfs

OpenSUSE

sudo zypper install bindfs

Άλλα Linux

Για να λάβετε bindfs στη διανομή Linux της επιλογής σας, σκεφτείτε να πάτε στον επίσημο ιστοσελίδα bindfs. Εναλλακτικά, ανοίξτε τον διαχειριστή πακέτων στον υπολογιστή σας Linux, αναζητήστε “bindfs” και εγκαταστήστε τον!

Χρήση Bindfs για Bind-mounts

Η χρήση bindfs έχει τα πλεονεκτήματά της. Η ενσωματωμένη εντολή bind του πυρήνα λειτουργεί αμέσως, αλλά είναι πολύ βασική και δεν επιτρέπει ορισμένες προηγμένες λειτουργίες, όπως περιορισμό της πρόσβασης σε bind κ.λπ. Δείτε πώς μπορείτε να χρησιμοποιήσετε τα bindfs.

Δημιουργήστε μια βάση σύνδεσης μόνο για ανάγνωση

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

Δημιουργήστε μια βάση σύνδεσης ανάγνωσης/εγγραφής

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

Αποσυνδέστε μια βάση bindfs

sudo umount /path/to/bind/

συμπέρασμα

Οι κοσμικές λειτουργίες όπως οι συμβολικοί σύνδεσμοι και οι βάσεις σύνδεσης είναι πιθανώς το λιγότερο εξερευνημένο θέμα στο Linux, λόγω του γεγονότος ότι δεν είναι αρκετά ενδιαφέρουσες και συνήθως δεν χρησιμοποιούνται από τους γενικούς χρήστες. Το γεγονός είναι: όταν μαθαίνετε ότι οι συμβολικοί σύνδεσμοι σάς επιτρέπουν να έχετε γρήγορη και εύκολη πρόσβαση στα αρχεία οπουδήποτε, ή ότι οι βάσεις σύνδεσης μπορούν να κάνουν απίστευτα εύκολο να βιδώσετε σε πρόσθετο χώρο αποθήκευσης όπου θέλετε, αυτά τα θέματα γίνονται πολύ πιο ενδιαφέροντα.