4.5. Προετοιμασία Αρχείων για δικτυακή εκκίνηση με TFTP

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

Θα πρέπει να στήσετε έναν εξυπηρετητή TFTP, και για περισσότερα μηχανήματα έναν εξυπηρετητή DHCP , ή έναν εξυπηρετητή BOOTP.

Το BOOTP είναι ένα πρωτόκολλο IP που πληροφορεί έναν υπολογιστή για το ποια είναι η διεύθυνση IP του και από πού στο δίκτυο να αποκτήσει μια εικόνα εκκίνησης. Το πρωτόκολλο DHCP (Dynamic Host Configuration Protocol) είναι μια πιο ευέλικτη και συμβατή προς τα πίσω επέκταση του πρωτοκόλλου BOOTP. Κάποια συστήματα μπορούν να ρυθμιστούν μόνο μέσω του πρωτοκόλλου αυτού.

Για την αρχιτεκτονική PowerPC, αν έχετε ένα μηχάνημα NewWorld Power Macintosh, είναι μια καλή ιδέα να χρησιμοποιήσετε DHCP αντί για BOOTP. Μερικά από τα πιο πρόσφατα μηχανήματα δεν μπορούν να εκκινήσουν με χρήση του BOOTP.

Το πρωτόκολλο TFTP (Trivial File Transfer Protocol) χρησιμοποιείται για το σερβίρισμα της εικόνας εκκίνησης στον "πελάτη". Θεωρητικά, οποιοσδήποτε server, σε οποιαδήποτε πλατφόρμα, που υλοποιεί αυτά τα πρωτόκολλα, μπορεί να χρησιμοποιηθεί. Στα παραδείγματα αυτής της ενότητας, θα δώσουμε εντολές για SunOS 4.x, SunOS 5.x (δηλ. το Solaris), και GNU/Linux.

4.5.1. Ρυθμίζοντας έναν εξυπηρετητή DHCP

Ένας εξυπηρετητής DHCP που είναι ελεύθερο λογισμικό είναι ο dhcpd από το ISC. Για το Debian GNU/Linux συνίσταται το πακέτο dhcp3-server. Εδώ είναι ένα υπόδειγμα αρχείου ρυθμίσεων γι' αυτόν (δείτε το /etc/dhcp3/dhcpd.conf):

option domain-name "example.com";
option domain-name-servers ns1.example.com;
option subnet-mask 255.255.255.0;
default-lease-time 600;
max-lease-time 7200;
server-name "servername";

subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.200 192.168.1.253;
  option routers 192.168.1.1;
}

host clientname {
  filename "/tftpboot.img";
  server-name "servername";
  next-server servername;
  hardware ethernet 01:23:45:67:89:AB;
  fixed-address 192.168.1.90;
}

Στο παράδειγμα αυτό, υπάρχει ένας server με όνομα servername που κάνει όλη τη δουλειά ενός DHCP και TFTP server και μιας δικτυακής πύλης. Είναι σχεδόν βέβαιο ότι θα πρέπει να αλλάξετε τις επιλογές για το όνομα τομέα (domain name) καθώς και το όνομα του server και της διεύθυνσης της κάρτας δικτύου του πελάτη. Η επιλογήfilename θα πρέπει να είναι το όνομα του αρχείου που θα ανακτηθεί μέσω TFTP.

Μετά την έκδοση του αρχείου ρυθμίσεων του dhcpd, επανεκκινήστε τον δαίμονα με την εντολή /etc/init.d/dhcp3-server restart.

4.5.2. Ρύθμιση ενός εξυπηρετητή BOOTP

Υπάρχουν δύο διαθέσιμοι εξυπηρετητές BOOTP για το GNU/Linux. Ο πρώος είναι ο bootpd από το CMU (Carnegie Mellon University). O άλλος είναι στην πραγματικότητα ένας εξυπηρετητής DHCP, ο dhcpd του ISC. Στο Debian GNU/Linux αυτοί περιλαμβάνονται στα πακέτα bootp και dhcp3-server αντίστοιχα.

Για να χρησιμοποιήσετε τον δαίμονα bootpd του CMU, πρέπει πρώτα να αποσχολιάσετε (ή να προσθέσετε) την σχετική γραμμή στο αρχείο /etc/inetd.conf. Στο Debian GNU/Linux, μπορείτε να το κάνετε αυτό τρέχοντας την εντολή update-inetd --enable bootps, και μετά /etc/init.d/inetd reload. Στην περίπτωση που ο εξυπηρετητής σας BOOTP δεν τρέχει Debian, η σχετική γραμμή πρέπει να μοιάζει κάπως έτσι:

bootps  dgram  udp  wait  root  /usr/sbin/bootpd  bootpd -i -t 120

Τώρα, θα πρέπει να δημιουργήσετε ένα αρχείο /etc/bootptab. Αυτό έχει το ίδιο είδος οικείας και μυστήριας μορφής των παλιών καλών αρχείων printcap, termcap, και disktab στο BSD. Δείτε τη σελίδα χρήσης του bootptab για περισσότερες πληροφορίες. Για τον δαίμονα bootpd του CMU, θα πρέπει να ξέρετε την διεύθυνση MAC του "πελάτη". Εδώ είναι ένα υπόδειγμα αρχείου /etc/bootptab:

