Εγκατάσταση και χρήση του FreeBSD μαζί με άλλα λειτουργικά συστήματα

6 August 1996

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

Οι λέξεις ή φράσεις IBM, AIX, EtherJet, Netfinity, OS/2, PowerPC, PS/2, S/390, και ThinkPad είναι εμπορικά σύμβολα της International Business Machines Corporation στις Ηνωμένες Πολιτείες, άλλες χώρες, ή και στα δύο ταυτόχρονα.

Το Linux είναι ένα κατοχυρωμένα εμπορικό σύμβολο του Linus Torvalds στις Ηνωμένες Πολιτείες.

Οι λέξεις Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media, και Windows NT είναι είτε κατοχυρωμένα εμπορικά σύμβολα ή εμπορικά σύμβολα της Microsoft Corporation στις Ηνωμένες Πολιτείες και/ή σε άλλες χώρες.

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

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

Αυτό το κείμενο περιγράφει πως μπορεί το FreeBSD να συνυπάρξει αρμονικά με άλλα δημοφιλή λειτουργικά συστήματα, όπως το Linux, το MS-DOS®, το OS/2® και τα Windows® 95. Για την βοήθειά τους στη συγγραφή αυτού του κειμένου, θέλω να ευχαριστήσω τους: Annelise Anderson , Randall Hopper , και Jordan K. Hubbard .


Πίνακας Περιεχομένων
1 Περίληψη
2 Σύγκριση Διαχειριστών Εκκίνησης (boot managers)
3 Μια τυπική εγκατάσταση
4 Ειδικές Παρατηρήσεις
5 Παραδείγματα
6 Διάφορες Πηγές Βοήθειας
7 Τεχνικές Λεπτομέρειες

1 Περίληψη

Οι περισσότεροι άνθρωποι δεν μπορούν να στήσουν παραπάνω από ένα λειτουργικό σύστημα χωρίς μεγάλο δίσκο, γι αυτό παρακάτω θα βρείτε και πληροφορίες για μεγάλους EIDE δίσκους. Επειδή υπάρχουν πάρα πολλοί συνδυασμοί από πιθανά λειτουργικά συστήματα και ρυθμίσεις σκληρών δίσκων, το τμήμα Τμήμα 5 είναι το πιο χρήσιμο. Περιγράφει συγκεκριμένα παραδείγματα από εγκαταστάσεις, που δουλεύουν χρησιμοποιώντας περισσότερα από ένα λειτουργικά συστήματα.

Αυτό το κείμενο θεωρεί δεδομένο ότι έχετε ήδη κάνει χώρο στο δίσκο σας για κάποιο πρόσθετο λειτουργικό σύστημα. Κάθε φορά που αλλάζετε τις κατατμήσεις του δίσκου σας υπάρχει ο κίνδυνος να χάσετε ή να καταστρέψετε τα δεδομένα στις υπάρχουσες κατατμήσεις. Παρόλ' αυτά, αν ο δίσκος σας αυτή τη στιγμή περιέχει μόνο DOS κατατμήσεις, μπορεί να σας φανεί χρήσιμο το εργαλείο FIPS (περιέχεται στα CD-ROM εγκατάστασης του FreeBSD, στον κατάλογο \TOOLS, αλλά μπορείτε να το βρείτε και μέσω ftp). Με το FIPS μπορείτε να αλλάξετε το μέγεθος των κατατμήσεων στο δίσκο σας, χωρίς να καταστραφούν τα δεδομένα που υπάρχουν ήδη σε αυτόν. Υπάρχει κι ένα εμπορικό πρόγραμμα, που λέγεται PartitionMagic®, το οποίο επιτρέπει να αλλάξετε το μέγεθος που έχουν ή να σβήσετε τις κατατμήσεις σας χωρίς δυσάρεστες συνέπειες.


2 Σύγκριση Διαχειριστών Εκκίνησης (boot managers)

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

Το Boot Easy

Αυτός είναι ο προκαθορισμένος διαχειριστής εκκίνησης που χρησιμοποιείται με το FreeBSD. Έχει τη δυνατότητα να ξεκινήσει σχεδόν όλα τα λειτουργικά συστήματα, συμπεριλαμβανομένων των BSD, OS/2 (HPFS), Windows 95 (FAT ή FAT32), και Linux. Η κατάτμηση που θα χρησιμοποιηθεί διαλέγεται με τα πλήκτρα F1, F2, ....

Ο διαχειριστής εκκίνησης του OS/2

Αυτός ο διαχειριστής εκκίνησης μπορεί να ξεκινήσει κατατμήσεις τύπου FAT, FAT32, HPFS, FFS (FreeBSD) και EXT2 (Linux). Η κατάτμηση που θα ξεκινήσει επιλέγεται με τα βελάκια. Ο διαχειριστής εκκίνησης του OS/2 είναι ο μόνος που χρησιμοποιεί το δικό του ξεχωριστό χώρο στο δίσκο για να κρατάει πληροφορίες, αντίθετα με όλους τους άλλους που χρησιμοποιούν το master boot record (MBR). Γι αυτό πρέπει να εγκαθίσταται σε περιοχή κοντά στην αρχή του δίσκου, πριν από τον κύλινδρο 1024, ώστε να αποφεύγονται προβλήματα κατά την εκκίνηση. Μπορεί να ξεκινήσει και το Linux με χρήση του LILO, όταν το LILO δεν έχει εγκατασταθεί στο MBR αλλά στο boot record της Linux κατάτμησης. Διαβάστε περισσότερα για τη χρήση του διαχειριστή εκκίνησης OS/2 με Linux στα Linux HOWTOs.

