Next Previous Contents

8. Μετάφραση του πυρήνα για δίσκους IDE

Εάν ο πυρήνας ανιχνεύσει την ύπαρξη κάποιου διαχειριστή δίσκου σε έναν IDE δίσκο, θα προσπαθήσει να διαιρέσει τον δίσκο όπως ο διαχειριστής, ώστε το Linux να βλέπει τις ίδιες κατατμήσεις που θα έβλεπε, για παράδειγμα, το DOS με το OnTrack ή το EZ-Drive. Παρόλα αυτά, ΔΕΝ γίνεται διαίρεση όταν η γεωμετρία έχει δηλωθεί στη γραμμή εντολών - έτσι η εντολή `hd=cyls,heads,secs' μπορεί να εξαφανίσει την συμβατότητα με το διαχειριστή δίσκου.

Η αναδιαίρεση γίνεται χρησιμοποιώντας 4, 8, 16, 32, 64, 128, 255 κεφαλές (κρατώντας το H*C σταθερό) μέχρι είτε C <= 1024 ή H = 255.

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

8.1 EZD

Το EZ-Drive ανιχνεύεται λόγω του ότι η πρώτη πρωταρχική κατάτμηση έχει τύπο 55. Η γεωμετρία διαβάζεται όπως περιγράφεται παραπάνω αντί του πίνακα κατατμήσεων του τομέα 0 - ο πίνακας διαβάζεται από τον τομέα 1. Οι αριθμοί τεμαχίων του δίσκου δεν αλλάζονται, αλλά εγγραφές στον τομέα 0 αναδρομολογούνται στον τομέα 1. Αυτή η συμπεριφορά μπορεί να αλλαχθεί αναμεταλωττίζοντας τον πυρήνα με #define FAKE_FDISK_FOR_EZDRIVE 0 στο ide.c.

8.2 DM6:DDO

Ο OnTrack DiskManager (στον πρώτο δίσκο) ανιχνεύεται από το γεγονός ότι η πρώτη πρωταρχική κατάτμηση έχει τύπο 54. Η γεωμετρία διαβάζεται όπως αναφέρθηκε παραπάνω και ολόκληρος ο δίσκος «μετακινείται» κατά 63 τομείς (ώστε ο παλιός τομέας 63 να γίνει ο τομέας 0). Μετά, ένα καινούριο MBR (με τον πίνακα κατατμήσεων) διαβάζεται από τον νέο τομέα 0. Φυσικά αυτό γίνεται για να δημιουργηθεί χώρος για το DDO - για αυτό δεν γίνεται αυτή η αλλαγή στους υπόλοιπους δίσκους.

8.3 DM6:AUX

Ο OnTrack DiskManager (στους άλλους δίσκους) ανιχνεύεται από την πρώτη πρωταρχική κατάτμηση που έχει τύπο 51 ή 53. Η γεωμετρία διαβάζεται όπως περιγράφεται παραπάνω.

8.4 DM6:MBR

Μια παλαιότερη έκδοση του OnTrack DiskManager δεν ανιχνεύεται από τον τύπο κατάτμησης αλλά από το αποτύπωμα του. (Ελέγχεται αν η μετατόπιση που βρίσκεται στα πρώτα 2 και 3 bytes του MBR δεν είναι παραπάνω από 430, αν η έλλειψη είναι ίση με 0χ55AA και αν ακολουθείται από μονό byte). Ξανά η γεωμετρία διαβάζεται όπως παραπάνω.

8.5 PTBL

Τέλος, υπάρχει ένας έλεγχος που προσπαθεί να βρει τη μετάφραση από τις τιμές start και end των πρωταρχικών κατατμήσεων: Εάν κάποια κατάτμηση έχει αρχικό και τελικό τομέα 1 και 63 αντίστοιχα και έχει τελικές κεφαλές 31, 63, 127 ή 254, τότε, εφόσον συνήθως οι κατατμήσεις τελειώνουν στα όρια του κυλίνδρου, και, επίσης, το IDE υποστηρίζει το πολύ 16 κεφαλές, συμπεραίνεται ότι το BIOS μεταφράζει και η γεωμετρία αλλάζει για να χρησιμοποιηθούν 32, 64, 128 ή 255 κεφαλές αντίστοιχα. Παρόλα αυτά, δεν γίνεται καμία αλλαγή όταν η παρόν γεωμετρία έχει ήδη 63 τομείς ανά ίχνος και τουλάχιστον 63 κεφαλές (το οποίο ότι έχει ήδη γίνει μια αλλαγή γεωμετρίας).


Next Previous Contents