20.7. Δημιουργώντας Ετικέτες (Labels) στις Συσκευές Δίσκων
Προηγ | Κεφάλαιο 20. GEOM: Διαχείριση Συστοιχιών Δίσκων | Επόμενο

## 20.7. Δημιουργώντας Ετικέτες (Labels) στις Συσκευές Δίσκων

Κατά τη διάρκεια της αρχικοποίησης, στην εκκίνηση του συστήματος, ο πυρήνας του FreeBSD θα δημιουργήσει τα απαραίτητα αρχεία για κάθε συσκευή που ανιχνεύει. Αυτή η μέθοδος ανίχνευσης συσκευών, μπορεί να δημιουργήσει προβλήματα. Για παράδειγμα, τι θα γίνει αν προσθέσουμε ένα νέο δίσκο USB; Είναι αρκετά πιθανό μια συσκευή μνήμης flash να πάρει το όνομα `da0` και η αρχική `da0` να μετακινηθεί στο `da1`. Αυτό θα προκαλέσει προβλήματα στην προσάρτηση των συστημάτων αρχείων, αν υπάρχουν οι αντίστοιχες καταχωρίσεις τους στο `/etc/fstab`, και μπορεί ακόμα και να παρεμποδίσει την κανονική εκκίνηση του συστήματος.

Μια λύση είναι να ρυθμίσετε τις συσκευές SCSI με τέτοιο τρόπο, ώστε η αρίθμηση τους να είναι συνεχόμενη. Έτσι, κάθε φορά που προσθέτετε μια νέα συσκευή στον ελεγκτή SCSI θα είστε σίγουρος ότι θα λάβει αριθμό που δεν έχει χρησιμοποιηθεί. Αλλά τι γίνεται με τις συσκευές USB που μπορεί να αντικαταστήσουν τον κύριο SCSI δίσκο; Αυτό μπορεί πράγματι να συμβεί, καθώς οι συσκευές USB ανιχνεύονται κατά βάση πριν από τον ελεγκτή SCSI. Μια λύση είναι να βάζετε τις συσκευές αυτές μόνο μετά την εκκίνηση του συστήματος. Μια άλλη μέθοδος είναι να χρησιμοποιείτε μόνο μια συσκευή τύπου ATA και να μην καταχωρείτε ποτέ τους δίσκους SCSI στο `/etc/fstab`.

Υπάρχει ωστόσο καλύτερη λύση. Χρησιμοποιώντας το βοηθητικό πρόγραμμα `glabel`, ένας διαχειριστής ή χρήστης, μπορεί να αποδώσει ετικέτες στις συσκευές δίσκων και να τις χρησιμοποιήσει στο `/etc/fstab`, αντί για τα συμβατικά ονόματα συσκευών. Επειδή η `glabel` αποθηκεύει την ετικέτα στον τελευταίο τομέα του κάθε παροχέα (συσκευής δίσκου), η ετικέτα διατηρείται και μετά από την επανεκκίνηση του συστήματος. Χρησιμοποιώντας αυτή την ετικέτα ως όνομα συσκευής, θα μπορείτε να προσαρτήσετε πάντα το σύστημα αρχείων, άσχετα με το πραγματικό όνομα συσκευής που έχει αποδοθεί στο δίσκο.

### Σημείωση:

Δεν χρειάζεται φυσικά να τονίσουμε ότι αυτή η ετικέτα θα πρέπει να είναι μόνιμη. Το βοηθητικό πρόγραμμα `glabel` μπορεί να δημιουργήσει τόσο μόνιμες όσο και προσωρινές ετικέτες. Μόνο οι μόνιμες ετικέτες διατηρούνται ανέπαφες μετά από μια επανεκκίνηση. Δείτε τη σελίδα manual της glabel(8) για περισσότερες πληροφορίες σχετικά με τα είδη των ετικετών.

### 20.7.1. Είδη Ετικετών και Παραδείγματα

Υπάρχουν δύο τύποι ετικετών, η γενική ετικέτα και η ετικέτα συστήματος αρχείων. Οι ετικέτες μπορεί να είναι προσωρινές ή μόνιμες. Οι μόνιμες ετικέτες μπορούν να δημιουργηθούν με τις εντολές tunefs(8) ή newfs(8). Στην περίπτωση αυτή, θα δημιουργηθούν σε ένα υποκατάλογο του `/dev`. Για παράδειγμα, οι ετικέτες συσκευών με σύστημα αρχείων UFS2, θα δημιουργηθούν στον κατάλογο `/dev/ufs`. Μόνιμες ετικέτες μπορούν επίσης να δημιουργηθούν με χρήση της εντολής `glabel label`. Οι ετικέτες αυτές δεν εξαρτώνται από το σύστημα αρχείων, και δημιουργούνται στον κατάλογο `/dev/label`.

