Θα πρέπει πρώτα να δημιουργήσετε ένα αρχείο προρυθμίσεων και να το τοποθετήσετε στο σημείο από το οποίο θέλετε να το χρησιμοποιήσετε. Η δημιουργία αυτού του αρχείου καλύπτεται παρακάτω στο παρόν παράρτημα. Η τοποθέτηση του αρχείου στο σωστό σημείο είναι αρκετά προφανής για προρύθμιση με δίκτυο ή αν θέλετε να το διαβάσετε από ένα usb-stick. Αν θέλετε να συμπεριλάβετε το αρχείο σε μια εικόνα ISO θα πρέπει να ξαναδημιουργήσετε την εικόνα αυτή. Το πώς μπορείτε να συμπεριλάβετε το αρχείο σε έναν δίσκο μνήμης initrd είναι πέρα από τους σκοπούς του παρόντος κειμένου. Παρακαλούμε συμβουλευθείτε την τεκμηρίωση για τους προγραμματιστές του debian-installer
.
Ένα παράδειγμα αρχείου προρυθμίσεων που μπορείτε να χρησιμοποιήσετε σαν βάση για το αντίστοιχο δικό σας, είναι διαθέσιμο στο ../example-preseed.txt. Το αρχείο αυτόβασίζεται στα τμήματα των ρυθμίσεων που περιλαμβάνονται σ' αυτό εδώ το παράρτημα.
Αν χρησιμοποιείτε initrd preseeding, αρκεί μόνο να βεβαιωθείτε ότι το αρχείο με όνομα preseed.cfg
περιλαμβάνεται στον ριζικό κατάλογο του δίσκου initrd. Ο εγκαταστάτης θα ελέγξει αυτόματα αν το αρχείο είναι παρόν και θα το φορτώσει.
For the other preseeding methods you need to tell the installer what file to use when you boot it. This is normally done by passing the kernel a boot parameter, either manually at boot time or by editing the bootloader configuration file (e.g. syslinux.cfg
) and adding the parameter to the end of the append line(s) for the kernel.
Αν όντως ορίσετε το αρχείο προρυθμίσεων στη διαμόρφωση του φορτωτή εκκίνησης, μπορείτε να αλλάξετε αυτή τη διαμόρφωση ώστε να μην χρειάζεται να πατήσετε enter για να ξεκινήσετε τον εγκαταστάτη. Για το syslinux αυτό σημαίνει τον ορισμό του χρόνου εξόδου (timeout) ίσο με 1
στο αρχείο syslinux.cfg
.
Για να βεβαιωθείτε ότι ο εγκαταστάτης ανακτά το σωστό αρχείο, μπορείτε να προσδιορίσετε επιπλέον ένα checksum για το αρχείο. Προς το παρόν, αυτό θα πρέπει να είναι ένα md5sum και αν καθοριστεί θα πρέπει να ταιριάζει στο αρχείο προρύθμισης, διαφορετικά ο εγκαταστάτης θα αρνηθεί να το χρησιμοποιήσει.
Boot parameters to specify: - Για εκκίνηση από το δίκτυο: netbooting: preseed/url=http://host/path/to/preseed.cfg preseed/url/checksum=5da499872becccfeda2c4872f9171c3d - or preseed/url=tftp://host/path/to/preseed.cfg preseed/url/checksum=5da499872becccfeda2c4872f9171c3d - αν εκκινείτε από μια επεξεργασμένη εκ νέου εικόνα εγκατάστασης: preseed/file=/cdrom/preseed.cfg preseed/file/checksum=5da499872becccfeda2c4872f9171c3d - αν κάνετε την εγκατάσταση από ένα μέσο USB (τοποθετήστε το αρχείο προρυθμίσεων στον κορυφαίο κατάλογο του USB stick): preseed/file=/hd-media/preseed.cfg preseed/file/checksum=5da499872becccfeda2c4872f9171c3d
Σημειώστε ότι η παράμετρος preseed/url
μπορεί να συντομευθεί απλά σε url
, η παράμετρος preseed/file
απλά σε file
και η παράμετρος preseed/file/checksum
απλά σε preseed-md5
όταν δωθούν ως παραμέτροι εκκίνησης.
Αν ένα αρχείο προρύθμισης δεν μπορεί να χρησιμοποιηθεί για την προρύθμιση κάποιων βημάτων, η εγκατάσταση είναι δυνατόν να αυτοματοποιηθεί ακόμα πλήρως, αφού μπορείτε να περάσετε προκαθορισμένες τιμές στην ίδια την γραμμή εντολών κατά την εκκίνηση του εγκαταστάτη.
Παράμετροι εκκίνησης μπορούν επίσης να χρησιμοποιηθούν αν δεν θέλετε πραγματικά να χρησιμοποιήσετε τη μέθοδο προρύθμισης αλλά απλά να δώσετε απάντηση σε μια συγκεκριμένη ερώτηση. Μερικά παραδείγματα όπου αυτό μπορεί να είναι χρήσιμο τεκμηριώνονται σε άλλο σημείο αυτού του εγχειριδίου.
Για να ρυθμίσετε μια τιμή ώστε να χρησιμοποιηθεί μέσα στον debian-installer
απλά περάστε τις τιμές
για τις προρυθμισμένες παραμέτρους που αναφέρονται στα παραδείγματα αυτού του παραρτήματος. Αν μια τιμή πρόκειται να χρησιμοποιηθεί για την ρύθμιση πακέτων στο προς εγκατάσταση σύστημα, θα πρέπει να προτάξετε την παράμετρο owner[19] της μεταβλητής όπως για παράδειγμα στο path/to/variable
=value
. Αν δεν προσδιορίσετε τον κάτοχο, η τιμή για την μεταβλητή δεν θα αντιγραφεί στην βάση δεδομένων του debconf στο προς εγκατάσταση σύστημα και συνεπώς δεν θα χρησιμοποιηθεί κατά την ρύθμιση του αντίστοιχου πακέτου. owner
:path/to/variable
=value
Συνήθως η προρύθμιση μιας ερώτησης μ' αυτόν τον τρόπο σημαίνει ότι η συγκεκριμένη ερώτηση δεν θα τεθεί. Για να καθορίσετε μια συγκεκριμένη προεπιλεγμένη απάντηση για μια ερώτηση, αλλά παρόλα αυτά η ερώτηση αυτή να γίνεται, χρησιμοποιήστε «?=» αντί για «=» σαν τελεστή. Δείτε επίσης την ενότητα Τμήμα B.5.2, «Χρήση preseeding για την αλλαγή των προκαθορισμένων τιμών».
Σημειώστε ότι μερικές μεταβλητές που ορίζονται συχνά στο προτρεπτικό εκκίνησης έχουν ένα συντομότερο παρωνύμιο (alias). Αν ένα τέτοιο παρωνύμιο είναι διαθέσιμο, είναι αυτό που χρησιμοποιείται στα παραδείγματα αυτού του παραρτήματος αντί του πλήρους ονόματος της μεταβλητής. Για παράδειγμα, η μεταβλητή preseed/url
χρησιμοποιείται με το παρωνύμιο url
. Ένα άλλο παράδειγμα είναι το παρωνύμιο tasks
που μεταφράζεται σε tasksel:tasksel/first
.
Ένα όρισμα «---» στις επιλογές εκκίνησης έχει ειδική σημασία. Παράμετροι του πυρήνα που εμφανίζονται μετά το τελευταίο «---» μπορούν να αντιγραφούν στο αρχείο ρυθμίσεων του φορτωτή εκκίνησης για το εγκατεστημμένο σύστημα (αν αυτό υποστηρίζεται από τον εγκαταστάτη για τον φορτωτή εκκίνησης). Ο εγκαταστάτης θα φιλτράρει αυτόματα οποιεσδήποτε επιλογές (όπως επιλογές προρύθμισης) μπορεί να αναγνωρίσει.
Σημείωση | |
---|---|
Πρόσφατοι πυρήνες του Linux (2.6.9 και μεταγενέστεροι) δέχονται ένα μέγιστο αριθμό 32 επιλογών γραμμής εντολών και 32 επιλογών περιβάλλοντος συμπεριλαμβανομένων οποιωνδήποτε επιλογών προστίθενται εξ' ορισμού από τον εγκαταστάτη. Αν οι αριθμοί αυτοί ξεπεραστούν, ο πυρήνας θα περάσει σε κατάσταση "πανικού" (crash). (Για παλιότερους πυρήνες αυτοί οι αριθμοί επιλογών ήταν χαμηλότεροι). |
Για τις περισσότερες εγκαταστάσεις μερικές από τις προκαθορισμένες επιλογές στο αρχείο ρύθμισης του φορτωτή εκκίνησης, όπως vga=normal
, μπορούν με ασφάλεια να αφαιρεθούν, επιτρέποντας έτσι την προσθήκη περισσότερων επιλογών για προρύθμιση.
Σημείωση | |
---|---|
Ίσως να μην είναι πάντα εφικτό να καθορίσετε τιμές με κενά στις παραμέτρους εκκίνησης ακόμα κι αν τις βάλλετε μέσα σε εισαγωγικά. |
Υπάρχουν αρκετά χαρακτηριστικά του Εγκαταστάτη του Debian που συνδυάζονται για να επιτρέψουν αρκετά απλές γραμμές εντολών στο προτρεπτικό εκκίνησης να έχουν ως αποτέλεσμα οσοδήποτε σύνθετες προσαρμοσμένες αυτοματοποιημένες εγκαταστάσεις.
Αυτό ενεργοποιείται χρησιμοποιώντας την επιλογή Αυτόματη εγκατάσταση
κατά την εκκίνηση, που αποκαλείται επίσης auto
σε κάποιες αρχιτεκτονικές ή μεθόδους εκκίνησης. Στην ενότητα αυτή, η λέξη auto
δεν είναι λοιπόν μια παράμετρος, αλλά σημαίνει να διαλέξει κανείς αυτή την επιλογή εκκίνησης και την προσθήκη των ακόλουθων παραμέτρων στο προτρεπτικό εκκίνησης.
Για να το δείξουμε αυτό, ορίστε μερικά παραδείγματα που μπορούν να χρησιμοποιηθούν στο προτρεπτικό εκκίνησης:
auto url=autoserver
Αυτό βασίζεται στην ύπαρξη ενός εξυπηρετητή DHCP ο οποίος θα φέρει το μηχάνημά μας στο σημείο που το όνομα ενός autoserver
μπορεί να προσδιοριστεί μέσω DNS, πιθανόν μετά και την προσθήκη του τοπικού τομέα δικτύου αν αυτό δόθηκε από την υπηρεσία DHCP. Αν αυτό έγινε σε ένα δίκτυο που το όνομα τομέα του είναι example.com
, και το οποίο διαθέτει μια εύλογη ρύθμιση της υπηρεσίας DHCP, τότε το αποτέλεσμα θα ήταν η ανάκτηση του αρχείου προρύθμισης από το http://autoserver.example.com/d-i/trixie/./preseed.cfg
.
Το τελευταίο κομμάτι της διεύθυνσης (d-i/trixie/./preseed.cfg
) λαμβάνεται από το auto-install/defaultroot
. Εξ' ορισμού περιλαμβάνει τον κατάλογο trixie
για να επιτρέπει σε μεταγενέστερες εκδόσεις του Debian να προσδιορίζουν το δικό τους κωδικό όνομα και στους χρήστες να αλλάζουν σ' αυτές με έναν ελεγχόμενο τρόπο. Το κομμάτι /./
χρησιμοποιείται σαν ένδειξη μιας ρίζας, σε σχέση με την οποία να μπορούν να αγκιστρώνονται άλλες διαδρομές στο σύστημα αρχείων που ακολουθούν (για χρήση με τα preseed/include και preseed/run). Αυτό επιτρέπει τον προσδιορισμό αρχείων σαν πλήρεις διευθύνσεις URL, και διαδρομές που ξεκινούν με / αγκιστρώνονται κατ' αυτόν τον τρόπο, ή ακόμα και σαν διαδρομές σχετικά με την τοποθεσία όπου βρέθηκε το τελευταίο αρχείο προρύθμισης. Αυτό μπορεί να χρησιμοποιηθεί στην κατασκευή πιο "φορητών" σεναρίων (script) στα οποία μια ολόκληρη ιεραρχία σεναρίων μπορεί να μετακινηθεί σε μια καινούρια τοποθεσία χωρίς προβλήματα, για παράδειγμα με την αντιγραφή των αρχείων σε ένα stick USB ενώ αυτά προέρχονται από έναν εξυπηρετητή web. Στο παράδειγμα αυτό, αν το αρχείο προρύθμισης θέτει το preseed/run
σαν /scripts/late_command.sh
τότε το αρχείο θα ανακτηθεί από τη διεύθυνση http://autoserver.example.com/d-i/trixie/./scripts/late_command.sh
.
Αν δεν είναι διαθέσιμη μια τοπική υποδομή υπηρεσιών DNS ή DHCP, ή αν δεν θέλετε να χρησιμοποιήσετε την προκαθορισμένη διαδρομή στο preseed.cfg
, μπορείτε και πάλι να χρησιμοποιήσετε ένα συγκεκριμένο url, που αν δεν χρησιμοποιήσετε το κομμάτι /./
θα αγκιστρωθεί στην αρχή της διαδρομής (δηλ, το τρίτο /
στο URL). Εδώ είναι ένα παράδειγμα που απαιτεί ελάχιστη υποστήριξη από την τοπική δικτυακή υποδομή:
auto url=http://192.168.1.2/path/to/mypreseed.file
Ο τρόπος με τον οποίο δουλεύει αυτό είναι:
αν στην διεύθυνση URL δεν υπάρχει κάποιο πρωτόκολλο, υποτίθεται ότι αυτό είναι το http,
αν το όνομα του μηχανήματος δεν περιέχει τελείες, τότε προσάπτεται σ' αυτό το όνομα τομέα που προκύπτει από το DHCP, και
αν δεν υπάρχει /
μετά το όνομα του μηχανήματος, τότε προστίθεται η προκαθορισμένη διαδρομή.
Επιπρόσθετα από τον προσδιορισμό του url, μπορείτε ακόμα να προσδιορίσετε ρυθμίσεις που δεν επηρεάζουν άμεσα την συμπεριφορά του ίδιου του debian-installer
αλλά μπορούν να περάσουν στα σενάρια που προσδιορίζονται με την χρήση του preseed/run
στο αρχείο προρύθμισης που έχει ήδη φορτωθεί. Προς το παρόν, το μοναδικό παράδειγμα αυτής της κατάστασης είναι το auto-install/classes
, με παρωνύμιο classes
. Αυτό μπορεί να χρησιμοποιηθεί ως εξής:
auto url=example.com
classes=class_A;class_B
Οι κλάσεις θα μπορούσαν να δηλώνουν για παράδειγμα τον τύπο του συστήματος που πρόκειται να εγκατασταθεί, ή τις τοπικές ρυθμίσεις που πρόκειται να χρησιμοποιηθούν.
Φυσικά είναι δυνατόν να επεκτείνει κανείς αυτή την ιδέα, και αν κάνετε κάτι τέτοιο, είναι εύλογο να χρησιμοποιήσετε τον χώρο ονομασιών (namespace) auto-install για τον σκοπό αυτό. Έτσι μπορεί κανείς να έχει κάτι όπως το auto-install/style
που στη συνέχεια να χρησιμοποιείται στα σενάριά του. Αν αισθάνεστε την ανάγκη να κάνετε κάτι τέτοιο, παρακαλούμε αναφέρετέ το στη λίστα αλληλογραφίας <debian-boot@lists.debian.org>
ώστε να αποφύγουμε ασυμφωνίες στον χώρο ονομασιών και πιθανόν να προσθέσουμε ένα παρωνύμιο για την παράμετρο για λογαριασμό σας.
Η επικεφαλίδα εκκίνησης auto
δεν έχει ακόμα οριστεί σε όλες τις αρχιτεκτονικές. Το ίδιο αποτέλεσμα μπορεί να επιτευχθεί όμως προσθέτοντας απλά τις δυο παραμέτρους auto=true priority=critical
στη γραμμή εντολών του πυρήνα. Η παράμετρος auto
είναι ένα παρωνύμιο της παραμέτρου auto-install/enable
και η απόδοση της τιμής true
έχει σαν αποτέλεσμα την καθυστέρηση της διατύπωσης των ερωτήσεων για τις τοπικές ρυθμίσεις και το πληκτρολόγιο μέχρι τη στιγμή που θα έχει δοθεί η δυνατότητα προρύθμισής τους, ενώ η παράμετρος priority
είναι παρωνύμιο της παραμέτρου debconf/priority
και ο καθορισμός της σε critical
αποτρέπει την διατύπωση κάθε ερώτησης με χαμηλότερη προτεραιότητα.
Επιπλέον επιλογές που μπορεί να έχουν ενδιαφέρον στην προσπάθεια αυτοματοποίησης μιας εγκατάστασης με χρήση της υπηρεσίας DHCP είναι: interface=auto netcfg/dhcp_timeout=60
που κάνει το μηχάνημα να διαλέξει την πρώτη διαθέσιμη διεπαφή δικτύου (NIC) και να είναι περισσότερο "υπομονετικό" όσον αφορά την λήψη μιας απάντησης στο αίτημά του προς τον εξυπηρετητή DHCP.
Υπόδειξη | |
---|---|
Ένα εκτεταμένο παράγειγμα του πώς μπορείτε να χρησιμοποιήσετε αυτό το πλαίσιο, που συμπεριλαμβάνει παραδείγματα σεναρίων (script) και κλάσσεις, μπορεί να βρεθεί στον δικτυακό τόπο του προγραμματιστή. Τα παραδείγματα που δίνονται εκεί δείχνουν επίσης μερικά ακόμα χρήσιμα αποτελέσματα που μπορούν να επιτευχθούν μέσω της δημιουργικής χρήσης της προρύθμισης. |
Τα παρακάτω ψευδώνυμα μπορεί να φανούν χρήσιμα όταν χρησιμοποιείτε προρύθμιση (κατάσταση αυτόματης εγκατάστασης). Σημειώστε ότι αυτά είναι απλά σύντομα ψευδώνυμα για ονόματα ερωτήσεων, και ότι θα πρέπει πάντα να προσδιορίζετε και μια τιμή: για παράδειγμα, auto=true
or interface=eth0
.
priority | debconf/priority |
fb | debian-installer/framebuffer |
auto | auto-install/enable |
classes | auto-install/classes |
αρχείο | preseed/file |
url | preseed/url |
θέμα | debian-installer/theme |
language | debian-installer/language |
country | debian-installer/country |
locale | debian-installer/locale |
keymap | keyboard-configuration/xkb-keymap |
αρθρώματα | anna/choose_modules |
firmware | hw-detect/firmware-lookup |
interface | netcfg/choose_interface |
domain | netcfg/get_domain |
hostname | netcfg/get_hostname |
protocol | mirror/protocol |
suite | mirror/suite |
συνιστά | base-installer/install-recommends |
καθήκοντα | tasksel:tasksel/first |
επιφάνεια εργασίας | tasksel:tasksel/desktop |
preseed-md5 | preseed/file/checksum |
Εδώ είναι μερικά παραδείγματα για το πώς μπορεί να μοιάζει το προτρεπτικό εκκίνησης (θα χρειαστεί να το προσαρμόσετε στις δικές σας ανακες).
# Για να θέστε τα Γαλλικά ως γλώσσα και τη Γαλλία ως χώρα: /install.amd/vmlinuz vga=788 initrd=/install.amd/gtk/initrd.gz language=fr country=FR --- quiet # Για να θέσετε τα Αγγλικά ως γλώσσα και τη Γερμανία ως χώρα και για να χρησιμοποιήσετε μια διάταξη γερμανικού πληκτρολογίου: /install.amd/vmlinuz vga=788 initrd=/install.amd/gtk/initrd.gz language=en country=DE locale=en_US.UTF-8 keymap=de --- quiet # Για να εγκαταστήσετε το περιβάλλον επιφάνειας εργασίας MATE: /install.amd/vmlinuz vga=788 initrd=/install.amd/gtk/initrd.gz desktop=mate-desktop --- quiet # Για να εγκαταστήσετε τη σουίτα προγραμμάτων (task) web-server: /install.amd/vmlinuz initrd=/install.amd/initrd.gz tasksel:tasksel/first=web-server ---
Είναι επίσης δυνατόν να χρησιμοποιήσετε το πρωτόκολλο DHCP για τον προσδιορισμό ενός αρχείου προρυθμίσεων και να το κατεβάσετε από το δίκτυο. Το DHCP επιτρέπει τον προσδιορισμό ενός ονόματος αρχείου. Συνήθως αυτό είναι ένα αρχείο για εκκίνηση από το δίκτυο, αν όμως εμφανίζεται να είναι μια διεύθυνση URL τότε τα μέσα εγκατάστασης που υποστηρίζουν προρύθμιση μέσω δικτύου θα κατεβάσουν το αρχείο από την διεύθυνση αυτή και θα το χρησιμοποιήσουν σαν αρχείο προρυθμίσεων. Εδώ είναι ένα παράδειγμα του πώς να κάνετε την αντίστοιχη ρύθμιση στο αρχείο dhcpd.conf για την έκδοση 3 του εξυπηρετητή DHCP του ISC (το πακέτο isc-dhcp-server στο Debian).
if substring (option vendor-class-identifier, 0, 3) = "d-i" { filename "http://host/preseed.cfg"; }
Σημειώστε ότι το προηγούμενο παράδειγμα περιορίζει το όνομα του αρχείου σε πελάτες DHCP που ταυτοποιούνται οι ίδιοι σαν «d-i», ώστε να μην επηρρεάζονται συνηθισμένοι πελάτες DHCP, αλλά μόνο ο εγκαταστάτης. Μπορείτε επίσης να βάλετε το κείμενο σε stanza μόνο για ένα συγκεκριμένο μηχάνημα για να αποφύγετε την εφαρμογή των προρυθμίσεων για όλες τις εγκαταστάσεις στο δίκτυό σας.
Ένας καλός τρόπος να χρησιμοποιήσετε την μέθοδο προρύθμισης με χρήση DHCP είναι να προρυθμίσετε μόνο τις τιμές που έχουν να κάνουν με το δίκτυό σας, όπως για παράδειγμα τον καθρέφτη του Debian που θα χρησιμοποιήσετε. Με τον τρόπο αυτό οι εγκαταστάσεις στο δίκτυό σας θα έχουν προεπιλεγμένον έναν κατάλληλο καθρέφτη της αρχειοθήκης, ενώ το υπόλοιπο της εγκατάστασης μπορεί να πραγματοποιηθεί διαδραστικά. Η χρήση προρυθμίσεων μέσω DHCP για την πλήρη αυτοματοποίηση των εγκαταστάσεων του Debian θα πρέπει να γίνεται μόνο με προσοχή.
[19] Ο κάτοχος (owner) μιας μεταβλητής του debconf (ή ενός υποδείγματος, template) είναι συνήθως το όνομα του πακέτου του πακέτου που περιέχει το αντίστοιχο υπόδειγμα debconf. Για μεταβλητέςπου χρησιμοποιούνται στον ίδιο τον εγκαταστάτη ο κάτοχος είναι «d-i». Υποδείγματα και μεταβλητές μπορούν να έχουν περισσότερους από έναν κατόχους κάτι που βοηθά στον προσδιορισμό του αν αυτές μπορούν να αφαιρεθούν από την βάση δεδομένων του debconf σε περίπτωση πλήρους αφαίρεσης του πακέτου.