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

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

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

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

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

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

Ένας εξυπηρετητής DHCP που είναι ελεύθερο λογισμικό είναι ο dhcpd από το ISC. Για το Debian GNU/Linux συνίσταται το πακέτο isc-dhcp-server. Εδώ είναι ένα υπόδειγμα αρχείου ρυθμίσεων γι' αυτόν (δείτε το /etc/dhcp/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/isc-dhcp-server restart.

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

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

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

Σημείωση

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

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

Αν προτίθεστε να εγκαταστήσετε το Debian σε ένα μηχάνημα SGI και ο εξυπηρετητής σας TFTP είναι ένα μηχάνημα που τρέχει GNU/Linux με πυρήνα 2.4, θα πρέπει να ρυθμίσετε τα ακόλουθα στον server σας:

# echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc

για να απενεργοποιήσετε το Path MTU discovery, διαφορετικά η μνήμη PROM του μηχανήματος SGI δεν μπορεί να κατεβάσει τον πυρήνα. Επιπλέον, σιγουρευτείτε ότι τα πακέτα TFTP στέλνονται από μια πόρτα στην πηγή όχι μεγαλύτερη από την 32767, διαφορετικά το κατέβασμα θα "κολλήσει" μετά την λήψη του πρώτου πακέτου. Και πάλι, είναι ο πυρήνας Linux 2.4.X που μεταφέρει αυτό το σφάλμα στην PROM και μπορείτε να το αποφύγετε βάζοντας

# echo "2048 32767" 
> /proc/sys/net/ipv4/ip_local_port_range

ώστε να προσαρμόσετε το εύρος των θυρών που χρησιμοποιεί ο TFTP server στο Linux.

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

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

4.3.3.1. Εκκίνηση TFTP για SGI

Σε συστήματα SGI μπορείτε να στηριχθείτε στον δαίμονα bootpd για την προμήθεια του ονόματος του αρχείου TFTP, το οποίο και δίνεται είτε σαν το δεδομένο bf= στο αρχείο /etc/bootptab ή σαν η επιλογή filename= στο αρχείο /etc/dhcpd.conf.