Διαμόρφωση Αποθηκευτικών Μέσων για Χρήση με το FreeBSD

Ένας σύντομος οδηγός

Doug White

            
          

Μάρτιος 1997

Το FreeBSD είναι ένα κατοχυρωμένο εμπορικό σύμβολο του FreeBSD Foundation.

Οι λέξεις Iomega, Zip, και Jaz είναι είτε κατοχυρωμένα εμπορικά σύμβολα ή εμπορικά σύμβολα της Iomega Corporation στις Ηνωμένες Πολιτείες ή/και σε άλλες χώρες.

Οι λέξεις Motif, OSF/1, και UNIX είναι κατοχυρωμένα εμπορικά σύμβολα και οι λέξεις ή φράσεις IT DialTone και The Open Group είναι εμπορικά σύμβολα του The Open Group στις Ηνωμένες Πολιτείες και σε άλλες χώρες.

Πολλές από τις λέξεις ή φράσεις οι οποίες χρησιμοποιούνται από τους κατασκευαστές ή τους πωλητές τους για να διακρίνουν τα προϊόντα τους θεωρούνται εμπορικά σύμβολα. Όπου αυτές εμφανίζονται σε αυτό το κείμενο και για όσες από αυτές γνωρίζει η Ομάδα Ανάπτυξης του FreeBSD ότι είναι πιθανόν να είναι εμπορικά σύμβολα, θα δείτε ένα από τα σύμβολα: «™» ή «®».

Το παρόν έγγραφο περιγράφει πώς να κόψετε σε τμήματα (slices), κομματιάσετε (partition) και μορφοποιήσετε (format/διαμόρφωση) σκληρούς δίσκους και παρόμοια μέσα που προορίζονται για χρήση με το FreeBSD. Τα παραδείγματα δοκιμάστηκαν στο FreeBSD 2.2 αλλά λογικά δουλεύουν και στις άλλες εκδόσεις. Το κείμενο έχει ενημερωθεί για την έκδοση 4 του FreeBSD.


1 Εισαγωγή και Ορισμοί

1.1 Γενικά

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

Υπάρχουν δύο πιθανοί τρόποι (modes) μορφοποίησης:

  • συμβατή λειτουργία (compatibility mode): Διαμόρφωση του δίσκου ώστε να έχει ένα πίνακα τμήματων (slice table) και να μπορεί να χρησιμοποιηθεί παράλληλα από άλλα λειτουργικά συστήματα.

  • αποκλειστική λειτουργία (dedicated mode), μερικές φορές λέγεται και επικίνδυνα αποκλειστική λειτουργία: Διαμόρφωση ενός δίσκου χωρίς πίνακα partitions. Αυτό κάνει την διαδικασία της πρόσθεσης δίσκου ευκολότερη αλλά ένα μη-FreeBSD λειτουργικό σύστημα πιθανόν να μη μπορεί να δει το δίσκο. Η έκφραση επικίνδυνα αναφέρεται στον κίνδυνο του ότι το σύστημα μπορεί να μην αναγνωρίσει έναν δίσκο μορφοποιημένο κατ' αυτόν τον τρόπο.

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

Πέρα από την επιλογή τρόπου λειτουργίας υπάρχουν δύο μέθοδοι στησίματος του δίσκου. Ο πρώτος χρησιμοποιεί το εργαλείο εγκατάστασης του συστήματος /stand/sysinstall. Από το 2.1.7-RELEASE και μετά η sysinstall απλοποιεί το στήσιμο των δίσκων επειδή επιτρέπει την απευθείας αλλαγή στο label (τίτλος) και στα τμήματα (partitions) των δίσκων. Επιπλέον σας επιτρέπει να αποθηκεύσετε τις αλλαγές μόνο στον συγκεκριμένο δίσκο χωρίς να επηρεάζει τους υπόλοιπους. Ο δεύτερος τρόπος είναι να εκτελέσετε διάφορες εντολές με το χέρι απο την γραμμή εντολών ως root. Αν επιλέξετε την αποκλειστική λειτουργία χρειάζετε να εκτελέσετε μόνο 2-3 εντολές ενώ με το sysinstall πρέπει δουλέψετε λιγάκι παραπάνω.


1.2 Ορισμοί

