Ο κώδικας στο MBR ή διαχειριστής εκκίνησης αναφέρεται μερικές φορές και ως στάδιο μηδέν (stage zero) της διαδικασίας εκκίνησης. Το τμήμα αυτό περιγράφει δύο από τους διαχειριστές εκκίνησης που αναφέραμε προηγουμένως: Το boot0 και το LILO.
Ο Διαχειριστής Εκκίνησης
boot0: Το MBR που εγκαθίσταται από το πρόγραμμα εγκατάστασης του FreeBSD
ή το boot0cfg(8), βασίζεται από προεπιλογή στο
/boot/boot0
.
(Το πρόγραμμα boot0 είναι πολύ απλό,
καθώς ο κώδικας στο MBR μπορεί να έχει μέγεθος ως
446 bytes, εξαιτίας του πίνακα κατατμήσεων (slice table) και
του αναγνωριστικού 0x55AA
που βρίσκεται στο τέλος
του MBR.) Αν έχετε εγκαταστήσει το boot0
και πολλαπλά λειτουργικά συστήματα στους σκληρούς δίσκους σας, θα
δείτε κατά την εκκίνηση, μια οθόνη παρόμοια με την
παρακάτω:
Άλλα λειτουργικά συστήματα, και ειδικότερα τα Windows(R), είναι γνωστό ότι γράφουν το δικό τους MBR πάνω σε κάποιο ήδη υπάρχον. Αν σας συμβεί αυτό, ή αν θέλετε να αντικαταστήσετε το υπάρχον MBR σας με αυτό του FreeBSD, χρησιμοποιήστε την ακόλουθη εντολή:
#
fdisk -B -b /boot/boot0 device
όπου device
είναι η συσκευή από την
οποία γίνεται εκκίνηση, όπως π.χ. το ad0
για
τον πρώτο δίσκο IDE, το ad2
για τον πρώτο
IDE δίσκο στο δευτερεύοντα ελεγκτή, το da0
για τον πρώτο SCSI δίσκο κ.ο.κ. Αν πάλι θέλετε προσαρμοσμένη ρύθμιση
του MBR, χρησιμοποιήστε το boot0cfg(8).
Ο Διαχειριστής Εκκίνησης LILO. Για να εγκαταστήσετε αυτό το διαχειριστή εκκίνησης ώστε να
μπορεί να εκκινεί το FreeBSD, εγκαταστήστε πρώτα το Linux και προσθέστε
την ακόλουθη καταχώρηση στο υπάρχον αρχείο ρυθμίσεων
/etc/lilo.conf
:
other=/dev/hdXY table=/dev/hdX loader=/boot/chain.b label=FreeBSD
Στο παραπάνω, καθορίστε το πρωτεύον διαμέρισμα και το δίσκο του
FreeBSD αντικαθιστώντας το X
με το γράμμα
δίσκου και το Y
με τον αριθμό του
πρωτεύοντος διαμερίσματος, χρησιμοποιώντας όμως την ονοματολογία του
Linux. Αν χρησιμοποιείτε οδηγό SCSI θα χρειαστεί
να αλλάξετε το /dev/hd
σε κάτι αντίστοιχο
με /dev/sd
. Η γραμμή
loader=/boot/chain.b
μπορεί να παραλειφθεί αν έχετε
και τα δύο λειτουργικά συστήματα στον ίδιο δίσκο. Εκτελέστε τώρα την
εντολή /sbin/lilo -v
για να καταχωρήσετε τις
νέες αλλαγές σας στο σύστημα. Μπορείτε να τις επιβεβαιώσετε
ελέγχοντας τα μηνύματα που θα εμφανιστούν στην οθόνη σας.
Ουσιαστικά, το πρώτο και δεύτερο στάδιο είναι τμήματα του ίδιου
προγράμματος, στην ίδια περιοχή του δίσκου. Λόγω περιορισμών χώρου
έχουν χωριστεί σε δύο, αλλά εγκαθίστανται πάντα μαζί.
Αντιγράφονται από το συνδυασμένο αρχείο
/boot/boot
από το πρόγραμμα εγκατάστασης ή το
bsdlabel (δείτε παρακάτω).
Βρίσκονται έξω από συστήματα αρχείων, στην πρώτη τροχιά (track)
του slice εκκίνησης, ξεκινώντας από τον πρώτο τομέα. Είναι το σημείο
όπου το boot0, ή οποιοσδήποτε άλλος
διαχειριστής εκκίνησης, αναμένει να βρει πρόγραμμα προς εκτέλεση με
το οποίο θα συνεχιστεί η διαδικασία εκκίνησης. Ο αριθμός των τομέων
που χρησιμοποιούνται μπορεί να βρεθεί εύκολα από το μέγεθος του
αρχείου /boot/boot
.
Το boot1
είναι πολύ απλό, μια και μπορεί να
είναι μόνο 512 bytes σε μέγεθος, και γνωρίζει όσα χρειάζεται για το
bsdlabel του FreeBSD, το οποίο αποθηκεύει
πληροφορίες σχετικά με το slice, ώστε να βρει και να εκτελέσει το
boot2
.
Το boot2
είναι ελαφρά πιο πολύπλοκο και
κατανοεί επαρκώς το σύστημα αρχείων του FreeBSD ώστε να μπορεί να βρει
αρχεία σε αυτό, και μπορεί επίσης να παρέχει μια απλή διεπαφή με το
χρήστη ώστε να μπορεί να γίνει η επιλογή του πυρήνα ή του προγράμματος
φόρτωσης που θα εκτελεστεί.
Το boot2
συνήθως εκτελεί τον
loader (φορτωτής εκκίνησης) ο
οποίος είναι εξαιρετικά πιο πολύπλοκος, αλλά παρέχει ένα ωραίο και
εύκολο τρόπο ρύθμισης της εκκίνησης. Παλιότερα το
boot2
αναλάμβανε να φορτώσει απευθείας τον
πυρήνα.
Αν χρειαστεί ποτέ να αντικαταστήσετε τα εγκατεστημένα
boot1
και boot2
χρησιμοποιήστε το bsdlabel(8):
#
bsdlabel -B diskslice
όπου το diskslice
είναι ο δίσκος και
το slice από το οποίο γίνεται η εκκίνηση, όπως π.χ.
ad0s1
για το πρώτο slice στον πρώτο IDE
δίσκο.
Αν χρησιμοποιήσετε μόνο το όνομα του δίσκου, όπως π.χ.
ad0
, στην εντολή bsdlabel(8) θα
δημιουργήσετε ένα επικίνδυνα αφοσιωμένο δίσκο, χωρίς slices. Είναι
σχεδόν σίγουρο ότι δεν θέλετε να το κάνετε αυτό, γι' αυτό
σιγουρευτείτε ότι ελέγξατε την εντολή bsdlabel(8) πριν πιέσετε
Return.
Ο loader, ή φορτωτής εκκίνησης, είναι το τελικό στάδιο του
συστήματος εκκίνησης τριών σταδίων, και βρίσκεται στο σύστημα αρχείων,
συνήθως ως /boot/loader
.
Προορισμός του loader είναι να παρέχει μια μέθοδο ρύθμισης φιλική προς το χρήστη, και χρησιμοποιεί ένα εύκολο σύνολο εντολών, το οποίο υποστηρίζεται από ένα ισχυρό μεταφραστή εντολών με ένα πολυπλοκότερο σύνολο εντολών.
Κατά την αρχικοποίηση, ο loader θα ανιχνεύσει την κονσόλα και τους δίσκους και θα καθορίσει από ποιο δίσκο γίνεται η εκκίνηση. Θα ρυθμίσει κατάλληλα τις αντίστοιχες μεταβλητές και θα ξεκινήσει ένα πρόγραμμα μετάφρασης εντολών (interpreter) στο οποίο μπορεί ο χρήστης να δίνει εντολές, είτε απευθείας, είτε μέσω κάποιου script.
Ο loader κατόπιν θα διαβάσει το αρχείο
/boot/loader.rc
, το οποίο με τη σειρά του
διαβάζει, από προεπιλογή, το
/boot/defaults/loader.conf
. Μέσα από το αρχείο
αυτό τίθενται λογικές προεπιλεγμένες τιμές για κάποιες μεταβλητές.
Έπειτα, διαβάζεται το αρχείο
/boot/loader.conf
για τυχόν τοπικές αλλαγές
στις μεταβλητές αυτές. Κατόπιν το loader.rc
χρησιμοποιεί αυτές τις μεταβλητές, φορτώνοντας τα αρθρώματα
(modules) και τον πυρήνα που έχει επιλεγεί.
Τελικά, ο loader, περιμένει 10 δευτερόλεπτα (προεπιλεγμένο χρονικό διάστημα) για την πίεση κάποιου πλήκτρου, και αν δεν υπάρξει παρέμβαση από τον χρήστη, ξεκινάει τον πυρήνα. Αν γίνει παρέμβαση, εμφανίζεται στον χρήστη μια προτροπή η οποίο κατανοεί το εύκολο σύνολο εντολών που αναφέραμε προηγουμένως, και όπου ο χρήστης μπορεί να ρυθμίσει μεταβλητές, να αποφορτώσει όλα τα αρθρώματα, να φορτώσει αρθρώματα και τελικά να προβεί σε εκκίνηση ή επανεκκίνηση.
Παρακάτω θα δείτε τις πιο συχνά χρησιμοποιούμενες εντολές του loader. Για περισσότερες λεπτομέρειες σχετικά με όλες τις διαθέσιμες εντολές, παρακαλούμε να δείτε το loader(8).
seconds
Προχωρά στην εκκίνηση του πυρήνα, αν δεν υπάρξει παρέμβαση από το χρήστη μέσα στο καθορισμένο χρονικό διάστημα που δίνεται σε δευτερόλεπτα. Απεικονίζει αντίστροφη μέτρηση, και ο προεπιλεγμένος χρόνος είναι τα 10 δευτερόλεπτα.
Προχωράει άμεσα στην εκκίνηση του πυρήνα, χρησιμοποιώντας όποιες τυχόν επιλογές έχουν δοθεί και το όνομα του πυρήνα που θα εκτελεστεί αν έχει επίσης δοθεί. Για να δώσετε διαφορετικό όνομα πυρήνα στην γραμμή εντολής, θα πρέπει πρώτα να χρησιμοποιήσετε την εντολή unload. Διαφορετικά, θα χρησιμοποιηθεί ο πυρήνας που έχει φορτωθεί ήδη.
Διατρέχει την αυτόματη ρύθμιση των αρθρωμάτων (module) που
βασίζεται σε μεταβλητές, με τον ίδιο τρόπο που γίνεται και σε
κανονική εκκίνηση. Αυτό έχει νόημα μόνο αν χρησιμοποιήσετε
πρώτα το unload
και αλλάξετε κάποιες
μεταβλητές, συνήθως το kernel
.
Δείχνει μηνύματα βοήθειας, τα οποία διαβάζονται από το
/boot/loader.help
. Αν το topic (θέμα)
που δόθηκε είναι η λέξη index
, θα δείτε μια
λίστα με τα διαθέσιμα θέματα βοήθειας.
filename
...Επεξεργάζεται το αρχείο με το όνομα αρχείου που δόθηκε (filename). Γίνεται ανάγνωση και γραμμή προς γραμμή μετάφραση του αρχείου. Η εντολή include σταματάει άμεσα αν εντοπιστεί κάποιο λάθος.
filename
Φορτώνει τον πυρήνα, το άρθρωμα πυρήνα ή ένα αρχείο του τύπου που καθορίστηκε, με βάση το όνομα αρχείου που δόθηκε. Αν μετά το όνομα αρχείου υπάρχουν παράμετροι, περνιούνται ως παράμετροι στο αρχείο που φορτώνεται.
Δείχνει ένα κατάλογο των αρχείων της διαδρομής που
δόθηκε, ή αν δεν καθορίστηκε διαδρομή, του ριζικού καταλόγου.
Αν δοθεί και η επιλογή -l
θα εμφανίζονται
επίσης και τα μεγέθη των αρχείων.
Εμφανίζει όλες τις συσκευές από τις οποίες είναι δυνατή η
φόρτωση αρθρωμάτων. Αν δοθεί με την επιλογή
-v
, εμφανίζονται περισσότερες
λεπτομέρειες.
Εμφανίζει τα αρθρώματα που έχουν φορτωθεί. Αν δοθεί η
επιλογή -v
, εμφανίζονται περισσότερες
λεπτομέρειες.
filename
Εμφανίζει το αρχείο που καθορίζεται, με παύσεις κάθε
LINES
αριθμό γραμμών.
Επανεκκινεί άμεσα το σύστημα.
variable
, set variable
=value
Καθορίζει μεταβλητές περιβάλλοντος για τον loader.
Αποφορτώνει όλα τα αρθρώματα.
Εδώ θα βρείτε μερικά πρακτικά παραδείγματα σχετικά με την χρήση του loader:
Για να ξεκινήσετε το συνηθισμένο πυρήνα σας, αλλά σε κατάσταση ενός χρήστη:
boot -s
Για να αποφορτώσετε το συνηθισμένο πυρήνα σας και να φορτώσετε τον παλιό σας (ή κάποιο άλλο):
unload
load kernel.old
Μπορείτε να χρησιμοποιήσετε το όνομα
kernel.GENERIC
για να αναφερθείτε στον
αρχικό (generic) πυρήνα ο οποίος υπάρχει στο CD της
εγκατάστασης, ή το kernel.old
για να
αναφερθείτε στον πυρήνα που είχατε εγκατεστημένο πριν (για
παράδειγμα, τον παλιό σας πυρήνα αν κάνατε πρόσφατα ρύθμιση και
εγκατάσταση νέου δικού σας προσαρμοσμένου πυρήνα).
Χρησιμοποιήστε το παρακάτω για να φορτώσετε τα συνηθισμένα σας αρθρώματα σε κάποιο άλλο πυρήνα:
unload
set kernel="kernel.old"
boot-conf
Για να φορτώσετε ένα script ρύθμισης πυρήνα (ένα αυτοματοποιημένο πρόγραμμα το οποίο εκτελεί τις λειτουργίες που κανονικά θα κάνατε μέσω κάποιου προγράμματος ρύθμισης πυρήνα κατά την εκκίνηση):
load -t userconfig_script /boot/kernel.conf
Η γραφική οθόνη εκκίνησης (splash screen) δημιουργεί ένα πιο ευχάριστο περιβάλλον σε σχέση με την απλή απεικόνιση των μηνυμάτων εκκίνησης σε μορφή κειμένου. Η γραφική οθόνη εκκίνησης εμφανίζεται ως ότου το σύστημα φτάσει στην προτροπή εισόδου (login), είτε στην κονσόλα, είτε στο γραφικό περιβάλλον.
Το FreeBSD διαθέτει δύο βασικά περιβάλλοντα. Το πρώτο είναι
το προεπιλεγμένο περιβάλλον κειμένου γραμμής εντολών (κονσόλα).
Μετά το τέλος της εκκίνησης, εμφανίζεται στην κονσόλα μια προτροπή
εισόδου. Το δεύτερο, είναι το γραφικό περιβάλλον
που παρέχεται από το σύστημα Χ11. Μετά την εγκατάσταση του
X11 και ενός από τους γραφικούς
διαχειριστές παραθύρων ή desktop,
όπως είναι τα GNOME,
KDE ή XFce,
μπορείτε να ξεκινήσετε το γραφικό περιβάλλον με την εντολή
startx
.
Μερικοί χρήστες προτιμούν να συνδέονται στο σύστημα μέσω γραφικής οθόνη εισόδου, αντί να χρησιμοποιούν την προτροπή εισόδου της κονσόλας. Η δυνατότητα αυτή παρέχεται απο διαχειριστές οθόνης, όπως ο XDM για το Xorg, o gdm για το GNOME και ο kdm για το KDE (καθώς και άλλους που διατίθενται στη Συλλογή των Ports). Μετά από μια επιτυχημένη είσοδο, παρουσιάζεται άμεσα στο χρήστη το γραφικό περιβάλλον της επιλογής του.
Στο περιβάλλον της γραμμής εντολών, η γραφική οθόνη εκκίνησης θα αποκρύψει όλα τα μηνύματα ανίχνευσης των συσκευών και υπηρεσιών, μέχρι την εμφάνιση της προτροπής εισόδου. Με απευθείας εκκίνηση σε περιβάλλον X11, η εμπειρία εκκίνησης θα είναι ακόμα πιο καθαρή, και θα μοιάζει περισσότερο με την αντίστοιχη σε ένα περιβάλλον Microsoft(R) Windows(R) ή άλλου μη-UNIX συστήματος.
Η γραφική οθόνη εκκίνησης υποστηρίζει εικόνες bitmap
(.bmp
), ZSoft PCX
(.pcx
) ή TheDraw (.bin
)
256 χρωμάτων. Επιπρόσθετα, οι εικόνες που χρησιμοποιούνται
πρέπει να έχουν ανάλυση 320x200 ή μικρότερη για να λειτουργήσουν
σε τυπικούς προσαρμογείς οθόνης VGA.
Για να χρησιμοποιήσετε μεγαλύτερες εικόνες, μέχρι την μέγιστη
ανάλυση των 1024x768 pixels, ενεργοποιήστε την υποστήριξη
VESA που περιλαμβάνεται στο FreeBSD. Μπορείτε να
την ενεργοποιήσετε φορτώνοντας το άρθρωμα VESA
κατά την εκκίνηση του συστήματος, η προσθέτοντας την επιλογή
VESA
στο αρχείο ρυθμίσεων του πυρήνα, και
δημιουργώντας ένα νέο προσαρμοσμένο πυρήνα (Κεφάλαιο 9, Ρυθμίζοντας τον Πυρήνα του FreeBSD). Η υποστήριξη VESA
δίνει στους χρήστες την δυνατότητα να χρησιμοποιήσουν μια εικόνα
που να καλύπτει όλη την οθόνη.
Μπορείτε να δείτε τα κανονικά μηνύματα εκκίνησης όσο εμφανίζεται η γραφική οθόνη εκκίνησης, πιέζοντας απλώς οποιοδήποτε πλήκτρο.
Η οθόνη εκκίνησης γίνεται επίσης η προεπιλεγμένη προφύλαξη
οθόνης, όσο το σύστημα λειτουργεί σε περιβάλλον κονσόλας. Μετά
από κάποιο χρονικό διάστημα αδράνειας, η οθόνη αλλάζει,
απεικονίζοντας την εικόνα που χρησιμοποιήθηκε στην εκκίνηση,
με κυκλική εναλλαγή της φωτεινότητας από πολύ φωτεινή ως πολύ
σκοτεινή. Μπορείτε να αλλάξετε αυτή την προεπιλεγμένη προφύλαξη
οθόνης, προσθέτοντας μια γραμμή saver=
στο
αρχείο /etc/rc.conf
. Για την επιλογή
saver=
, υπάρχουν αρκετές ενσωματωμένες
προφυλάξεις οθόνης για να επιλέξετε. Μπορείτε να δείτε την πλήρη
λίστα στη σελίδα manual του splash(4). Η προεπιλεγμένη
προφύλαξη οθόνης ονομάζεται «warp». Σημειώστε ότι η
προφύλαξη οθόνης που καθορίζεται στο αρχείο
/etc/rc.conf
μέσω της επιλογής
saver=
έχει επίδραση μόνο στις εικονικές
κονσόλες. Δεν επηρεάζει καθόλου το γραφικό περιβάλλον X11.
Κάποια μηνύματα εκκίνησης εξακολουθούν να εμφανίζονται, ακόμα και μετά την εφαρμογή της γραφικής οθόνης εκκίνησης. Τα μηνύματα αυτά περιλαμβάνουν το μενού επιλογών εκκίνησης και την αντίστροφη μέτρηση χρόνου που το συνοδεύει.
Μπορείτε να κατεβάσετε υποδείγματα εικόνων για χρήση στην εκκίνηση, από τη συλλογή εικόνων στην τοποθεσία http://artwork.freebsdgr.org. Αν εγκαταστήσετε το Port sysutils/bsd-splash-changer, θα έχετε τυχαία εναλλαγή εικόνων (που θα επιλέγονται από μια έτοιμη συλλογή) σε κάθε εκκίνηση του συστήματος.
Το αρχείο που θα χρησιμοποιηθεί για την γραφική οθόνη
εκκίνησης (τύπου .bmp
,
.pcx
ή .bin
) θα πρέπει
να τοποθετηθεί στην ριζική (root) κατάτμηση, για παράδειγμα στον
κατάλογο /boot/
.
Για την προεπιλεγμένη ανάλυση οθόνης (320x200 ή μικρότερη,
256 χρώματα), επεξεργαστείτε το αρχείο
/boot/loader.conf
ώστε να περιέχει τα
παρακάτω:
splash_bmp_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.bmp
"
Για μεγαλύτερες αναλύσεις, μέχρι την μέγιστη 1024x768,
επεξεργαστείτε το αρχείο /boot/loader.conf
ώστε να περιέχει το παρακάτω:
vesa_load="YES"
splash_bmp_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.bmp
"
Το παραπάνω υποθέτει ότι θα χρησιμοποιήσετε το αρχείο
/boot/splash.bmp
για την γραφική οθόνη εκκίνησης. Αν θέλετε να χρησιμοποιήσετε
εικόνα τύπου PCX, χρησιμοποιήστε τις παρακάτω
επιλογές, καθώς και την επιλογή
vesa_load="YES"
, ανάλογα με την ανάλυση:
splash_pcx_load="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.pcx
"
Στην έκδοση 8.3, μια ακόμα επιλογή είναι η χρήση ascii art σε μορφή The Draw.
splash_txt="YES"
bitmap_load="YES"
bitmap_name="/boot/splash.bin
"
Το όνομα αρχείου δεν είναι απαραίτητο να είναι
«splash» όπως φαίνεται στο παραπάνω παράδειγμα.
Μπορεί να είναι οτιδήποτε, αρκεί να πρόκειται για αρχείο των
τύπων που αναφέραμε παραπάνω, για παράδειγμα
splash_640x400.bmp
ή
blue_wave.pcx
.
Παρακάτω φαίνονται μερικές ακόμα ενδιαφέρουσες επιλογές που
μπορείτε να χρησιμοποιήσετε στο
/boot/loader.conf
:
beastie_disable="YES"
Η επιλογή αυτή καταργεί την εμφάνιση του μενού επιλογών εκκίνησης. Παραμένει ωστόσο η αντίστροφη μέτρηση με την προτροπή εισαγωγής επιλογών εκκίνησης. Ακόμα και όταν δεν εμφανίζεται το μενού επιλογών, αν ο χρήστης κάνει μια επιλογή στη διάρκεια του προεπιλεγμένου χρόνου αναμονής, η επιλογή αυτή θα ισχύσει για την εκκίνηση.
loader_logo="beastie"
Η επιλογή αυτή αλλάζει το κείμενο «FreeBSD» που εμφανίζεται στο δεξιό μέρος του μενού επιλογών εκκίνησης, με ένα έγχρωμο λογότυπο του beastie, όπως εμφανιζόταν στις παλαιότερες εκδόσεις.
Για περισσότερες πληροφορίες, παρακαλούμε ανατρέξτε στις σελίδες manual splash(4), loader.conf(5) και vga(4).
Αυτό το κείμενο, και άλλα κείμενα, μπορεί να βρεθεί στο ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Για ερωτήσεις σχετικά με το FreeBSD, διαβάστε την
τεκμηρίωση πριν να επικοινωνήσετε με την
<questions@FreeBSD.org>.
Για ερωτήσεις σχετικά με αυτή την τεκμηρίωση, στείλτε e-mail στην
<doc@FreeBSD.org>.