Nätverksuppstart med Linux – PXE

Den här artikeln är något besläktad med vår tidigare, eftersom den behandlar ämnet uppstart och installation av Linux via nätverket, lokalt eller inte. Den här gången kommer vi att behandla installation av Linux utan optiska, disketter eller andra flyttbara medier, genom att bara använda LAN. Du förväntas ha minst två datorer i ditt nätverk, och klienten behöver en NIC och ett BIOS som kan använda PXE. Vi kommer att vägleda dig från början till slut, men det krävs vissa grundläggande kunskaper om nätverk och Linuxkonfiguration samt användning av ett valfritt redigeringsprogram. Du kommer att lära dig vad PXE är, hur du konfigurerar en DHCP-server, hur du konfigurerar en TFTP-server så att klienten kan få tillgång till filerna, plus massor av intressanta saker, som vanligt.

PXE

PXE (uttalas ”pixie”) står för Preboot eXecution Environment och introducerades av Intel och Systemsoft 1999. I korthet är det en funktion som de flesta moderna nätverkskort och BIOS har och som gör det möjligt för systemet att starta upp från LAN, precis som det skulle starta upp från hårddisk eller cd-rom. PXE-stödet måste finnas i nätverkskortets fasta programvara som, om den är inställd i enlighet med detta i BIOS, hämtar en IP-adress från PXE-servern och laddar ner de nödvändiga startbilderna. För att en IP-adress ska vara tillgänglig måste servern erbjuda DHCP. När en IP-adress har hyrts ut ger TFTP-servern (som kan vara samma låda som DHCP-servern) ut de nödvändiga filerna till klienten, så att den kan starta upp dem efter laddning. Det är hela idén, så nog med prat, låt oss börja jobba, eller hur?

Installation av de nödvändiga verktygen och inställning

Innan vi börjar är det viktigt att förstå hur upplägget av det nätverk som vi testade detta på är utformat. Servern är en Debianmaskin med två nätverkskort, och distributionen vi ska installera är också Debian, nämligen Squeeze, amd64. Du kan använda vilken annan distribution som helst, men förmodligen kommer vissa platser för konfigurationsfiler att skilja sig åt. Den här artikeln handlar inte om hur du ställer in programvarukällorna för själva installationen. Vi kommer bara att ta dig till en fungerande debian-installer och det är allt. Du hittar många handledningar där ute om hur du sätter upp ett lokalt Debianförråd eller hur du konfigurerar en gateway på Linux.

Så, checklistan : vi kommer att behöva en DHCP-server, en TFTP-server och initrd och kärnavbildningen som ska överföras till klienten. Vi valde ett ganska ovanligt tillvägagångssätt i vår installation, och du kommer att se varför.

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

Så, routern ger ut DHCP-adresser (liten, hemrouter) i form av 192.168.0.x . Servern, som också kommer att dela ut DHCP-adresser, har sin yttre anslutning via eth0 och den inre anslutningen för klienten via eth1. Klienten har den enda Ethernet-anslutningen direkt till PXE-servern, men det betyder inte att du inte kan konfigurera servern som en gateway för netinstall eller lägga till ytterligare en NIC till klienten för extern åtkomst. Det finns många möjligheter, det viktiga är att starta upp via PXE. Vi börjar med att installera TFTP-servern.

SUBSCRIBE NEWSLETTER & RSS
Prenumerera på RSS och NEWSLETTER och få senaste Linuxnyheterna, jobb, karriärråd och handledning.

TFTP

TFTP står för Trivial File Transfer Protocol och är de facto ”språket” när det gäller att överföra filer som ska användas med PXE. På Debian installerar vi det på följande sätt:

 # aptitude install tftpd-hpa

Nu måste vi konfigurera det ordentligt. Innan något annat kommer vi i vårt exempel att köra tftpd standalone, vilket innebär att vi inte kommer att använda xinetd. Konfigurationen kommer att vara annorlunda om du planerar att använda xinetd, och vi rekommenderar inte det. Nu behöver vi bara redigera /etc/default/tftpd-hpa :

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

Vi ser till att ovanstående katalog finns och startar daemon:

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

DHCP

Vi måste erbjuda klienten en adress innan vi påbörjar installationen via nätverket, och detta görs genom att använda Dynamic Host Configuration Protocol. DHCP-servern har en pool av adresser från vilken den erbjuder IP-adresser när den begär det. Man installerar serverdelen med

 # aptitude install dhcp3-server

Nu måste vi ställa in eth1:s nätverksinformation, som finns i /etc/network/interfaces :

allow-hotplug eth1iface eth1 inet staticaddress 192.168.1.2netmask 255.255.255.0

Starta om nätverket och vi är nästan klara:

 # ifdown eth1 # ifup eth1

Konfigurera PXE

Vi måste nu konfigurera filen som klienten kommer att begära, en fil där vi kommer att tala om för den hur den ska hitta det den behöver. Så låt oss skapa katalogen pxelinux.cfg :

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

och skapa en fil med namnet ”default” som kommer att ha följande innehåll:

Du ser en hänvisning till filen boot.txt , så skapa den i /var/lib/tftpboot och lägg till raden ”squeeze_amd64_install” i den.

Nu ska du kopiera de nödvändiga filerna någonstans så att de kan hittas av klienten:

Nu kan du, i hopp om att allt är okej, starta upp din klient och ändra dess BIOS-inställningar för nätverksstart. Innan vi avslutar är vi skyldiga dig en förklaring till denna nätverksuppsättning som vi valde. Vi kunde förmodligen ha gjort det enklare, som att använda vår ISP:s anslutning direkt och ha tillgång till nätverket (Internet) också. Tanken är att PXE-servern i vårt scenario inte kan få sin IP-adress (eth0) från DHCP eftersom detta upplägg inte fungerar: om du inte ska använda scenariot med två nätverkskort på servern, som vi gjorde, behöver du någon form av fast IP-adress. Möjligheterna är alltså följande: ISP ansluten direkt, ställa in routern så att den endast ger statiska IP-adresser, göra PXE/DHCP/TFTP-servern till en gateway eller skapa ett lokalt arkiv. Vi valde det sistnämnda eftersom det passar vår topologi och våra syften bäst, och det innebär egentligen bara att sätta upp en webbserver på LAN. Om vi hade förklarat alla dina valmöjligheter, inklusive iptables för en gateway eller apache för en HTTP-server, skulle den här artikeln ha varit enorm. Istället föredrog vi att hålla oss till titeln och ge dig exakt detta: Kom ihåg att detta bara är ett exempel: precis som med NetbootCD kan du lägga till så många distributioner du vill, förutsatt att du har det nödvändiga utrymmet på servern.

Sluttliga tankar

Lämna ett svar

Din e-postadress kommer inte publiceras.