Η διαχείριση δίσκων στο UNIX® έχει δώσει νέα έννοια σε υπάρχουσες λέξεις. Το παρακάτω λεξιλόγιο εξηγεί την ορολογία που χρησιμοποιούμε σε αυτό το κείμενο και στο FreeBSD γενικά (προφανώς).

  • συμβατή λειτουργία (compatibility mode): η διαμόρφωση του δίσκου ώστε να έχει ένα πίνακα τμήματων (slice table) και να μπορεί να χρησιμοποιηθεί παράλληλα με άλλα λειτουργικά συστήματα. Αντίθετο της αποκλειστικής λειτουργίας.

  • (επικίνδυνα) αποκλειστική λειτουργία: η διαμόρφωση του δίσκου κατά τέτοιον τρόπο ώστε να μην περιέχει πίνακα τμημάτων (slice table). Είναι πιο εύκολη διαδικασία αλλά ο δίσκος μπορεί να μη δουλεύει σε μη-FreeBSD λειτουργικά συστήματα. Αντίθετο της συμβατής λειτουργίας.

  • δίσκος: Οι σκληροί δίσκοι, τα CDROM, οι μαγνητο-οπτικές συσκευές και τα αφαιρούμενα μέσα Zip®/Jaz® είναι μερικές από τις συσκευές μαζικής αποθήκευσης δεδομένων που χρησιμοποιούνται σήμερα. Η βασική αρχή λειτουργίας αυτών των μέσων αποθήκευσης ένας ή περισσότεροι δίσκοι οι οποίοι περιστρέφονται από ένα μοτέρ, ενώ μια κεφαλή κινείται σε ένα μονοπάτι πάνω στην ακτίνα του δίσκου και διαβάζει από το δίσκο ή γράφει δεδομένα σε αυτόν. Το γράψιμο γίνεται με μεταβολή κάποιου φυσικού χαρακτηριστικού του δίσκου (μαγνητική ροή, ανακλαστικότητα, κλπ.) ενώ το διάβασμα γίνεται με «ανίχνευση» αλλαγών στην ίδια φυσική ιδιότητα του δίσκου.

  • τμήμα (slice): Μία υποδιαίρεση ενός δίσκου. Σύμφωνα με τα πρότυπα των PC μπορούν να υπάρχουν μέχρι 4 τμήματα σε έναν δίσκο. Τα τμήματα αποτελούνται απο συνεχόμενους τομείς (sectors). Υπάρχει ένας «πίνακας τμημάτων» (slice table) που περιέχει πληροφορίες για τα τμήματα και χρησιμοποιείται από το BIOS για να βρεί από πού μπορεί να ξεκινήσει το σύστημα. Ο πίνακας τμημάτων λέγεται και «πίνακας κομματιών» (partition table) σε ορολογία DOS που φτιάχνεται απο το πρόγραμμα fdisk.

  • κομμάτι (partition): Μία υποδιαίρεση ενός τμήματος. Συνήθως χρησιμοποιείται για αναφορά στις υποδιαιρέσεις των τμημάτων (slices) του δίσκου στο FreeBSD. Κάθε σύστημα αρχείων (filesystem) ή δευτερεύουσας μνήμης (swap area) στον δίσκο βρίσκεται σε ένα κομμάτι. Τα κομμάτια φτιάχνονται με το εργαλείο disklabel.

  • τομέας (sector): Η μικρότερη υποδιαίρεση ενός δίσκου. Συνήθως έχει μέγεθος 512 bytes.


1.3 Σημεία που πρέπει να προσέξετε και παγίδες

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

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

Φυσικά δεν έχουμε καμία ευθύνη για ζημιές που μπορεί να προκληθούν. Η ευθύνη είναι δική σας!


1.4 Zip, Jazz, και άλλα αφαιρούμενα μέσα

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

Can't get the size
τότε δεν υπάρχει δισκέτα στον οδηγό. Αν γίνει αυτό θα πρέπει να επανεκκινήσετε το μηχάνημα πριν δοκιμάσετε να διαμορφώσετε την δισκέτα.


2 Διαμορφώνοντας δίσκους για αποκλειστική λειτουργία

2.1 Εισαγωγή