OS-BS

Εναλλακτικός διαχειριστής που μπορείτε να χρησιμοποιήσετε αντί για το Boot Easy. Δίνει μεγαλύτερο έλεγχο της διαδικασίας εκκίνησης, με δυνατότητα να αλλάξετε την προκαθορισμένη κατάτμηση και τον χρόνο αναμονής. Οι beta εκδόσεις του προγράμματος επιλέγουν την επιλογή της κατάτμησης με τα βελάκια. Μπορείτε να βρείτε τον OS-BS στα CD εγκατάστασης του FreeBSD, στον κατάλογο \TOOLS ή να τον κατεβάσετε μέσω ftp.

LILO, ή LInux LOader

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

Σχετικά με το FAT32: Το FAT32 είναι το σύστημα αρχείων που άρχισε να χρησιμοποιείται στην έκδοση OEM SR2 των Windows 95 της Microsoft, περίπου στα τέλη του 1996. Είναι μια εξέλιξη του FAT συστήματος αρχείων, που επιτρέπει τη χρήση μικρότερου μεγέθους cluster σε μεγάλους δίσκους. Έχει κάποιες διαφορές όμως στη μορφή του boot sector και του allocation table, που το κάνουν ασύμβατο με κάποιους διαχειριστές εκκίνησης.


3 Μια τυπική εγκατάσταση

Ας πούμε ότι έχετε δυο μεγάλους EIDE σκληρούς δίσκους, και θέλετε να εγκαταστήσετε σε αυτούς FreeBSD, Linux και Windows 95.

Παρακάτω θα δούμε πως εγώ (ΣΤΜ: ο συγγραφέας του άρθρου, Jay Richmond) θα χρησιμοποιούσα αυτούς τους δίσκους:

Και οι δυο δίσκοι έχουν 1416 κυλίνδρους ο καθένας.

  1. Ξεκινάω από μια δισκέττα εκκίνησης MS-DOS ή Windows 95 που περιέχει το πρόγραμμα FDISK.EXE και δημιουργώ μια μικρή κατάτμηση των 50 MB (35-40 για τα Windows 95, και λίγο ελεύθερο χώρο) στον πρώτο δίσκο. Επίσης δημιουργώ μια μεγαλύτερη κατάτμηση στον δεύτερο δίσκο, για τα υπόλοιπα δεδομένα και τις εφαρμογές των Windows.

  2. Κάνω επανεκκίνηση και στήνω τα Windows 95 στην κατάτμηση C:.

  3. Το επόμενο βήμα είναι να στήσω το Linux. Δεν είμαι σίγουρος για όλες τις διανομές του Linux, αλλά τουλάχιστον το Slackware χρησιμοποιεί το LILO (βλ. Τμήμα 2). Όταν δημιουργώ κατατμήσεις στο δίσκο μου με το fdisk πρόγραμμα του Linux, τοποθετώ όλο το Linux στον πρώτο δίσκο (μια κατάτμηση των 300 MB φτάνει για ένα καλό root partition και λίγο swap).

  4. Αφού στήσω το Linux, την ώρα που με ρωτάει για να στήσει το LILO, προσέχω να στήσω το LILO στο boot sector της Linux κατάτμησής μου, κι όχι στο MBR (master boot record).

  5. Ο υπόλοιπος χώρος του δίσκου μπορεί να χρησιμοποιηθεί από το FreeBSD. Προσέχω η κατάτμηση στην οποία βρίσκεται το root σύστημα αρχείων του FreeBSD μου να μην υπερβαίνει τον κύλινδρο 1024. (Ο κύλινδρος 1024 είναι περίπου στα 528 MB στους υποθετικούς μας δίσκους των 720 MB.) Θα χρησιμοποιήσω τον υπόλοιπο δίσκο (περίπου 270 MB) για τα συστήματα αρχείων / και /usr αν χρειαστεί. Ο υπόλοιπος χώρος του δεύτερου σκληρού δίσκου (το μέγεθος εξαρτάται από το χώρο που θα αφήσω για τις εφαρμογές των Windows, που δημιούργησα στο βήμα 1) μπορεί να χρησιμοποιηθεί για το σύστημα αρχείων /usr/src και σαν δευτερεύουσα μνήμη (swap space).

  6. Όταν βλέπω τους δίσκους με το πρόγραμμα fdisk των Windows 95, θα πρέπει να φαίνονται όπως παρακάτω:

    ---------------------------------------------------------------------
    
                      Display Partition Information
    
    Current fixed disk drive: 1
    
    Partition  Status  Type  Volume_Label  Mbytes  System  Usage
    C: 1          A   PRI DOS                50    FAT**     7%
       2          A   Non-DOS (Linux)       300             43%
    
    Total disk space is  696 Mbytes (1 Mbyte = 1048576 bytes)
    
    Press Esc to continue
    
    ---------------------------------------------------------------------
    
                      Display Partition Information
    
    Current fixed disk drive: 2
    
    Partition  Status  Type  Volume_Label  Mbytes  System  Usage
    D: 1          A   PRI DOS                420   FAT**    60%
    
    Total disk space is  696 Mbytes (1 Mbyte = 1048576 bytes)
    
    Press Esc to continue
    
    ---------------------------------------------------------------------
    

    ** Εδώ μπορεί ο τύπος κατάτμησης να είναι FAT16 ή FAT32 αν χρησιμοποιείται η έκδοση OEM SR2 των Windows. Βλ. Τμήμα 2.

  7. Εγκαθιστώ το FreeBSD. Πριν την εγκατάσταση βεβαιώνομαι ότι ο πρώτος δίσκος είναι δηλωμένος σαν «NORMAL» στο BIOS. Αν δεν είναι, μπορεί να χρειαστεί να δώσω την κανονική γεωμετρία του δίσκου όταν ξεκινάει ο υπολογιστής (για να βρείτε τη γεωμετρία του δίσκου, ξεκινήστε τον υπολογιστή σας με τα Windows 95 και τρέξτε το πρόγραμμα Microsoft Diagnostics (MSD.EXE),ή ελέγξτε το BIOS). Τη γεωμετρία του δίσκου θα την δώσετε με την παράμετρο hd0=1416,16,63, όπου 1416 είναι ο αριθμός των κυλίνδρων του σκληρού δίσκου, 16 είναι ο αριθμός των κεφαλών σε κάθε track και 63 είναι ο αριθμός των sectors σε κάθε track του δίσκου.

  8. Όταν φτιάξω τις κατατμήσεις στο δίσκο μου, προσέχω να εγκατασταθεί το Boot Easy στον πρώτο δίσκο. Δεν έχει σημασία να κάνω το ίδιο για τον δεύτερο δίσκο, αφού τίποτα δεν ξεκινάει από αυτόν.

  9. Όταν κάνω επανεκκίνηση, το Boot Easy θα πρέπει να αναγνωρίσει τις τρεις κατατμήσεις από τις οποίες μπορεί να ξεκινήσει ο υπολογιστής σαν DOS (Windows 95), Linux, και BSD (FreeBSD).


