Εγχειρίδιο του FreeBSD
Προηγ | Κεφάλαιο 4 Βασικές Έννοιες στο UNIX® | Επόμενο

# 4.5 Οργάνωση Δίσκου

Η μικρότερη μονάδα οργάνωσης που χρησιμοποιεί το FreeBSD για να βρει αρχεία είναι το όνομα αρχείου. Τα ονόματα αρχείων είναι ευαίσθητα στα κεφαλαία- μικρά, το οποίο σημαίνει ότι το `readme.txt` και το `README.TXT` είναι δύο διαφορετικά αρχεία. Το FreeBSD δεν χρησιμοποιεί την επέκταση `.txt` αρχείου για να προσδιορίσει αν ένα αρχείο είναι πρόγραμμα, ή έγγραφο, ή άλλος τύπος δεδομένων.

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

Η αναφορά σε αρχεία και καταλόγους γίνεται δίνοντας το όνομα αρχείου ή το όνομα καταλόγου, ακολουθεί μία αριστερόστροφη κάθετος, `/` και έπειτα οποιοδήποτε άλλο κατάλληλο όνομα καταλόγου. Εάν έχετε τον κατάλογο `foo`, ο οποίος περιέχει τον κατάλογο `bar`, ο οποίος περιέχει το αρχείο `readme.txt`, τότε το ολοκληρωμένο όνομα, διαδρομή (path) στο αρχείο είναι `foo/bar/readme.txt`.

Κατάλογοι και αρχεία αποθηκεύονται σε ένα σύστημα αρχείων. Κάθε σύστημα αρχείων περιέχει ένα κατάλογο στο ανώτερο επίπεδο, που ονομάζεται root (ριζικός) κατάλογος για το συγκεκριμένο σύστημα αρχείων. Ο root κατάλογος μπορεί να περιέχει άλλους καταλόγους.