Αυτή η παράγραφος περιγράφει πώς να φτιάξετε δίσκους μόνο για το FreeBSD. Θυμηθείτε ότι οι δίσκοι αποκλειστικής λειτουργίας δεν μπορούν να διαβαστούν από άλλα λειτουργικά, ούτε να κάνουν boot.


2.2 Πώς να φτιάξετε δίσκους αποκλειστικής λειτουργίας με το Sysinstall

To /stand/sysinstall, το πρόγραμμα εγκατάστασης του συστήματος, έχει επεκταθεί στις τελευταίες του εκδόσεις ώστε να απλοποιεί την διαδικασία χωρισμού των δίσκων και να απαιτεί λιγότερη προσπάθεια. Τα προγράμματα fdisk και disklabel που υπάρχουν στο sysinstall είναι γραφικού περιβάλοντος (GUI - Graphical User Interface) και μειώνουν το μπέρδεμα του κοψίματος των δίσκων. Είναι προφανώς ο ευκολότερος τρόπος να κόψετε δίσκους από την έκδοση 2.1.7 και μετά του FreeBSD.

  1. Ξεκινήστε το sysinstall ώς root γράφοντας

    # /stand/sysinstall
    
    στην γραμμή εντολών.

  2. Επιλέξτε Index.

  3. Επιλέξτε Partition.

  4. Επιλέξτε το δίσκο που θέλετε να εγκαταστήσετε χρησιμοποιώντας τα βελάκια και μετά SPACE.

  5. Αν θα χρησιμοποιήσετε όλο το δίσκο για το FreeBSD, επιλέξτε A.

  6. Μόλις σας ρωτήσει αν όντως θέλετε να το κάνετε αυτό (Do you still want to do this) απαντήστε Yes.

  7. Επιλέξτε Write.

  8. Θα σας βγάλει μια προειδοποίηση σχετικά με την εγγραφή σε υπάρχοντα συστήματα απαντήστε Yes.

  9. Μόλις σας ρωτήσει αν θέλετε να εγκαταστήσετε ένα boot loader, επιλέξτε None για να αποφύγετε οποιαδήποτε αλλαγή στο Master Boot Record. Η εγκατάσταση ενός boot loader χρειάζεται μόνο σε καινούριες εγκαταστάσεις του FreeBSD ή αν σχεδιάζετε να τοποθετήσετε το δίσκο σε κάποιο άλλο μηχάνημα.

  10. Πατήστε ENTER στο ενημερωτικό μήνυμα που λέει «Wrote FDISK partition information out successfully».

  11. Επιλέξτε Quit για να βγείτε από το FDISK Editor και μετά ESCAPE για να επιστρέψετε στο Index menu.

  12. Επιλέξτε Label από το Index menu.

  13. Ονομάστε το δίσκο σας όπως θέλετε (εδώ ορίζετε τα partitions). Αν θέλετε μόνο ένα partition πατήστε το C για να δημιουργήσετε το partition. Μετά απλώς δεχθείτε τις προεπιλογές για τα προκαθορισμένα size, partition type Filesystem, και mountpoint (το οποίο δεν χρησιμοποιείται).

  14. Πατήστε W μόλις τελειώσετε και επικυρώστε τις αλλαγές για να συνεχίσετε. Το filesystem θα περαστεί αυτόματα από την εντολή newfs εκτός αν επιλέξετε το αντίθετο. (Αν βάζετε καινούργιο partition σας συμφέρει να το κάνετε!). Θα σας δώσει το λάθος:

    Error mounting /mnt/dev/ad2s1e on /mnt/blah : No such file or directory
    
    Αγνοήστε το.

  15. Πατήστε συνεχόμενα το ESCAPE για να βγείτε.


2.3 Πως να φτιάξετε δίσκους αποκλειστικής λειτουργίας μέσα από την γραμμή εντολών

Εκτελέστε τις παρακάτω εντολές αντικαθιστώντας το ad2 με το όνομα της συσκευής του δίσκου (γράψτε dmesg να ελέγξετε αν είναι σωστό).

# dd if=/dev/zero of=/dev/ad2 count=2
# disklabel /dev/ad2 | disklabel -B -R -r ad2 /dev/stdin
Θέλουμε μόνο ένα partition, οπότε μπορούμε να χρησιμοποιήσουμε το κομμάτι 'c':
# newfs /dev/ad2c

