Μινι-Οδηγός για δίσκους στο Linux

Ανώνυμος (χωρίς επαλήθευση) | Κυρ, 01/13/2008 - 23:19 | 10'

Μίνι-Οδηγός για Δίσκους σε Linux

ή

Περισσότερες Λεπτομέρειες Από Όσες Θα Θέλατε να Ξέρετε Ποτέ για Τους Δίσκους σε Ένα UNIX

----------------------------------------------------------------------

Το UNIX χειρίζεται τους δίσκους με λίγο `περίεργο' τρόπο. Αν δεν το ρυθμίσεις εσύ να `δείχνει αυτόματα' τους δίσκους, δε θα δείξει τίποτα.Η λογική πίσω από αυτό είναι ότι μπορεί όντως να μη θες να φαίνονται οι δίσκοι (π.χ. επειδή στο σύστημα δε δουλεύεις μόνο εσύ αλλά κι άλλα 10 άτομα, και μόνο εσύ έχεις πρόσβαση να κάνεις αλλαγές στις ρυθμίσεις του συστήματος -- τυπικό σενάριο ακόμα και σε ένα σπίτι, που ένας παίζει το ρόλο του διαχειριστή').

Στο UNIX οι δίσκοι που υπάρχουν συνδεδεμένοι ως hardware στο σύστημα ανακαλύπτονται' κατά τη διάρκεια της εκκίνησης του συστήματος, και ο πυρήνας του λειτουργικού συστήματος τους δίνει ονόματα αυτόματα.Αυτά τα ονόματα είναι προσπελάσιμα ως `μαγικά' αρχεία κάτω από τον κατάλογο

`/dev' ή `/devices'.

Στο Linux, ειδικότερα, οι δίσκοι ονομάζονται `/dev/hdX' και `/dev/sdX'

όπου `X' είναι ένα γράμμα του αγγλικού αλφάβητου. Οι `hdX' δίσκοι

είναι αυτοί που χρησιμοποιούν την τεχνολογία ATA, ενώ οι SCSI δίσκοι

(και νομίζω και οι SATA, αν θυμάμαι καλά) εμφανίζονται ως `sdX'.

Ετσι, σε ένα σύστημα με ένα ATA δίσκο (π.x. ένα Celeron που έχω ακόμα στο σπίτι), το Linux θα εμφανίσει αφού ξεκινήσει το λειτουργικό σύστημα τουλάχιστον ένα `μαγικό αρχείο' στο σύστημα αρχείων `/dev', κι αυτό θα έχει όνομα `/dev/hda'. Αν ένα σύστημα έχει δύο δίσκους, θα εμφανιστούν δύο `μαγικά' αρχεία: το `/dev/hda' και το `/dev/hdb', κοκ.

Αν ένα σύστημα έχει ένα ATA δίσκο κι ένα SCSI δίσκο, τότε θα εμφανιστούν τα `μαγικά' αρχεία `/dev/hda' και `/dev/sda', κλπ.

Αυτά τα `μαγικά αρχεία', όπως και πολλά άλλα ειδικού τύπου αρχεία που εμφανίζονται κάτω από το `/dev' directory, λειτουργούν ως σημεία πρόσβασης στις πραγματικές συσκευές του hardware. Οταν κάποιο πρόγραμμα `ανοίγει' αυτές τις συσκευές ως αρχείο, ο πυρήνας παγιδεύει τις λειτουργίες πάνω σε αυτό το ανοιχτό `αρχείο' και τις μεταφέρει στο πραγματικό hardware.

Γενικά, ακόμα κι όταν έχει τελειώσει η εκκίνηση του συστήματος και το Linux έχει βρει ότι υπάρχει ένας δίσκος με όνομα `/dev/hda', δεν είναι ιδιαίτερα χρήσιμος ο δίσκος χωρίς κάποιο `σύστημα αρχείων' πάνω στο δίσκο. Το Linux μπορεί να φτιάξει ένα σύστημα αρχείων _χύμα_ στον πλήρη δίσκο -- απευθείας πάνω στη συσκευή `/dev/hda'. Για λόγους συμβατότητας όμως με boot loaders και το BIOS κάποιων συστημάτων που δεν χαίρονται ιδιαίτερα όταν γίνεται αυτό, τα περισσότερα λειτουργικά που τρέχουν σε x86 συστήματα φτιάχνουν μικρότερες `κατατμήσεις' μέσα στο χώρο που έχει ο δίσκος `/dev/hda' (κατατμήσεις = `partitions' στα Αγγλικά).