client:\
  hd=/tftpboot:\
  bf=tftpboot.img:\
  ip=192.168.1.90:\
  sm=255.255.255.0:\
  sa=192.168.1.1:\
  ha=0123456789AB:

Θα πρέπει να αλλάξετε τουλάχιστον την επιλογή “ha”, που προσδιορίζει την διεύθυνση υλικού του πελάτη. Η επιλογή “bf” προσδιορίζει το αρχείο που θα έπρεπε ένας πελάτης να ανακτήσει μέσω TFTP. Δείτε το σύνδεσμο Τμήμα 4.5.4, “Μεταφορά των ειδώλων TFTP στη θέση τους” για περισσότερες λεπτομέρειες.

Αντίθετα, η ρύθμιση του BOOTP με τον εξυπηρετητή dhcpd του ISC είναι πραγματικά εύκολη, γιατί χειρίζεται τους πελάτες BOOTP σαν μια σχετικά ειδική περίπτωση πελατών DHCP. Μερικές αρχιτεκτονικές απαιτούν μια πολύπλοκη ρύθμιση για την εκκίνηση πελατών μέσω BOOTP. Αν η δική σας είναι μια απ' αυτές, διαβάστε την ενότητα Τμήμα 4.5.1, “Ρυθμίζοντας έναν εξυπηρετητή DHCP”. Διαφορετικά, πιθανόν να μπορέσετε να τα καταφέρετε απλά προσθέτοντας το προστακτικό allow bootp στο κομμάτι των ρυθμίσεων για το υποδίκτυο που περιέχει τον πελάτη στο αρχείο /etc/dhcp3/dhcpd.conf και επενεκκινήστε τον δαίμονα dhcpd με την εντολή /etc/init.d/dhcp3-server restart.

4.5.3. Ενεργοποίηση του εξυπηρετητή TFTP

Για να προετοιμάσετε τον εξυπηρετητή TFTP θα πρέπει να βεβαιωθείτε πρώτα ότι είναι ενεργοποιημένος ο tftpd

Στην περίπτωση του tftpd-hpa υπάρχουν δύο τρόποι με τους οποίους μπορείτε να τρέξετε την υπηρεσία. Μπορεί να εκκινηθεί κατά απαίτηση από τον δαίμονα inetd του συστήματος, ή μπορεί να ρυθμιστεί να τρέχει σαν ανεξάρτητος δαίμονας. Το ποια από τις δύο μεθόδους θα χρησιμοποιηθεί επιλέγεται κατά την εγκατάσταση του πακέτου και μπορεί να αλλάξει με την επαναρύθμιση του πακέτου.

Σημείωση

Κατά παράδοση οι εξυπηρετητές TFTP χρησιμοποιούσαν τον κατάλογο /tftpboot σαν κατάλογο από τον οποίον διαθέτουν τις εικόνες που παρέχουν. Όμως τα πακέτα του Debian GNU/Linux πιθανόν να χρησιμοποιούν άλλους καταλόγους ώστε να συμμορφώνονται με το πρότυπο Filesystem Hierarchy Standard. Για παράδειγμα, το πακέτο tftpd-hpa χρησιμοποιεί εξ ορισμού τον κατάλογο /srv/tftp. Πιθανόν να πρέπει να προσαρμόσετε τα παραδείγματα ρυθμίσεων στην παρούσα ενότητα ανάλογα.

Όλες οι διαθέσιμες στο Debian εναλλακτικές υλοποιήσεις του in.tftpd θα πρέπει εξ' ορισμού να καταγράφουν τα αιτήματα στον εξυπηρετητή TFTP στα αρχεία καταγραφής του συστήματος. Κάποιες από αυτές διαθέτουν και ένα όρισμα -v για ακόμα πιο λεπτομερειακή καταγραφή. Συνιστάται να ελέγχετε αυτά τα μηνύματα καταγραφής στην περίπτωση προβλημάτων εκκίνησης καθώς αποτελούν ένα καλό σημείο αφετηρίας για την διάγνωση της αιτίας τέτοιων σφαλμάτων.

4.5.4. Μεταφορά των ειδώλων TFTP στη θέση τους

Στη συνέχεια, τοποθετήστε την εικόνα εκκίνησης του TFTP, όπως βρίσκεται στο Τμήμα 4.2.1, “Πού να βρείτε Είδωλα της Εγκατάστασης”, στον κατάλογο των εικόνων εκκίνησης του tftpd. Πιθανόν να πρέπει να δημιουργήσετε έναν σύνδεσμο από το αρχείο αυτό στο αρχείο που ο εξυπηρετητής tftpd θα χρησιμοποιήσει για την εκκίνηση ενός συγκεκριμένου πελάτη. Δυστυχώς, το όνομα του αρχείου καθορίζεται από τον πελάτη του TFTP, και δεν υπάρχουν γι' αυτό σταθερά πρότυπα.

Σε μηχανήματα NewWorld Power Macintosh, θα πρέπει να ρυθμίσετε τον φορτωτή εκκίνησης yaboot σαν εικόνα εκκίνησης του TFTP. Το Yaboot θα ανακτήσει τότε τα εικόνες του πυρήνα και του δίσκου RAM (RAMdisk) μέσω του ίδιου του TFTP. Θα πρέπει να κατεβάσετε τα παρακάτω αρχεία από τον κατάλογο netboot/:

  • vmlinux

  • initrd.gz

  • yaboot

  • yaboot.conf

  • boot.msg