Αν χρειάζεται να αλλάξετε το disklabel για να χρησιμοποιήσετε πολλαπλά partitions (για παράδειγμα αν θέλετε swap) τότε κάντε:

# dd if=/dev/zero of=/dev/ad2 count=2
# disklabel /dev/ad2 > /tmp/label
Ανοίξτε το disklabel για να προσθέσετε partitions:
# vi /tmp/label
# disklabel -B -R -r ad2 /tmp/label
εκτελέστε την εντολή newfs στα partitions όπως πρέπει

Ο δίσκος σας είναι έτοιμος προς χρήση.


3 Διαμορφώνοντας δίσκους για συμβατή λειτουργία

3.1 Εισαγωγή

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


3.2 Πώς να φτιάξετε δίσκους συμβατής λειτουργίας με το Sysinstall

  1. Ξεκινήστε το sysinstall ώς root γράφοντας

    # /stand/sysinstall
    
    στην γραμμή εντολών.

  2. Επιλέξτε Index.

  3. Επιλέξτε Partition.

  4. Επιλέξτε το δίσκο που θέλετε να εγκαταστήσετε χρησιμοποιώντας τα βελάκια και μετά SPACE.

  5. Αν θα χρησιμοποιήσετε όλο τον δίσκο για το FreeBSD, επιλέξτε A.

  6. Όταν σας ζητηθεί:

    Do you want to do this with a true partition entry so as to remain
    cooperative with any future possible operating systems on the
    drive(s)?
    
    (Θέλετε να το κάνετε αυτό με πραγματικά κομμάτια για να παραμείνει συμβατός με άλλα λειτουργικά συστήματα?) Απαντήστε Yes.

  7. Επιλέξτε Write.

  8. Όταν σας ζητηθεί να εγκαταστήσετε τον boot manager, επιλέξτε None με το SPACE και μετά ENTER για OK.

  9. Quit (βγείτε) από το FDISK Editor.

  10. Θα σας ρωτήσει κάτι σχετικό με τον boot manager πάλι, επιλέξτε None ξανά.

  11. Επιλέξτε Label απο το Index menu.

  12. Ονομάστε το δίσκο όπως θέλετε (εδώ θα ορίσετε τα partitions). Aν θέλετε μόνο ένα partition απλώς δεχθείτε τις προεπιλογές για τα προκαθορισμένα size, partition type filesystem, και mountpoint (το οποίο δεν χρησιμοποιείται).

  13. Το filesystem θα περαστεί αυτόματα από την εντολή newfs εκτός αν επιλέξετε το αντίθετο. Αν βάζετε καινούργιο partition σας συμφέρει να το κάνετε! Θα σας δώσει το λάθος:

    Error mounting /mnt/dev/ad2s1e on /mnt/blah : No such file or directory
    
    Αγνοήστε το.

  14. Πατήστε συνεχόμενα το ESCAPE για να βγείτε.

Ο δίσκος σας είναι έτοιμος προς χρήση.


4 Άλλες λειτουργίες με τους δίσκους

4.1 Προσθέτοντας swap.

Καθώς ένα σύστημα επεκτείνεται, η ανάγκη για μεγαλύτερο swap γίνεται όλο και πιο επιτακτική. Παρόλο που το να προστεθεί swap σε έναν υπάρχοντα δίσκο είναι τρομερά δύσκολο, ένας καινούργιος δίσκος μπορεί να μορφοποιηθεί έτσι ώστε να περιέχει το επιπλέον swap που σας λείπει.