Οι πληροφορίες για αυτές τις κατατμήσεις αποθηκεύονται στην αρχή του δίσκου `/dev/hda', με μια ειδική μορφή που ονομάζεται `πίνακας κατατμήσεων' (partition table). Λόγω του περιορισμένου χώρου που υπάρχει στον αρχικό σχεδιασμό του πίνακα κατατμήσεων, ένας δίσκος μπορεί να έχει μόνο 4 *κύριες* κατατμήσεις αποθηκευμένες στην αρχή του.Ετσι, ο πίνακας κατατμήσεων μπορεί να δείχνει σε Linux ότι υπάρχουν οι συσκευές:

    /dev/hda        Καμία κατάτμηση
    /dev/hda

    `--  /dev/hda1        Μία βασική κατάτμηση μόνο
    /dev/hda

    +-- /dev/hda1         Πρώτη εγγραφή του πίνακα κατατμήσεων

    `-- /dev/hda2         Δεύτερη εγγραφή του πίνακα κατατμήσεων
    /dev/hda

    +-- /dev/hda1      Πρώτη εγγραφή του πίνακα κατατμήσεων

    `-- /dev/hda2      Δεύτερη εγγραφή του πίνακα κατατμήσεων
    /dev/hda

    +-- /dev/hda1        Πρώτη εγγραφή του πίνακα κατατμήσεων

    +-- /dev/hda2        Δεύτερη εγγραφή του πίνακα κατατμήσεων

    `-- /dev/hda3         Τρίτη εγγραφή του πίνακα κατατμήσεων
    /dev/hda

    +-- /dev/hda1        Πρώτη εγγραφή του πίνακα κατατμήσεων

    +-- /dev/hda2        Δεύτερη εγγραφή του πίνακα κατατμήσεων

    +-- /dev/hda3        Τρίτη εγγραφή του πίνακα κατατμήσεων

    `-- /dev/hda4         Τέταρτη εγγραφή του πίνακα κατατμήσεων

Όλοι οι παραπάνω τρόποι είναι έγκυροι τρόποι να χωριστεί ένας δίσκος σε κατατμήσεις, και το Linux δείχνει τα αντίστοιχα ειδικά αρχεία στο `/dev' ανάλογα με την οργάνωση του δίσκου.

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

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

Μια σημαντική λεπτομέρεια που πρέπει να έχει υπόψη του κανείς είναι ότι η θέση μιας κατάτμησης στον πίνακα κατατμήσεων *ΔΕΝ* έχει σχέση με το που ακριβώς μέσα στην περιοχή δεδομένων του συνολικού δίσκου βρίσκεται αυτή η κατάτμηση!

Ετσι αν ένας δίσκος είναι π.χ. κάπως έτσι:

  /dev/hda

  +-------------------------------------------------------+

  |XXX                                                    |

  +-------------------------------------------------------+

όπου `XXX' είναι ο πίνακας κατατμήσεων του δίσκου, τότε μπορεί να έχει δύο κατατμήσεις με ονόματα `/dev/hda1' και `/dev/hda2', που είναι αποθηκευμένες στην περιοχή δεδομένων του δίσκου έτσι:

  /dev/hda

  +-------------------------------------------------------+

  |XXX     ##################    ###########              |

  +-------------------------------------------------------+
              /dev/hda1                       /dev/hda2

ή ακόμα κι έτσι:

  /dev/hda

  +-------------------------------------------------------+

  |XXX     ###########         ##################|

  +-------------------------------------------------------+

             /dev/hda2                    /dev/hda1

Γενικά, είναι μάλλον προτιμότερο το πρώτο σχήμα, αλλά δεν υπάρχει ΚΑΝΕΝΑΣ φυσικός περιορισμός στο hardware των δίσκων που να επιβάλλει με το ζόρι αυτή την οργάνωση των κατατμήσεων.

----------------------------------------------------------------------

Στο Linux υποστηρίζονται τουλάχιστον οι εξής λειτουργίες:

  • Οργάνωση του partition table με δημιουργία νέων κατατμήσεων στον κενό χώρο που έχει ένας δίσκος.
  • Σβήσιμο κάποιων κατατμήσεων.
  • Δημιουργία νέων.
  • Αλλαγή του τύπου κάποιας κατάτμησης.
  • Δημιουργία ενός συστήματος αρχείων μέσα στην περιοχή δεδομένων μιας κατάτμησης.
  • Σύνδεση μιας κατάτμησης με κάποιο κατάλογο. Ύστερα από αυτό, το σύστημα αρχείων ολόκληρης της κατάτμησης εμφανίζεται `μέσα' στον κατάλογο αυτό ως ένα μέρος του συνολικού συστήματος αρχείων του Linux.
  • Αποσύνδεση μιας κατάτμησης από ένα κατάλογο.

Οι λειτουργίες αυτές γίνονται με διάφορα εργαλεία συστήματος που έχει το Linux:

  • Οι λειτουργίες επεξεργασίας του πίνακα κατατμήσεων (σβήσιμο, δημιουργία νέων, αλλαγή τύπου) γίνονται με το fdisk και αντίστοιχα προγράμματα.
  • Οι λειτουργίες δημιουργίας νέων συστημάτων αρχείων (FAT, ext2, ext3, reiserfs, κλπ κλπ. το Linux υποστηρίζει πολλά συστήματα αρχείων) γίνονται με το mkfs και αντίστοιχα εργαλεία.
  • Τέλος, η προσάρτηση σε κάποιο κατάλογο γίνεται με το `mount' και η κατάργησή της με το `umount'.

Όλα αυτά τα εργαλεία έχουν τεκμηρίωση (συνήθως) με τη μορφή manpage, οπότε μπορείς να βρεις ποια εργαλεία από αυτά έχεις εγκατεστημένα με την εντολή `man -k':


man -k mkfs

man -k mount

...

και να διαβάσεις την τεκμηρίωση τους με:


man mkfs.ext2

man fdisk

man mount

man umount

====
Το παρόν είναι αναδημοσίευση του email του Γ. Κεραμιδά στην LGU

Δώσε αστέρια!

MO: (ψήφοι: 0)