4 Ειδικές Παρατηρήσεις

Τα πιο πολλά λειτουργικά συστήματα είναι πολύ αυστηρά σχετικά με τη θέση και τον τρόπο που τοποθετούνται στον δίσκο. Τα Windows 95 και το DOS απαιτούν να είναι στην πρώτη κύρια κατάτμηση (primary partition) του πρώτου σκληρού δίσκου. Το OS/2 αποτελεί εξαίρεση. Μπορεί να εγκατασταθεί σε οποιοδήποτε δίσκο, σε κύρια ή εκτεταμένη κατάτμηση. Αν δεν είστε σίγουροι, κρατήστε την αρχή της κατάτμησης εκκίνησης σε κύλινδρο μικρότερο από τον 1024.

Αν εγκαταστήσετε τα Windows 95 σε ένα υπάρχον BSD σύστημα, θα καταστρέψει το MBR και θα πρέπει να ξαναστήσετε τον προηγούμενο boot manager σας. Το Boot Easy μπορεί να εγκατασταθεί χρησιμοποιώντας το πρόγραμμα BOOTINST.EXE που υπάρχει στον κατάλογο \TOOLS του CD-ROM κα στηνν διεύθυνση ftp. Μπορείτε επίσης να ξεκινήσετε πάλι την διαδικασία εγκατάστασης και να πάτε στον partition editor. Από εκεί, σημειώστε την κατάτμηση του FreeBSD σαν bootable, επιλέξτε Boot Manager, και τότε δώστε W για να γράψετε ((W)rite) τις πληροφορίες στο MBR. Μπορείτε τώρα να κάνετε επανεκκίνηση και το Boot Easy θα πρέπει να αναγνωρίσει τηνν κατάτμηση των Windows 95 σαν DOS.

Σημειώστε εδώ ότι το OS/2 μπορεί να διαβάσει FAT ή HPFS κατατμήσεις, αλλά όχι κατατμήσεις τύπου FFS (FreeBSD) ή EXT2 (Linux). Αντίστοιχα, τα Windows 95 μπορούν να διαβάσουν μόνο FAT και FAT32 συστήματα αρχείων (βλ. Τμήμα 2). Το FreeBSD μπορεί να διαβάσει τα περισσότερα συστήματα αρχείων, αλλά αυτή τη στιγμή δεν μπορεί να διαβάσει HPFS κατατμήσεις. Το Linux μπορεί να διαβάσει κατατμήσεις τύπου HPFS, αλλά δεν μπορεί να γράψει σε αυτές. Σχετικά πρόσφατες εκδόσεις του Linux πηρύνα (2.x) μπορούν να διαβάσουν και να γράψουν από Windows 95 κατατμήσεις τύπου VFAT (το VFAT είναι περίπου σαν το FAT, με πιο ουσιαστική διαφορά τα μεγάλα ονόματα αρχείων). Το Linux μπορεί να διαβάσει και να γράψει στα περισσότερα συστήματα αρχείων. Το καταλάβατε αυτό; Ελπίζω ναι.


