Next Previous Contents

7. Μετάφραση και Διαχειριστές Δίσκων

Η γεωμετρία του δίσκου (με κεφαλές, κυλίνδρους και ίχνη) είναι κάτι από την εποχή του MFM και του RLL. Εκείνες τις μέρες αυτή ήταν η πραγματικότητα. Σήμερα, με τα IDE ή SCSI, κανείς δεν ενδιαφέρεται ποια είναι η `πραγματική' γεωμετρία τους δίσκου. Ακόμη, ο αριθμός των τομέων ανά ίχνος είναι μεταβλητός: υπάρχουν περισσότεροι τομείς στο εξωτερικό του δίσκου και έτσι δεν υπάρχει `πραγματικός' αριθμός τομέων ανά ίχνος. Αντιθέτως: η IDE εντολή INITIALIZE DRIVE PARAMETERS (91h) χρησιμοποιείται για να λέει στον δίσκο πόσες κεφαλές και τομείς/ίχνος υποτίθεται ότι έχει. Είναι αρκετά συχνό να δείτε ένα μεγάλο μοντέρνο δίσκο με 2 κεφαλές να αναφέρει 15 ή 16 κεφαλές στο BIOS, ενώ το BIOS να αναφέρει 255 κεφαλές στα προγράμματα.

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

Έτσι η γενική εικόνα είναι ως εξής: Το DOS, ή κάποιος άλλος φορτωτής, μιλά στο BIOS, αναφέροντας τα (c,h,s). Το BIOS τα μετατρέπει σε LBA χρησιμοποιώντας την ψεύτικη γεωμετρία που χρησιμοποιεί ο χρήστης. Αν ο δίσκος δεχτεί το LBA τότε αυτή η τιμή χρησιμοποιείται για την πρόσβαση. Αλλιώς, μετατρέπεται πίσω σε (c',h',s') χρησιμοποιώντας τη γεωμετρία που αναφέρει ο δίσκος και έτσι γίνεται η πρόσβαση.

Σημειώστε ότι υπάρχει κάποια σύγχυση στην χρήση του `LBA': Σαν όρος που περιγράφει τις δυνατότητες του δίσκου σημαίνει `Γραμμική Διευθυνσιοδότηση Τεμαχίων = Linear Block Addressing' (σε αντίθεση με τη διευθυνσιοδότηση CHS). Σαν όρος στο BIOS Setup, περιγράφει ένα είδος μετάφρασης που μερικές φορές καλείται `βοηθούμενο LBA = assisted LBA' - δείτε παραπάνω το ` The 8.4 GB limit '.

Κάτι παρόμοιο συμβαίνει όταν ο δίσκος δεν καταλαβαίνει το LBA αλλά το BIOS ξέρει την μετάφραση. (Στο setup αυτό συνήθως ονομάζεται `Large'.) Έτσι το BIOS παρουσιάζει γεωμετρία (C,H,S) στο λειτουργικό σύστημα και χρησιμοποιεί (C',H',S') όταν επικοινωνεί με τον ελεγκτή. Συνήθως S = S', C = C'/N και H = H'*N, όπουe N είναι η μεγαλύτερη δύναμη του δύο που σιγουρεύει ότι C' <= 1024 (έτσι η χωρητικότητα στρογγυλεύεται προς τα κάτω σε C' = C/N). Αυτό επιτρέπει πρόσβαση μέχρι 8.4 GB (7.8 GiB).

(Η τρίτη επιλογή στο setup είναι συνήθως η `Normal', όπου δε γίνεται καμία μετάφραση.)

Εάν το BIOS δεν ξέρει τα `Large' ή `LBA', τότε υπάρχουν λύσεις με προγράμματα. Διαχειριστές δίσκων όπως οι OnTrack ή EZ-Drive αντικαθιστούν τις ρουτίνες διαχείρισης του BIOS με τις δικές τους. Αυτό συνήθως επιτυγχάνεται με το να υπάρχει ο κώδικας του διαχειριστή στο MBR και επακόλουθους τομείς (το OnTrack ονομάζει αυτόν τον κώδικα DDO: Dynamic Drive Overlay), ώστε να εκκινείται πριν το λειτουργικό σύστημα. Αυτός είναι ο λόγος που μπορεί να υπάρχουν προβλήματα αν κάποιος ξεκινήσει το μηχάνημα με δισκέτα και υπάρχει και διαχειριστής δίσκου.

Το αποτέλεσμα είναι λίγο-πολύ το ίδιο με τη μετάφραση του BIOS - αλλά αν υπάρχουν διαφορετικά λειτουργικά συστήματα στον ίδιο δίσκο τότε δημιουργούνται πολλά προβλήματα.

Το Linux υποστηρίζει το OnTrack από την έκδοση 1.3.14, και το EZ-Drive από την έκδοση 1.3.29. Περισσότερες λεπτομέρειες δίνονται παρακάτω.


Next Previous Contents