Για να προσθέσετε swap καθώς βάζετε ένα δίσκο στο σύστημα:

  1. Καθώς κόβετε το δίσκο (partitioning) αλλάξτε το disklabel και ορίστε χώρο για swap στο κομμάτι (partition) `b' και βάλτε τον υπόλοιπο χώρο σε κάποιο άλλο κομμάτι, π.χ. στο `a' ή στο `e'. Το μέγεθος που δίνετε είναι σε blocks των 512 bytes.

  2. Όταν κάνετε newfs στον δίσκο, ΜΗΝ το κάνετε στο κομμάτι `c'. Αντίθετα, κάντε το μόνο στο κομμάτι που δεν είναι swap.

  3. Προσθέστε στο /etc/fstab το παρακάτω:

    /dev/ad0b                       none            swap    sw 0 0
    

    Αλλάξτε το /dev/ad0b στο όνομα της καινούργιας σας συσκευής.

  4. Για να ενεργοποιήσετε άμεσα το νέο swap χρησιμοποιήστε την εντολή swapon

    # swapon /dev/da0b
    swapon:  added /dev/da0b as swap space
    



4.2 Αντιγράφοντας τα περιεχόμενα δίσκων

Από τον: Renaud Waldura ()

Για να μετακινήσετε αρχεία από τον αρχικό σας δίσκο σε έναν καινούργιο, κάντε:

# mount /dev/ad2 /mnt
# pax -r -w -p e /usr/home /mnt
# umount /mnt
# rm -rf /usr/home/*
# mount /dev/ad2 /usr/home



4.3 Φτιάξτε ενωμένους δίσκους με το CCD

Απο τον: Stan Brown ()

Με το Concatenated Disk Driver, ή αλλιώς CCD, μπορείτε να έχετε πολλούς όμοιους δίσκους αλλά να συμπεριφέρονται ως ένας. Η διαδικασία λέγεται συγχώνευση (striping). Με την επικόλληση έχετε καλύτερα αποτελέσματα στην ταχύτητα επειδή μοιράζονται οι εγγραφές και οι αναγνώσεις στους δίσκους. Διαβάστε τις manual pages ccd(4) και ccdconfig(8) ή την αρχική σελίδα του CCD για περισσότερες λεπτομέρειες.

Για να τρέξετε CCD πλέον δεν χρειάζεστε ειδικό πυρήνα. Με την εντολή ccdconfig, φορτώνεται το κατάλληλο KLD αυτόματα αν ο πυρήνας δεν έχει ήδη υποστήριξη για CCD.

Τα CCD φτιάχνονται σε partitions τύπου 4.2BSD. Αν θέλετε να χρησιμοποιήσετε όλο τον δίσκο και πάλι πρέπει να φτιάξετε ένα νέο partition. Για παράδειγμα, η εντολή disklabel -e μπορεί να δείξει:

#        size   offset    fstype   [fsize bsize bps/cpg]
  c: 60074784        0    unused        0     0     0   # (Cyl.    0 - 59597)

Δεν μπορείτε να χρησιμοποιήσετε το partition c για CCD, εφόσον είναι τύπου unused. Αντίθετα δημιουργήστε ένα νέο partition ακριβώς ίδιου μεγέθους αλλά τύπου 4.2BSD:

#        size   offset    fstype   [fsize bsize bps/cpg]
  c: 60074784        0    unused        0     0     0   # (Cyl.    0 - 59597)
   e: 60074784        0    4.2BSD        0     0     0   # (Cyl.    0 - 59597)

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

# cd /dev ; sh MAKEDEV ccd0

# disklabel -r -w da0 auto
# disklabel -r -w da1 auto
# disklabel -r -w da2 auto

# disklabel -e da0
Προσθέστε το partition e τύπου 4.2BSD
# disklabel -e da1
Προσθέστε το partition e τύπου 4.2BSD
# disklabel -e da2
Προσθέστε το partition e τύπου 4.2BSD

# ccdconfig ccd0 273 0 /dev/da0e /dev/da1e /dev/da2e

# newfs /dev/ccd0c

Η τιμή 273 είναι το μέγεθος του stripe. Είναι ο αριθμός των sectors (512 bytes ο καθένας) σε κάθε block δεδομένων του CCD. Θα πρέπει να είναι τουλάχιστον 128 kB, και δεν πρέπει να είναι δύναμη του 2.

Τώρα μπορείτε να κάνετε mount και να χρησιμοποιήσετε το CCD σας μέσω της συσκευής /dev/ccd0c.

Ένα πιό δυνατό και ευέλικτο εναλλακτικό του CCD είναι το Vinum. Περισσότερες πληροφορίες στο Vinum Project home page.


5 Ευχαριστίες

Ο συγγραφέας θα ήθελε να ευχαριστήσει τους παρακάτω για την συνεισφορά τους σε αυτή την εργασία τους:


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

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