Οι ετικέτες προσωρινού τύπου, χάνονται σε κάθε επανεκκίνηση του συστήματος. Οι ετικέτες αυτές δημιουργούνται στον κατάλογο `/dev/label` και είναι τέλειες για πειραματισμούς. Μπορείτε να δημιουργήσετε προσωρινές ετικέτες με την εντολή `glabel create`. Για περισσότερες πληροφορίες, διαβάστε τη σελίδα manual της glabel(8).

Για να δημιουργήσετε μια μόνιμη ετικέτα για ένα σύστημα αρχείων UFS2, χωρίς να καταστρέψετε τα δεδομένα που περιέχει, χρησιμοποιήστε την ακόλουθη εντολή:

`#` `tunefs -L `home` `/dev/da3``

### Προειδοποίηση:

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

Θα πρέπει τώρα να υπάρχει μια ετικέτα στον κατάλογο `/dev/ufs` η οποία μπορεί να προστεθεί στο `/etc/fstab`:

/dev/ufs/home /home ufs rw 2 2

### Σημείωση:

Το σύστημα αρχείων δεν πρέπει να είναι προσαρτημένο καθώς εκτελείτε την εντολή `tunefs`.

Μπορείτε τώρα να προσαρτήσετε το σύστημα αρχείων με το συνήθη τρόπο:

`#` `mount /home`

Από εδώ και πέρα, και όσο το άρθρωμα `geom_label.ko` φορτώνεται στον πυρήνα μέσω του `/boot/loader.conf` ή εφόσον έχετε βάλει την επιλογή `GEOM_LABEL` στον πυρήνα σας, ακόμα και αν το όνομα της συσκευής αλλάξει, δεν θα έχει καμιά δυσμενή επίδραση στο σύστημα σας.

Μπορείτε επίσης να δημιουργήσετε συστήματα αρχείων με προεπιλεγμένη ετικέτα, χρησιμοποιώντας την επιλογή `-L` στην εντολή `newfs`. Δείτε την σελίδα manual του newfs(8) για περισσότερες πληροφορίες.

Μπορείτε να χρησιμοποιήσετε την παρακάτω εντολή για να καταστρέψετε μια ετικέτα:

`#` `glabel destroy home`

Το επόμενο παράδειγμα δείχνει πως μπορούν να δοθούν ετικέτες στις κατατμήσεις του δίσκου εκκίνησης.

Παράδειγμα 20.1. Δημιουργία Ετικετών στις Κατατμήσεις του Δίσκου Εκκίνησης

Δημιουργώντας μόνιμες ετικέτες στις κατατμήσεις του δίσκου εκκίνησης, το σύστημα σας θα συνεχίσει να εκκινεί κανονικά ακόμα και αν μεταφέρετε το δίσκο σε άλλο ελεγκτή ή ακόμα και σε διαφορετικό σύστημα. Στο παράδειγμα μας, θεωρούμε ότι χρησιμοποιείται ένας δίσκος ATA, ο οποίος αναγνωρίζεται από το σύστημα ως `ad0`. Θεωρούμε επίσης ότι χρησιμοποιείται η συνηθισμένη διάταξη κατατμήσεων του FreeBSD, που περιλαμβάνει τις κατατμήσεις `/`, `/var`, `/usr` και `/tmp` όπως επίσης και μια κατάτμηση swap.

Επανεκκινήστε το σύστημα, και όταν εμφανιστεί η προτροπή του loader(8), πιέστε το 4 για να πραγματοποιηθεί εκκίνηση σε κατάσταση ενός χρήστη. Έπειτα, δώστε τις ακόλουθες εντολές:

`#` `glabel label rootfs /dev/ad0s1a` GEOM_LABEL: Label for provider /dev/ad0s1a is label/rootfs `#` `glabel label var /dev/ad0s1d` GEOM_LABEL: Label for provider /dev/ad0s1d is label/var `#` `glabel label usr /dev/ad0s1f` GEOM_LABEL: Label for provider /dev/ad0s1f is label/usr `#` `glabel label tmp /dev/ad0s1e` GEOM_LABEL: Label for provider /dev/ad0s1e is label/tmp `#` `glabel label swap /dev/ad0s1b` GEOM_LABEL: Label for provider /dev/ad0s1b is label/swap `#` `exit`

Η εκκίνηση θα συνεχιστεί κανονικά και το σύστημα θα έλθει σε κατάσταση πολλαπλών χρηστών (multi-user). Μετά το τέλος της εκκίνησης, επεξεργαστείτε το αρχείο `/etc/fstab` και αλλάξτε τα συμβατικά ονόματα συσκευών με τις αντίστοιχες ετικέτες. Το τελικό αρχείο `/etc/fstab` θα μοιάζει με το παρακάτω:

# Device Mountpoint FStype Options Dump Pass# /dev/label/swap none swap sw 0 0 /dev/label/rootfs / ufs rw 1 1 /dev/label/tmp /tmp ufs rw 2 2 /dev/label/usr /usr ufs rw 2 2 /dev/label/var /var ufs rw 2 2

Μπορείτε τώρα να επανεκκινήσετε το σύστημα. Αν όλα πήγαν καλά, η εκκίνηση θα είναι κανονική, και η εντολή `mount` θα δείξει:

`#` `mount` /dev/label/rootfs on / (ufs, local) devfs on /dev (devfs, local) /dev/label/tmp on /tmp (ufs, local, soft-updates) /dev/label/usr on /usr (ufs, local, soft-updates) /dev/label/var on /var (ufs, local, soft-updates)

Ξεκινώντας από το FreeBSD 7.2, το glabel(8) υποστηρίζει ένα νέο είδος ετικέτας για συστήματα αρχείων UFS, που βασίζεται σε ένα μοναδιαίο αναγνωριστικό τους, το `ufsid`. Οι ετικέτες αυτές βρίσκονται στον κατάλογο `/dev/ufsid`, δημιουργούνται αυτόματα κατά την εκκίνηση του συστήματος και είναι δυνατόν να χρησιμοποιηθούν για την προσάρτηση κατατμήσεων μέσω του `/etc/fstab`. Μπορείτε να χρησιμοποιήσετε την εντολή `glabel status` για να λάβετε μια λίστα των συστημάτων αρχείων με τις αντίστοιχες `ufsid` ετικέτες τους:

`%` `glabel status` Name Status Components ufsid/486b6fc38d330916 N/A ad4s1d ufsid/486b6fc16926168e N/A ad4s1f

Στο παραπάνω παράδειγμα, το `ad4s1d` αντιπροσωπεύει το σύστημα αρχείων `/var`, ενώ το `ad4s1f` αντιπροσωπεύει το σύστημα αρχείων `/usr`. Χρησιμοποιώντας τις τιμές `ufsid` που φαίνονται, η προσάρτηση αυτών των κατατμήσεων μπορεί να γίνει με τις παρακάτω καταχωρίσεις στο `/etc/fstab`:

/dev/ufsid/486b6fc38d330916 /var ufs rw 2 2 /dev/ufsid/486b6fc16926168e /usr ufs rw 2 2

Οποιαδήποτε κατάτμηση διαθέτει αναγνωριστικό `ufsid` μπορεί να προσαρτηθεί με τον ίδιο τρόπο, χωρίς να υπάρχει πλέον ανάγκη να δημιουργηθεί μόνιμη ετικέτα χειροκίνητα. Η προσάρτηση μέσω ετικέτας `ufsid`, παρέχει το πλεονέκτημα της ανεξαρτησίας από το όνομα συσκευής, το οποίο παρέχουν και οι μόνιμες ετικέτες.

Προηγ | Πάνω | Επόμενο
20.6. Δικτυακές Συσκευές μέσω GEOM Gate | Αρχή | 20.8. UFS Journaling Μέσω GEOM

Αυτό το κείμενο, και άλλα κείμενα, μπορεί να βρεθεί στο ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/

Για ερωτήσεις σχετικά με το FreeBSD, διαβάστε την τεκμηρίωση πριν να επικοινωνήσετε με την <questions@FreeBSD.org>.
Για ερωτήσεις σχετικά με αυτή την τεκμηρίωση, στείλτε e-mail στην <doc@FreeBSD.org>.