5 Παραδείγματα

(Αυτό το τμήμα χρειάζεται βελτιώσεις, παρακαλώ στείλε τα παραδείγματά σας στην διεύθυνση ).

FreeBSD + Win95: Αν εγκαταστήσετε το FreeBSD μετά από τα Windows 95, θα πρέπει να δείτε μια κατάτμηση DOS στο μενού επιλογών του Boot Easy. Αυτή είναι η κατάτμηση των Windows 95. Αν εγκαταστήσετε τα Windows 95 μετά από το FreeBSD, διαβάστε παραπάνω Τμήμα 4. Αν ο δίσκος σας δεν έχει παραπάνω από 102 κυλίνδρους, δεν θα πρέπει να έχετε πρόβλημα να ξεκινήσετε κάποιο από τα λειτουργικά συστήματα. Αν όμως κάποια από τις κατατμήσεις σας βρίσκεται σε κύλινδρο μετά από τον 1024ο κύλινδρο του δίσκου, και παίρνετε μηνύματα όπως “invalid system disk” κάτω από το DOS (Windows 95) ή το FreeBSD δεν ξεκινάει, δοκιμάστε να ψάξετε στο BIOS σας για μια επιλογή με όνομα «> 1024 cylinder support» ή «NORMAL/LBA mode». Το DOS μπορεί να χρειάζεται να ενεργοποιήσετε την επιλογή LBA (Logical Block Addressing) για να ξεκινήσει σωστά. Αν η ιδέα της αλλαγής σε LBA mode κάθε φορά που θέλετε να ξεκινήσετε το DOS δεν σας αρέσει πολύ, μπορείτε να ξεκινήσετε το FreeBSD από το DOS χρησιμοποιώντας το πρόγραμμα FBSDBOOT.EXE από το CD (αυτό πρέπει να βρει μόνο του και να ξεκινήσει την FreeBSD κατάτμησή σας).

FreeBSD + OS/2 + Win95: Τίποτα διαφορετικό εδώ. Ο boot manager του OS/2 μπορεί να ξεκινήσει οποιοδήποτε από αυτά τα λειτουργικά συστήματα, οπότε δεν θα έχετε πρόβλημα.

FreeBSD + Linux: Μπορείτε να χρησιμοποιήσετε το Boot Easy για να ξεκινήσετε αυτά τα δυο λειτουργικά συστήματα.

FreeBSD + Linux + Win95: (βλ. Τμήμα 3)


6 Διάφορες Πηγές Βοήθειας

Υπάρχουν πολλά κείμενα HOWTO στην συλλογή των Linux HOW-TOs που αναφέρονται στο θέμα των πολλαπλών λειτουργικών στον ίδιο σκληρό δίσκο.

Το κείμενο Linux+DOS+Win95+OS2 mini-HOWTO προσφέρει βοήθεια για τις ρυθμίσεις του OS/2 boot manager, και το κείμενο Linux+FreeBSD mini-HOWTO μπορεί να σας ενδιαφέρει αρκετά. Ένα άλλο κείμενο που είναι χρήσιμο είναι το Linux-HOWTO.

Ο οδηγός The NTLDR Hacking Guide περιέχει πολλές πληροφορίες για την εκκίνηση των Windows NT, '95 και του DOS μαζί με άλλα λειτουργικά συστήματα.

Και η συλλογή οδηγών «How It Works» του Hale Landis περιέχει κάποιες χρήσιμες πληροφορίες σχετικά με την γεωμετρία των δίσκων και την εκκίνηση των υπολογιστών. Μπορείτε να βρείτε αυτή τη συλλογή στην διεύθυνση ftp://fission.dt.wdc.com/pub/otherdocs/pc_systems/how_it_works/allhiw.zip.