Αυτό πιθανώς είναι παρόμοιο με οποιοδήποτε άλλο λειτουργικό σύστημα έχετε χρησιμοποιήσει. Ωστόσο υπάρχουν μερικές διαφορές. Για παράδειγμα, το MS-DOS® χρησιμοποιεί `\` για να διαχωρίζει ονόματα καταλόγων και αρχείων, ενώ το Mac OS® χρησιμοποιεί `:`.

Το FreeBSD δεν χρησιμοποιεί γράμματα οδηγών ή ονόματα οδηγών στη διαδρομή. Επομένως δεν θα πρέπει να γράφετε `c:/foo/bar/readme.txt` στο FreeBSD.

Αντιθέτως, ένα σύστημα αρχείων καθορίζεται ως root σύστημα αρχείων. Ο ριζικός κατάλογος του root συστήματος αρχείων αναφέρεται ως `/`. Κάθε άλλο σύστημα αρχείου προσαρτάται κάτω από το root σύστημα αρχείων Δεν έχει σημασία πόσους δίσκους έχετε στο FreeBSD σύστημα σας, κάθε κατάλογος εμφανίζεται να είναι μέρος του ίδιου δίσκου.

Ας υποθέσουμε πως έχετε τρία συστήματα αρχείων, τα ονομάζουμε `A`, `B` και `C`. Κάθε σύστημα αρχείου έχει έναν ριζικό κατάλογο, ο οποίος περιέχει δύο άλλους καταλόγους, που τους ονομάζουμε `A1`, `A2` (και παρομοίως `B1`, `B2` και `C1`, `C2`).

Ας θεωρήσουμε ότι το `A` είναι το root σύστημα αρχείων. Αν χρησιμοποιήσετε την εντολή `ls` για να δείτε τα περιεχόμενα αυτού του καταλόγου, θα δείτε δύο υποκαταλόγους, `A1` και `A2`. Το δέντρο του καταλόγου μοιάζει σαν αυτό:

Κάθε σύστημα αρχείων πρέπει να προσαρτάται σε ένα κατάλογο διαφορετικού συστήματος αρχείων. Ας υποθέσουμε πως θέλετε να προσαρτήσετε το σύστημα αρχείου `B` στον `κατάλογο A1`. Ο ριζικός κατάλογος του `B` αντικαθιστά τον `A1`, και οι κατάλογοι του `B` εμφανίζονται αναλόγως:

Όλα τα αρχεία που περιέχονται στους καταλόγους `B1` και `B2` τα βρίσκουμε με τη διαδρομή `/A1/B1` ή με `/A1/B2` αντίστοιχα. Όλα τα αρχεία που βρίσκονταν στο `/A1` είναι προσωρινά κρυμμένα. Θα επανεμφανιστούν όταν ο `B` θα αποπροσαρτηθεί από τον A.

Αν ο `B` είχε προσαρτηθεί στον `A2` τότε το διάγραμμα θα έδειχνε κάπως έτσι:

και οι διαδρομές θα ήταν `/A2/B1` και `/A2/B2` αντίστοιχα.

Τα συστήματα αρχείων μπορούν να προσαρτώνται στην κορυφή άλλων συστημάτων. Συνεχίζοντας το τελευταίο παράδειγμα, το σύστημα αρχείου `C` θα μπορούσε να προσαρτηθεί στην κορυφή του καταλόγου `B1` στο σύστημα αρχείου `B`, οδηγώντας σε αυτήν την κατανομή:

Ή ακόμη το `C` θα μπορούσε να προσαρτηθεί άμεσα στο σύστημα αρχείου `A`, κάτω από τον κατάλογο `A1`:

Αν γνωρίζετε το σύστημα MS-DOS, είναι παρόμοιο, αλλά όχι ακριβώς το ίδιο, με την εντολή `join`.

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

Είναι απόλυτα δυνατόν να έχετε ένα μεγάλο root σύστημα αρχείων, και να μην χρειάζεται να δημιουργήσετε άλλα. Με αυτή την τακτική υπάρχουν μερικά μειονεκτήματα και ένα πλεονέκτημα.

Προτερήματα Πολλαπλών Συστημάτων Αρχείων

- Διαφορετικά συστήματα αρχείων μπορούν να έχουν διαφορετικές επιλογές προσάρτησης. Για παράδειγμα, με προσεκτικό σχεδιασμό, το root σύστημα αρχείων μπορεί να προσαρτηθεί μόνο για ανάγνωση, ώστε να είναι αδύνατη η διαγραφή ή η μετατροπή κάποιου σημαντικού αρχείου. Διαχωρίζοντας συστήματα αρχείων με δυνατότητα εγγραφής από τον χρήστη, όπως ο `/home`, επιτρέπει επίσης την προσάρτηση τους ως nosuid. Αυτή η επιλογή περιορίζει την χρήση εκτελέσιμων που είναι αποθηκευμένα στο σύστημα αρχείων, με ενεργοποιημένα τα bits suid/guid, βελτιώνοντας πιθανώς την ασφάλεια.

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

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

Προτερήματα ενός Μονοκόμματου Συστήματος Αρχείου

- Τα συστήματα αρχείων είναι συγκεκριμένου σταθερού μεγέθους. Αν δημιουργήσετε ένα σύστημα αρχείων κατά την εγκατάσταση του FreeBSD και του δώσετε ένα ορισμένο μέγεθος, μπορεί αργότερα να ανακαλύψετε πως χρειάζεστε να φτιάξετε μια μεγαλύτερη κατάτμηση. Αυτό δεν είναι εύκολα πραγματοποιήσιμο δίχως backup, αναδημιουργία του συστήματος αρχείου με το νέο μέγεθος, και επαναφορά των αποθηκευμένων δεδομένων.

  > Σημαντικό: Στο FreeBSD περιέχεται η εντολή growfs(8), η οποία επιτρέπει να αυξήσουμε το μέγεθος ενός συστήματος αρχείων κατά τη λειτουργία του, αφαιρώντας αυτόν τον περιορισμό.

Τα συστήματα αρχείων περιέχονται σε κατατμήσεις (partitions). Αυτό δεν έχει την ίδια έννοια με την κοινή χρήση του όρου κατάτμηση (όπως για παράδειγμα, η κατάτμηση του MS-DOS), λόγω της κληρονομιάς που φέρει το FreeBSD από το UNIX®. Κάθε κατάτμηση αναγνωρίζεται από ένα λατινικό χαρακτήρα ξεκινώντας από `a` έως το `h`. Κάθε κατάτμηση μπορεί να περιέχει μόνο ένα σύστημα αρχείων, το οποίο σημαίνει πως η αναφορά στα συστήματα αρχείων γίνεται είτε από το τυπικό σημείο προσάρτησης στην ιεραρχία του συστήματος αρχείων, είτε από το λατινικό χαρακτήρα της κατάτμησης.

Επίσης το FreeBSD χρησιμοποιεί μέρος από το δίσκο για χώρο swap . Ο χώρος Swap παρέχει στο FreeBSD εικονική μνήμη (virtual memory). Αυτό επιτρέπει στον υπολογιστή σας να συμπεριφέρεται σαν να είχε πολύ περισσότερη μνήμη από όσο πραγματικά έχει. Όταν το FreeBSD δεν έχει διαθέσιμη μνήμη μεταφέρει μερικά από τα δεδομένα που δεν χρησιμοποιούνται, την προκειμένη στιγμή, στον χώρο swap, και όταν τα χρειαστεί τα επαναφέρει (ενώ μεταφέρει κάποια άλλα δεδομένα στον χώρο swap).

Υπάρχουν κάποιες συμβάσεις σχετικά με τις κατατμήσεις

Κατάτμηση | Σύμβαση
--- | ---
`a` | Συνήθως περιλαμβάνει το root σύστημα αρχείων
`b` | Συνήθως περιλαμβάνει τον χώρο swap
`c` | Συνήθως ιδίου μεγέθους με την περιλαμβανόμενη φέτα (slice). Αυτό επιτρέπει σε βοηθητικά προγράμματα που πρέπει να δουλέψουν σε ολόκληρο το κομμάτι (για παράδειγμα, ένας ανιχνευτής κατεστραμμένων μπλοκ) να λειτουργούν στην `c` κατάτμηση. Κανονικά δεν θα πρέπει να δημιουργείτε σύστημα αρχείων σε αυτή την κατάτμηση.
`d` | Η κατάτμηση `d` είχε στο παρελθόν μια ειδική αντιστοιχία, κάτι που δεν ισχύει πλέον σήμερα, επομένως η `d` μπορεί να χρησιμοποιείται σαν μια κανονική κατάτμηση.

Κάθε κατάτμηση που περιέχει ένα σύστημα αρχείων αποθηκεύεται στο FreeBSD σε μια τοποθεσία που ονομάζεται φέτα (slice). Η φέτα είναι ένας όρος του FreeBSD για αυτό που κοινώς αποκαλείται κατάτμηση, και αυτό επίσης οφείλεται στην καταγωγή του FreeBSD από το UNIX. Οι φέτες αριθμούνται αρχίζοντας από το 1 έως το 4.

Ο αριθμός της φέτας ακολουθεί το όνομα συσκευής μετά το πρόθεμα `s` ξεκινώντας από το 1. Επομένως, «da0s1» είναι η πρώτη φέτα του πρώτου οδηγού SCSI. Μπορούν να υπάρχουν μέχρι τέσσερις φέτες σε κάθε δίσκο, αλλά μπορείτε να δημιουργήσετε λογικές φέτες μέσα σε κατάλληλου τύπου φυσικές φέτες. Σε αυτές τις εκτεταμένες φέτες η αρίθμηση ξεκινάει από το 5, επομένως «ad0s5» είναι η πρώτη εκτεταμένη φέτα στον πρώτο δίσκο IDE. Αυτές οι συσκευές χρησιμοποιούνται από συστήματα αρχείων που πρέπει να καταλαμβάνουν μια ολόκληρη φέτα.

Οι φέτες, οι «επικίνδυνα αφοσιωμένοι (dangerously dedicated) » φυσικοί οδηγοί καθώς και άλλοι οδηγοί, περιέχουν κατατμήσεις, οι οποίες παρουσιάζονται με λατινικούς χαρακτήρες από το `a` έως το `h`. Αυτός ο χαρακτήρας αναφέρεται στο όνομα συσκευής, επομένως «da0a» είναι η a κατάτμηση στον πρώτο οδηγό da, ο οποίος είναι «επικίνδυνα αφοσιωμένος». Η «ad1s3e» είναι η πέμπτη κατάτμηση στην τρίτη φέτα του δεύτερου οδηγού δίσκου IDE.

Ολοκληρώνοντας, κάθε δίσκος στο σύστημα είναι μονόδρομα ορισμένος. Κάθε όνομα δίσκου ξεκινά με ένα κωδικό που υποδεικνύει τον τύπο του δίσκου, και ένα νούμερο που υποδηλώνει ποιος δίσκος είναι. Αντίθετα με τις φέτες, οι δίσκοι αριθμούνται ξεκινώντας από το 0. Οι πιο συνήθεις κωδικοί που θα συναντήσετε αναφέρονται στην Πίνακας 4-1.

Όταν γίνεται αναφορά σε μια κατάτμηση, το FreeBSD ζητά να δηλωθεί επιπλέον η ονομασία της φέτας και του δίσκου που περιέχει την κατάτμηση, ενώ στην περίπτωση που αναφέρεστε σε μια φέτα θα πρέπει να δηλώνετε το όνομα του δίσκου. Επομένως, όταν αναφέρεστε σε μια κατάτμηση χρειάζεται να δηλώνετε το όνομα του δίσκου, `s`, τον αριθμό της φέτας, και τον χαρακτήρα της κατάτμησης. Παραδείγματα μπορείτε να βρείτε στην Παράδειγμα 4-1.

Η Παράδειγμα 4-2 παρουσιάζει ένα εννοιολογικό μοντέλο για τη δομή του δίσκου που θα σας βοηθήσει να καταλάβετε καλύτερα κάποια πράγματα.

Για να εγκαταστήσετε το FreeBSD πρέπει πρώτα να ρυθμίσετε τις φέτες του δίσκου, να δημιουργήσετε τις κατατμήσεις μέσα στις φέτες που θα χρησιμοποιήσετε για το FreeBSD, έπειτα να δημιουργήσετε ένα σύστημα αρχείων (ή χώρο swap) σε κάθε κατάτμηση, και τέλος να αποφασίσετε σε ποιο σημείο θα προσαρτηθεί το σύστημα αρχείων.

Πίνακας 4-1. Κωδικοί Συσκευών Δίσκων

Κώδικας | Σημαίνει
--- | ---
`ad` | Δίσκος ATAPI (IDE)
`da` | Δίσκος SCSI άμεσης πρόσβασης
`acd` | ATAPI (IDE) CDROM
`cd` | SCSI CDROM
`fd` | Μονάδα Δισκέτας (Floppy)

Παράδειγμα 4-1. Υποδείγματα Ονομάτων Δίσκου, Φέτας, Κατάτμησης

Ονομασία | Σημαίνει
--- | ---
`ad0s1a` | Η πρώτη κατάτμηση (`a`) στην πρώτη φέτα (`s1`) του πρώτου δίσκου IDE (`ad0`).
`da1s2e` | Η πέμπτη κατάτμηση (`e`) στην δεύτερη φέτα (`s2`) του δεύτερου δίσκου SCSI (`da1`).

Παράδειγμα 4-2. Εννοιολογικό Μοντέλο ενός Δίσκου

Το διάγραμμα παρουσιάζει μια εικόνα του πρώτου δίσκου IDE που είναι προσαρτημένος στο σύστημα. Ας υποθέσουμε πως ο δίσκος έχει μέγεθος 4 GB, και περιέχει δύο φέτες των 2 GB (κατατμήσεις MS-DOS). Η πρώτη φέτα περιέχει ένα δίσκο MS-DOS, `C:`, και η δεύτερη φέτα μία εγκατάσταση FreeBSD. Σε αυτό το παράδειγμα, η εγκατάσταση FreeBSD έχει τρεις κατατμήσεις δεδομένων και μία κατάτμηση swap.

Καθεμία από τις τρεις κατατμήσεις θα περιέχει ένα σύστημα αρχείων. Η κατάτμηση `a` θα χρησιμοποιηθεί για το root σύστημα αρχείων, η `e` για τη δομή κατάλογου `/var`, και η `f` για τη δομή καταλόγου `/usr`.

Προηγ | Αρχή | Επόμενο
Δομή Καταλόγου | Πάνω | Προσάρτηση και Αποπροσάρτηση Συστημάτων Αρχείων

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

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