Σχέδιο Β': εγκατάσταση Debian μέσα από PXE booting και tftp.
Η λογική της διαδικασίας είναι το καινούριο μας μηχάνημα θα μιλήσει με τον tftp server, ο οποίος θα του δώσει μέσω δικτύου τα αρχεία που χρειάζεται για να κάνει boot. Ούτε flash disks, ούτε CDs, ούτε τίποτα.
Οπότε, βήμα πρώτο, πας στο BIOS του καινούριου μηχανήματος και ενεργοποιείς το PXE booting. ΟΚ, τελείωσαν οι ρυθμίσεις εδώ.
Χρειάζεσαι άλλο ένα μηχάνημα, το οποίο θα τρέχει τον tftp server. Το δικό μου ήταν το Debian netbook μου. Εγκατάσταση dhcp server και tftp server:
aptitude install tftpd-hda dhcpd3-server
Το configuration file του tftpd κατέληξε κάπως έτσι:
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-s"
TFTP_DIRECTORY="/var/lib/tftpboot"
Δημιουργία του directory που θα έχουμε τα αρχεία που θα μεταφέρονται στους tftp clients και τα σχετικά configs.
mkdir -p /var/lib/tftpboot/pxelinux.cfg
mkdir -p /var/lib/tftpboot/debian/stable/i386
Ώρα για configuration του tftp. Στο /var/lib/tftpboot/pxelinux.cfg βάλε τα εξής:
DISPLAY boot.txt
DEFAULT stable_i386_install
LABEL stable_i386_install
kernel debian/stable/i386/linux
append vga=normal initrd=debian/stable/i386/initrd.gz --
LABEL stable_i386_linux
kernel debian/stable/i386/linux
append vga=normal initrd=debian/stable/i386/initrd.gz --
PROMPT 1
TIMEOUT 0
Στο /var/lib/tftboot/boot.txt βάζουμε την μορφή του μενού που θα εμφανίζεται στον client:
- Boot Menu -
=============
stable_i386_install
stable_i386_linux
Ώρα να κατεβάσουμε τα απαιτούμενα αρχεία για boot.
cd /var/lib/tftpboot
wget http://ftp.uk.debian.org/debian/dists/stable/main/installer-i386/current/images/netboot/debian-installer/i386/pxelinux.0
cd /var/lib/tftpboot/debian/stable/i386
wget http://ftp.uk.debian.org/debian/dists/stable/main/installer-i386/current/images/netboot/debian-installer/i386/linux
wget http://ftp.uk.debian.org/debian/dists/stable/main/installer-i386/current/images/netboot/debian-installer/i386/initrd.gz
Ο tftp server είναι (θεωρητικά) ρυθμισμένος. Υπάρχει όμως ακόμα το θέμα του πως θα δείξεις σε ποιο μηχάνημα έχεις τον tftp server. Την δουλειά αυτή την κάνει ένας dhcp server και σχεδόν 100% δεν μιλάμε για αυτόν στον router σου.
Στο /etc/dhcp/dhcpd.conf βάζεις τα εξής:
option domain-name-servers 8.8.8.8;
default-lease-time 86400;
max-lease-time 604800;
authoritative;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.70 192.168.1.100;
filename "pxelinux.0";
next-server 192.168.1.50;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
}
Όπου βλέπεις 192.168.1.50, είναι η IP του tftp server, 192.168.1.1 η IP του router σου. Ρυθμίζεις ανάλογα ;) Η όλη ιστορία με την εγκατάσταση του dhcp server είναι οι δύο γραμμές:
filename "pxelinux.0";
next-server 192.168.1.50;
που δίνουν τις οδηγίες για PXE booting και που σχεδόν σίγουρα δεν μπορείς να βάλεις στον σπιτικό dsl router σου.
Τώρα βέβαια, έχεις δύο dhcp servers στο δίκτυο σου: αυτόν που μόλις σέταρες και αυτόν που τρέχεις στον router σου. Ο δεύτερος πρέπει να κλείσει (ο dhcp server του router, όχι ο router).
Άντε, τελειώνουμε. Ξεκίνα τους δύο servers που μόλις ρύθμισες:
/etc/init.d/tftpd-hda start
dhcpd
Κάνε boot το καινούριο μηχανάκι. Αν όλα πήγαν καλά...
- το μηχάνημα θα κάνει PXE boot,
- θα μιλήσει με τον DHCP server που εγκαταστήσαμε
- θα πάρει network configuration αλλά και την διεύθυνση του TFTP server
- θα τραβήξει το installation image από τον TFTP server
- θα αρχίσει το installation.
Στο τελευταίο βήμα, χρειάζεται σύνδεση internet, και αυτός είναι ο λόγος που κλείνουμε μόνο τον DHCP server του router και όχι όλο τον router.
References:
- κλεμμένο, αλλά με διορθώσεις, από το debian-administration.org
- PXE error: only absolute names allowed
2 σχόλια:
Καλησπέρα,
Αφού είχες DHCPD στο δίκτυο γιατί δεν έκανες tftp boot από εκεί;
Ο dhcpd έτρεχε σε ρουτεράκι της κακιάς ώρας, δεν μπορείς να σετάρεις τέτοια πράγματα.
Δημοσίευση σχολίου