Τέλος, μην ξεχνάτε την τεκμηρίωση του πηρύνα του FreeBSD για την διαδικασία εκκίνησης, που διανέμεται μαζί με τον πηγαίο κώδικα (αποσυυμπιέζεται στο αρχείο /usr/src/sys/i386/boot/biosboot/README.386BSD.


7 Τεχνικές Λεπτομέρειες

(Γράφτηκε από τον Randall Hopper, )

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


7.1 Σκληροί Δίσκοι

Τρεις βασικοί όροι χρησιμοποιούνται για να περιγράψουν τη θέση των δεδομένων στο σκληρό δίσκο σας: οι κύλινδροι (cylinders), οι κεφαλές (heads) και οι τομείς (sectors). Δεν είναι ιδιαίτερα σημαντικό να γνωρίζετε τι ακριβώς σημαίνουν αυτοί οι όροι, εκτός από το γεγονός ότι προσδιορίζουν την φυσική θέση των δεδομένων στο δίσκο σας.

Ο δίσκος σας έχει ένα συγκεκριμένο αριθμό από κυλίνδρους, ένα αριθμό από κεφαλές και κάποιο αριθμό από τομείς σε κάθε ζευγάρι κυλίνδρου-κεφαλής (το ζευγάρι κυλίνδρου-κεφαλής είναι γνωστό και ως μονοπάτι ή track). Συνολικά αυτές οι πληροφορίες ορίζουν την «φυσική γεωμετρία δίσκου» του σκληρού δίσκου. Το τυπικό μέγεθος ενός τομέα είναι 512 bytes και συνήθως υπάρχουν 63 τομείς σε κάθε μονοπάτι. Ο αριθμός των κεφαλώ και κυλίδρων διαφέρει αρκετά από δίσκο σε δίσκο. Έτσι μπορείτε να υπολογίσετε τον αριθμό των bytes που χωράνε να αποθηκευθούν στο δίσκο σας υπολογίζοντας την τιμή:

(κύλινδροι) × (κεφαλές) × (63 τομείς/μονοπάτι) × (512 bytes/τομέα)

Για παράδειγμα, στον 1.6 GigWestern Digital AC31600 EIDE σκληρό δίσκο μου, αυτές οι τιμές είναι:

(3148 cyl) × (16 heads) × (63 sectors/track) × (512 bytes/sect)

που μας δίνει 1.624.670.208 bytes, ή περίπου 1.6 Gig.

Μπορείτε να βρείτε την φυσική γεωμετρία του δίσκου σας (τον αριθμό των κυλίνδρων, των κεφαλών και το πλήθος των τομέων ανά μονοπάτι) χρησιμοποιώντας το πρόγραμμα ATAID ή άλλα προγράμματα που είναι διαθέσιμα μέσω δικτύου. Προσοχή όμως. Αν έχετε ενεργοποιήσει την πρόσβαση με LBA στο BIOS σας (βλ. Τμήμα 7.3), δεν μπορείτε να χρησιμοποιήσετε οποιοδήποτε πρόγραμμα για να διαβάσετε την φυσική γεωμετρία του δίσκου. Αυτό συμβαίνει γιατί πολλά προγράμματα (π.χ. το MSD.EXE ή το fdisk του FreeBSD) δεν διαβάζουν την φυσική γεωμετρία του δίσκου, αλλά την μεταφρασμένη γεωμετρία (εικονικούς αριθμούς που προκύπτουν από την χρήση LBA πρόσβασης). Δείτε παρακάτω τι σημαίνει αυτό.

Κάτι άλλο που είναι χρήησιμο γι αυτούς τους όρους. Με μια τριάδα αριθμών--ένα αριθμό κυλίνδρου, ένα αριθμό κεφαλής κι ένα αριθμό τομέα μέσα στο μονοπάτι--μπορείτε να αναφερθείτε στην φυσική θέση ενός συγκεκριμένου τομέα του δίσκου σας (ένα μπλοκ δεδομένων, μεγέθους 512 bytes). Οι κύλινδροι και οι κεφαλές έχουν αριθμούς από 0 και πάνω, ενώ οι τομείς από 1 και πάνω.

Για αυτούς που ενδιαφέρονται για περισσότερες τεχνικές λεπτομέρειες, πληροφορίες για την γεωμετρία των δίσκων, τους τομείς εκκίνησης (boot sectors), τα BIOS, κλπ. μπορούν να βρεθούν σε πολλά μέρη στο διαδίκτυο. Ψάξτε στο Lycos, στο Yahoo, κλπ. για boot sector ή για master boot record. Ανάμεσα στις χρήσιμες πληροφορίες θα βρείτε και την σειρά κειμένων How It Works του Hale Landis. Δείτε το τμήμα Τμήμα 6 για περισσότερες λεπτομέρειες κι αναφορές σε πηγές.

Ok, αρκετά με την ορολογία. Υποτίθεται μιλάμε για την διαδικασίας εκκίνησης.


7.2 Η διαδικασία Εκκίνησης

Στον πρώτο τομέα του δίσκου (Κυλ. 0, Κεφαλή 0, Τομέας 1) υπάρχει ο Κύριος Τομέας Εκκίνησης (Master Boot Record ή MBR). Περιέχει ένα χάρτη του δίσκου. Ορίζει μέχρι 4 κατατμήσεις (partitions), κάθε μια από τις οποίες είναι ένα συνεχές κομμάτι του δίσκου. Το FreeBSD ονομάζει τις κατατμήσεις slices για να αποφύγει την σύγχυση με τα δικά του partitions, αλλά δεν θα το κάνουμε αυτό εδώ. Κάθε κατάτμηση μπορεί να περιέχει το δικό της, ξεχωριστό λειτουργικό σύστημα.

Κάθε εγγραφή κατάτμησης στο MBR έχει ένα Partition ID, ένα αρχικό κύλινδρο και ένα τελικό κύλινδρο/κεφαλή/τομέα. Το Partition ID ορίζει τι τύπου είναι η κατάτμηση (τι λειτουργικό σύστημα περιέχει) και η αρχή/τέλος ορίζουν που βρίσκεται. Ο Πίνακας 1 δείχνει κάποιους από τους πιο κοινούς τύπους κατάτμησης.

Πίνακας 1. Τύποι κατατμήσεων

Τύπος (στο δεκαεξαδικό) Περιγραφή
01 Κύρια κατάτμηση DOS12 (12-bit FAT)
04 Κύρια κατάτμηση DOS16 (16-bit FAT)
05 Εκτεταμένη κατάτμηση DOS
06 Κύρια κατάτμηση DOS μεγάλυ μεγέθους (> 32MB)
0A OS/2
83 Linux (EXT2FS)
A5 FreeBSD, NetBSD, 386BSD (UFS)

Σημειώστε πως δεν είναι δυνατή η εκκίνηση από οποιοδήποτε τύπο κατάτμησης (π.χ. από εκτεταμένες κατατμήσεις DOS). Από κάποιους τύπους γίνεται, από άλλους όχι. Αυτό που κάνει δυνατή την εκκίνηση από μια κατάτμηση είναι οι ρυθμίσεις του Τομέα Εκκίνησης Κατάτμησης που βρίσκεται στην αρχή κάθε κατάτμησης.

Όταν ρυθμίσετε τον boot manager της προτιμήσεώς σας, αυτός ψάχνει όλες τις εγγραφές κατατμήσεων τον πίνακα MBR όλων των δίσκων σας και σας δίνει τη δυνατότητα να ονομάσετε εγγραφές από τη λίστα. Έτσι, μόλις ξεκινάτε τον υπολογιστή σας, ειδικός κώδικας στο Master Boot Sector του πρώτου δίσκου του συστήματος τρέχει και ξεκινάει τον boot manager. Ο boot manager βρίσκει στον πίνακα MBR την εγγραφή για την κατάτμηση που επιλέξατε, βρίσκει την αρχή και το τέλος της κατάτμησης, φορτώνει στη μνήμη τονν Τομέα Εκκίνησης Κατάτμησης από αυτή την κατάτμηση και περνάει τον έλεγχο σε αυτόν. Ο Τομέας Εκκίνησης της κατάτμησης περιέχει αρκετές πληροφορίες για να ξεκινήσει να φορτώνει το λειτουργικό σύστημα από αυτή την κατάτμηση.

Κάτι που δε το αναφέραμε με πολλές λεπτομέρειες είναι σημαντικό και πρέπει να το ξέρετε. Όλοι οι δίσκοι σας έχουν MBR. Αλλά, ο τομέας MBR που είναι σημαντικός είναι αυτός που είναι στον πρώτο δίσκο του συστήματος που αναγνωρίζεται από το BIOS. Αν έχετε μόνο IDE δίσκους είναι ο πρώτος IDE δίσκος (δηλ. ο κύριος δίσκος του πρώτου ελεγκτή δίσκων). Αντίστοιχα για τα συστήματα που έχουν μόνο SCSI δίσκους. Αν έχετε και IDE και SCSI δίσκους όμως, συνήθως είναι οι IDE δίσκοι που αναγνωρίζονται πρώτα από το BIOS. Τότε ο boot manager πρέπει να τοποθετηθεί στο MBR αυτού του δίσκου, όπως περιγράψαμε πριν.


7.3 Περιορισμοί Εκκίνησης και Προειδοποιήσεις

Και τώρα τα ενδιαφέροντα πράγματα για τα οποία θα πρέπει να προσέχετε.


7.3.1 Το περίφημο όριο του κυλίνδρου 1024 και πως βοηθάει το LBA BIOS

Το πρώτο κομμάτι της διαδικασίας εκκίνησης γίνεται εξ' ολοκλήρου μέσω του BIOS (αν αυτός είναι καινούριος όρος για σας, το BIOS είναι ένα κομμάτι λογισμικού, αποθηκευμένο σε ένα chip της μητρικής πλακέτας του συστήματός σας, που περιέχει τον κώδικα εκκίνησης του σύστηματος). Γι αυτό το λόγο το πρώτο κομμάτι της εκκίνησης υπόκειται στους περιορισμούς του BIOS.

Ο τρόπος με τον οποίο το BIOS καλείται να διαβάσει τον σκληρό δίσκο σε αυτό το στάδιο της εκκίνησης (INT 13H, Συνάρτηση 2) δεσμεύει 10 bits για τον αριθμό κυλίνδρου, 8 bits για τον αριθμό κεφαλής και 6 bits για τον αριθμό τομέα. Αυτό περιορίζει κάπως τους χρήστες αυτής της κλήσης (π.χ. τους boot managers που υπάρχουν στο MBR του δίσκου σας, καθώς και τους loaders των λειτουργικών συστημάτων που υπάρχουν στους άλλους τομείς εκκίνησης). Τα όρια που επιβάλλει αυτή η κλήση είναι:

  • μέγιστος αριθμός κυλίνδρων = 1024

  • μέγιστος αριθμός κεφαλώνν = 256 heads

  • μέγιστος αριθμός τομέων/μονοπάτι = 64 (βασικά 63, ο τομέας 0 δεν είναι διαθέσιμος)

Σήμερα οι δίσκοι είναι αρκετά μεγάλοι, και έχουν πάρα πολλούς κυλίνδρους αλλά όχι πάρα πολλές κεφαλές. Έτσι λοιπόν, χωρίς εξαίρεση, οι μεγάλοι σκληροί δίσκοι έχουν περισσότερους από 1024 κυλίνδρους. Αυτό σημαίνει πως το BIOS δεν μπορεί να εκκινήσει τον υπολογιστή σας από οποιοδήποτε σημείο του δίσκου. Ο κώδικας εκκίνησης (ο boot manager και ο OS loader που έχει εγκατασταθεί σε όλες τις κατατμήσεις από τις οποίες θέλουμε να είναι δυνατή η εκκίνηση) πρέπει να είναι κάτω από το όριο του κυλίνδρου 1024. Γενικά, αν ο δίσκος σας είναι ένας τυπικός δίσκος κι έχει 16 κεφαλές, αυτό σημαίνει:

1024 κυλ/δίσκο × 16 κεφαλές/δίσκο × 63 τομείς/(κυλ-κεφαλή) × 512 bytes/τομέα

που είναι περίπου κοντά στο όριο των 528 MB που συχνά θα ακούσετε να αναφέρεται.

Εδώ είναι που η χρήση του BIOS LBA (Logical Block Addressing--Λογική Διευθυνσιοδότηση Μπλοκ) έρχεται να μας βοηθήσει. Η διευθυνσιοδότηση LBA δίνει στον χρήστη των κλήσεων του BIOS API ένα τρόπο να προσπελάσει κυλίνδρους πάνω από τον κύλινδρο 1024 χρησιμοποιώντας τις ίδιες κλήσεις BIOS ορίζοντας διαφορετικά τον κύλινδρο. Ορίζει μια διαφορετική οργάνωση των κυλίνδρων και των κεφαλών, για να δώσει μέσω του BIOS διαφορετική μορφή στο δίσκο, με λιγότερους κυλίνδρους και περισσότερες κεφαλές από ότι πραγματικά έχει. Με λίγα λόγια, εκμεταλλεύεται το γεγονός ότι οι δίσκοι έχουν σχετικά λίγες κεφαλές και πολύ περισσότερους κυλίνδρους αλλάζοντας λίγο την ισορροπία μεταξύ του αριθμού των κυλίνδρων και του αριθμού των κεφαλών, έτσι ώστε και οι δυο αριθμοί να φαίνονται κάτω από τα όρια που αναφέραμε (1024 κύλινδροι, 256 κεφαλές).

Με χρήση BIOS LBA, το όριο μεγέθους του δίσκου δεν είναι πλέον εμπόδιο (τουλάχιστον, όχι μέχρι τα 8 Gigabytes). Αν έχετε LBA BIOS, μπορείτε να βάλετε το FreeBSD ή οποιοδήποτε άλλο λειτουργικό σύστημα οπουδήποτε θέλετε και να μην περιορίζεστε από το όριο του κυλίνδρου 1024.

Για να χρησιμοποιήσω ξανά τον 1.6 Gig Western Digital δίσκο μου σαν παράδειγμα, η φυσική γεωμετρία του είναι:

(3148 κυλ, 16 κεφ, 63 τομείς/μονοπάτι, 512 bytes/τομέα)

Αλλά, η διευθυνσιοδότηση LBA του BIOS τον αλλάζει σε:

(787 κυλ, 64 κεφ, 63 τομείς/μονοπάτι, 512 bytes/τομέα)

δίνοντας πρακτικά το ίδιο μέγεθος δίσκου, αλλά με τους αριθμούς κυλίνδρων και κεφαλών μέσα στα όρια των κλήσεων του BIOS API (Παρεπιπτόντως, έχω στήσει και Linux και FreeBSD σε ένα από τουυς δίσκους μου, πάνω από το όριο του κυλίνδρου 1024. Και τα δυο λειτουργικά συστήματα δουλεύουν μια χαρά, χάρη στην διευθυνσιοδότηση LBA του BIOS).


7.3.2 Boot Managers και Κατανομή Δίσκων

Ένα άλλο σημαντικό σημείο που αξίζει να προσέξετε όταν στήνετε κάποιο boot manager είναι να κρατήσετε αρκετό χώρο για τον boot manager. Είναι καλύτερα να τοο ξέρετε αυτό από την αρχή για να γλιτώσετε από τον κόπο της επανεγκατάστασης ενός η περισσότερων από τα λειτουργικά συστήματά σας.

Αν ακολουθήσατε τις οδηγίες στο Τμήμα 7.2 σχετικά με το MBR (που είναι το MBR), τους Τομείς Εκκίνησης, και την διαδικασία εκκίνησης, μπορεί να αναρωτιέστε ήδη που ακριβώς στον δίσκο σας υπάρχει αυτός ο καλός boot manager. Ε λοιπόν, κάποιοι boot managers είναι αρκετά μικροί ώστε να χωρέσουν μέσα στον Κύριο Τομέα Εκκίνησης (MBR. Κύλινδρος 0, κεφαλή 0, τομέας 1) μαζί με τον πίνακα κατατμήσεων. Κάποιοι άλλοι χρειάζονται περισσότερο χώρο και ουσιαστικά καταλαμβάνουν αρκετούς τομείς μετά τον MBR, μέσα στο μονοπάτι με κύλινδρο 0 και κεφαλή 0, αφού τυπικά αυτός ο χώρος είναι ελεύθερος--τυπικά.

Εδώ είναι κι η παγίδα. Κάποια λειτουργικά συστήματα (ένα από αυτά είναι και το FreeBSD) σας επιτρέπουν να ξεκινήσετε την κατάτμησή τους ακριβώς μετά το MBR στον κύλινδρο 0, κεφαλή 0, και τομέα 2 αν θέλετε. Για παράδειγμα, αν δώσετε το sysinstall πρόγραμμα εγκατάστασης του FreeBSD ένα δίσκο με άδειο χώρο στην αρχή του δίσκου ή ένα τελείως άδειο δίσκο, εκεί θα προσπαθήσει να βάλει την κατάτμηση του FreeBSD (τουλάχιστον αυτό έκανε όταν την πάτησα εγώ). Έτσι, όταν πάτε να στήσετε τον boot manager σας, αν χρειαστεί να πιάσει κάποιους τομείς αμέσως μετά το MBR, θα σβηστεί η αρχή της πρώτης κατάτμησης με δεδομένα. Στην περίπτωση του FreeBSD, αυτό καταστρέφει την περιοχή του disklabel, κάνοντας αδύνατη την εκκίνηση από αυτή την κατάτμηση.

Η εύκολη λύση για να αποφύγετε τέτοια προβλήματα (και να κρατήσετε για τον εαυτό σας την δυνατότητα χρήσης κάποιου διαφορετικού boot manager στο μέλλον) είναι να αφήνετε πάντα ελεύθερο το πρώτο μονοπάτι όταν φτιάχνετε κάποιες κατατμήσεις στο δίσκο σας. Με λίγα λόγια, αφήστε ελεύθερο τον χώρο από τον κύλινδρο 0, κεφαλή 0, τομέα 2 μέχρι και τον κύλινδροnbsp;0, κεφαλή 1, τομέα 1. Βασικά, όταν φτιάχνετε κατατμήσεις στην αρχή του δίσκου με το DOS, το DOS αφήνει αυτό τονν χώρο ελεύθερο (γι αυτό και πολλοί boot manager θεωρούν ότι θα είναι ελεύθερος). Αν φτιάξετε μια μικρή κατάτμηση DOS στην αρχή του δίσκου σας δεν θα συναντήσετε αυτό το πρόβλημα. Προσωπικά μ' αρέσει να δημιουργώ στην αρχή μια μικρή κατάτμηση DOS μεγέθους 1 MB, καθώς έτσι αποφεύγω και τις αλλαγές στα drive letter των κύριων DOS κατατμήσεών μου αργότερα αν αλλάξω τις κατατμήσεις του δίσκου.

Αναφορικά, οι παρακάτω boot managers χρησιμοποιούν το Master Boot Sector αποθηκεύσουν δικό τους κώδικα ή/και δεδομένα:

  • OS-BS 1.35

  • Boot Easy

  • LILO

Αυτοί οι boot managers χρησιμοποιούν και λίγους ακόμα τομείς μετά το Master Boot Sector:

  • OS-BS 2.0 Beta 8 (sectors 2-5)

  • OS/2's boot manager


7.3.3 Τι γίνεται αν ο υπολογιστής σας δεν ξεκινάει;

Κάποια στιγμή, καθώς στήνετε διάφορους boot managers, μπορεί να αφήσετε το MBR σε τέτοια κατάσταση που να μην είναι δυνατόν να ξεκινήσετε τον υπολογιστή σας. Αυτό είναι απίθανο, αλλά μπορεί να γίνει καθώς αλλάζετε κατατμήσεις μετά από την εγκατάσταση ενός boot manager.

Αν έχετε κάποια bootable DOS κατάτμηση στον δίσκο σας, μπορείτε να ξεκινήσετε με μια δισκέττα εκκίνησης DOS και να τρέξετε:

A:\> FDISK /MBR

για να επαναφέρετε τον αρχικό, απλό κώδικα εκκίνησης του DOS στο σύστημά σας. Μπορείτε τότε να ξεκινήσετε με το DOS (και μόνο με το DOS) από το σκληρό σας δίσκο. Εναλλακτικά, μπορείτε να ξανατρέξετε το πρόγραμμα εγκατάστασης του boot manager σας από μια δισκέττα εκκίνησης.


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

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