Netværksopstart med Linux – PXE

Denne artikel her er i nogen grad relateret til vores tidligere artikel, idet den behandler emnet opstart og installation af Linux via netværk, lokalt eller ej. Denne gang vil vi behandle installation af Linux uden optisk, diskette eller andre flytbare medier, ved blot at bruge LAN. Du forventes at have mindst to computere i dit netværk, og klienten skal have et NIC og en BIOS, der er i stand til at bruge PXE. Vi vil vejlede dig fra start til slut, men du skal have en vis grundlæggende viden om netværk og Linux-konfiguration samt bruge en editor efter eget valg. Du vil lære, hvad PXE er, hvordan du konfigurerer en DHCP-server, hvordan du konfigurerer en TFTP-server, så klienten kan få adgang til filerne, plus en masse interessante ting, som sædvanligt.

PXE

PXE (udtales “pixie”) står for Preboot eXecution Environment og blev introduceret af Intel og Systemsoft i 1999. Kort sagt er det en funktion, som de fleste moderne netværkskort og BIOS’er har, og som gør det muligt for systemet at starte op fra LAN, ligesom det ville starte op fra harddisk eller cd-rom. PXE-understøttelsen skal være til stede i NIC’ets firmware, som, hvis den er indstillet i overensstemmelse hermed i BIOS’en, vil få en IP-adresse fra PXE-serveren og hente de nødvendige boot-images. For at en IP-adresse kan være tilgængelig, skal serveren tilbyde DHCP. Når der er lejet en IP-adresse, udleverer TFTP-serveren (som kan være den samme boks som DHCP-serveren) de nødvendige filer til klienten, så den kan starte dem op efter indlæsning. Det er hele idéen, så nok snak, lad os komme i gang, skal vi?

Installation af de nødvendige værktøjer og opsætning

Før vi begynder, er det vigtigt at forstå, hvordan opsætningen af det netværk, vi testede dette på, er indrettet. Serveren er en Debian-maskine med to netværkskort, og distributionen, som vi vil installere, er også Debian, nemlig Squeeze, amd64. Du kan bruge en hvilken som helst anden distribution, men sandsynligvis vil nogle konfigurationsfilplaceringer afvige fra hinanden. Denne artikel omhandler ikke, hvordan du skal opsætte softwarekilderne til den egentlige installation. Vi vil kun føre dig til en fungerende debian-installer, og det er det hele. Du kan finde masser af tutorials derude om, hvordan du opsætter et lokalt Debian-repository eller hvordan du konfigurerer en gateway på Linux.

Så, tjeklisten : vi skal bruge en DHCP-server, en TFTP-server og initrd og kernel-image, der skal overføres til klienten. Vi har valgt en ret usædvanlig fremgangsmåde i vores opsætning, og du vil se hvorfor.

 Outside world ------> Router ------> Switch ------>(eth0) Server(eth1) ------> Client

Så routeren uddeler DHCP-adresser (lille, hjemme-router) i form af 192.168.0.x . Serveren, som også skal uddele DHCP-adresser, har sin udvendige forbindelse via eth0 og den indvendige forbindelse til klienten via eth1. Klienten har den eneste Ethernet-forbindelse direkte til PXE-serveren, men det betyder ikke, at du ikke kan konfigurere serveren som gateway for netinstall eller tilføje et andet NIC til klienten for at få adgang udefra. Der er mange muligheder, det vigtige spørgsmål i denne sag er opstart via PXE. Lad os starte med at installere TFTP-serveren.

SUBSCRIBE NEWSLETTER & RSS
Abonner på RSS og NEWSLETTER og modtag de seneste Linux-nyheder, job, karriererådgivning og vejledninger.

TFTP

TFTP står for Trivial File Transfer Protocol, og det er de facto “sproget”, når det gælder overførsel af filer til brug med PXE. På Debian installerer vi det således:

 # aptitude install tftpd-hpa

Nu skal vi konfigurere det korrekt. Før noget, vil vi i vores eksempel køre tftpd standalone, hvilket betyder at vi ikke vil bruge xinetd. Konfigurationen vil være anderledes, hvis du planlægger at bruge xinetd, og vi anbefaler det ikke. Nu skal vi blot redigere /etc/default/tftpd-hpa :

#make sure these lines are presentRUN_DAEMON=yesTFTP_OPTIONS="-l -s /var/lib/tftpboot"

Lad os sikre os, at ovenstående mappe eksisterer, og starte dæmonen:

 # mkdir -p /var/lib/tftpboot # /etc/init.d/tftpboot-hpa start

DHCP

Vi skal tilbyde klienten en adresse, før vi begynder installationen via netværket, og det gøres ved at bruge Dynamic Host Configuration Protocol. DHCP-serveren har en pulje af adresser, som den tilbyder IP’er fra, når den anmodes om det. Man installerer serverdelen med

 # aptitude install dhcp3-server

Nu skal vi indstille eth1’s netværksinformationer, som findes i /etc/network/interfaces :

allow-hotplug eth1iface eth1 inet staticaddress 192.168.1.2netmask 255.255.255.0

Start netværket igen, og vi er næsten færdige:

 # ifdown eth1 # ifup eth1

Konfigurering af PXE

Vi skal nu konfigurere den fil, som klienten vil anmode om, en fil, hvor vi vil fortælle den, hvordan den skal finde det, den har brug for. Så lad os oprette mappen pxelinux.cfg :

 # mkdir /var/lib/tftpboot/pxelinux.cfg 

og oprette en fil med navnet “default”, der skal have følgende indhold:

Du ser en henvisning til filen boot.txt , så opret den i /var/lib/tftpboot og tilføj linjen “squeeze_amd64_install” til den.

Nu skal du kopiere de nødvendige filer et sted, hvor klienten kan finde dem:

Nu kan du, i håb om at alt er i orden, bare starte din klient op og ændre dens BIOS-indstillinger for netværksstart. Før vi slutter, skylder vi dig en forklaring på denne netværksopsætning, som vi har valgt. Vi kunne nok have gjort det enklere, som f.eks. at bruge vores ISP’s forbindelse direkte, og også kunne få adgang til netværket (internettet). Ideen er, at PXE-serveren i vores scenarie ikke kan få sin IP-adresse (eth0) fra DHCP, da denne opsætning ikke vil fungere: Hvis du ikke vil bruge to-NIC-scenariet på serveren, som vi gjorde, har du brug for en eller anden form for fast IP-adresse. Så, mulighederne ville være: ISP tilsluttet direkte, indstille routeren til kun at give statiske IP’er, gøre PXE/DHCP/TFTP-serveren også til gateway eller oprette et lokalt repository. Vi valgte sidstnævnte, fordi det passer bedst til vores topologi og formål, og fordi det egentlig kun indebærer opsætning af en webserver på LAN’et. Hvis vi ville have forklaret alle dine valgmuligheder, herunder iptables til en gateway eller apache til en HTTP-server, ville denne artikel have været enorm. I stedet foretrak vi at holde os til titlen og give dig præcis det: Netværksopstart med Linux.

Husk, at dette kun er et eksempel: Ligesom med NetbootCD kan du tilføje så mange distributioner, som du ønsker, forudsat at du har den nødvendige plads på serveren.

Sluttanker

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.