PXE Server

Fra SemarkIT
Skift til: Navigation, Søgning

Jeg tager her udgangspunkt i at du har en Debian Lenny (også testet på Squeeze) installeret, og adgang til internettet. Samt at du er logget på som root eller har sudo rettigheder.

Indholdsfortegnelse

Hvad er PXE

The Preboot eXecution Environment (PXE, also known as Pre-Execution Environment; sometimes pronounced "pixie") 
is an environment to boot computers using a network interface independently of data storage devices (like hard disks) 
or installed operating systems.

Source: Preboot Execution Environment (Wikipedia)[1]

Hvad skal installeres

Først skal vi have installeret de pakker som er nødvendige for at kunne køre en PXE server

apt-get install tftpd-hpa lftp

Tjek om TFTP virker

Først skal vi sætte tftpd til at starte som en daemon

nano /etc/default/tftpd-hpa

Skift følgende linje

RUN_DAEMON="no"

til

RUN_DAEMON="yes"
OPTIONS="-l -s /srv/tftp"
/etc/init.d/tftpd-hpa restart

Tjek nu at TFTP er startet ved at køre kommandoen

netstat -uap | grep tftp	

den skulle gerne kommer med noget ligende dette

 udp        0      0 *:tftp                  *:*                                2975/inetd

Konfiguration

Hvis du allered har en eksisterende, separat DHCP-server skal følgende tilføjes i dens dhcpd.conf

eksempel fra min server:

subnet 192.168.0.0 netmask 255.255.254.0 {
  [...]
  # PXE
  filename "pxelinux.0";
  next-server 192.168.1.6;
  [...]
}

Hvor "192.168.1.6" er ip-adressen til den server som indeholder din PXE

Hvis du ikke har en DHCP-server skal denne laves ved at installere følgende yderligere pakke

apt-get install dhcp3-server -y

Denne skal nu sættes op på følgende måde:

nano /etc/dhcp3/dhcpd.conf

Fiktivt eksempel

option domain-name-servers 145.253.2.75, 193.174.32.18;
default-lease-time 86400;
max-lease-time 604800;

authoritative;

subnet 192.168.0.0 netmask 255.255.255.0 {
       range 192.168.0.10 192.168.0.49;
       filename "pxelinux.0";
       option subnet-mask 255.255.255.0;
       option broadcast-address 192.168.0.255;
       option routers 192.168.0.1;
}

Efter du har gemt din nye opsætning genstart din dhcp-server

Opdater images på din PXE server

de følgende eksempler tager udgangspunkt i Debian og Ubuntu netinstall images

Konfiguration

Først skal vi have hentet det image som skal kunne installeres fra PXE-server.

Debian 32/64-bit

cd /tmp
wget -c http://ftp.de.debian.org/debian/dists/squeeze/main/installer-amd64/current/images/netboot/netboot.tar.gz
tar -zxf netboot.tar.gz
mv debian-installer squeeze-amd64
mkdir /srv/tftp/debian/
mv squeeze-amd64/ /srv/tftp/debian/
wget -c http://ftp.de.debian.org/debian/dists/squeeze/main/installer-i386/current/images/netboot/netboot.tar.gz
tar -zxf netboot.tar.gz
mv debian-installer squeeze-i386
mv squeeze-i386/ /srv/tftp/debian/

Ubuntu 32/64-bit

cd /tmp
wget -c http://archive.ubuntu.com/ubuntu/dists/maverick/main/installer-amd64/current/images/netboot/netboot.tar.gz
tar -zxf netboot.tar.gz
mv ubuntu-installer maverick-amd64
mkdir /srv/tftp/ubuntu/
mv maverick-amd64/ /srv/tftp/ubuntu/
wget -c http://archive.ubuntu.com/ubuntu/dists/maverick/main/installer-i386/current/images/netboot/netboot.tar.gz
tar -zxf netboot.tar.gz
mv ubuntu-installer maverick-i386
mv maverick-i386/ /srv/tftp/ubuntu/

Opsætning

Først skal nogle flere af de filer som netboot.tar.gz indeholder flyttes også.

mv pxelinux.* /srv/tftp/

Placeres os nu i tftp-boot området

cd /srv/tftp/

Vi er nu nået til der hvor vi skal "tilføje" images til vores server så den kan finde dem Åben filen pxelinux.cfg/default med din favorit editor

vi pxelinux.cfg/default

Eksempel fra min server

# This is where we start the menu tree...
DEFAULT         vesamenu.c32
prompt          0

MENU TITLE      PXE Menu
MENU INCLUDE    menu/graphics.conf
MENU AUTOBOOT   Starting Local System in # seconds
 
# Boot Local Disk
###################
label harddisk
       MENU DEFAULT
       MENU LABEL ^Boot from local disk
       localboot 0
       timeout 200
       TOTALTIMEOUT 90000
       MENU SEPARATOR

# MENU's
###################
LABEL Linux systems
       MENU LABEL ^Linux
       KERNEL vesamenu.c32
       APPEND menu/graphics.conf menu/Linux.menu

LABEL Windows systems
       MENU PASSWD some-password
       MENU LABEL ^Windows
       KERNEL vesamenu.c32
       APPEND menu/graphics.conf menu/Windows.menu

LABEL Support
       MENU LABEL ^Support
       KERNEL vesamenu.c32
       APPEND menu/graphics.conf menu/Support.menu

Vi skal nu lave alle menu'erne som folk bliver præsenteret for når de booter på nettet

mkdir /srv/tftp/menu
nano menu/graphics.conf
MENU COLOR BORDER       *               #20ffffff #00000000     *
MENU COLOR SCROLLBAR    *               #20ffffff #00000000     *
MENU COLOR TITLE        *               #ffffffff #00000000     *
MENU COLOR TABMSG       *               #ffffffff #00000000     *
MENU COLOR SEL          *               #40000000 #20ffffff     *
MENU COLOR HOTSEL       1;7;37;40       #ffffffff #76a1d0ff     *
MENU COLOR HELP         37;40           #ffdddd00 #00000000     none

MENU BACKGROUND         splash.png

MENU MASTER PASSWD      some-other-password
MENU TIMEOUTROW         0
MENU WIDTH              80
MENU MARGIN             5
MENU ROWS               17
MENU PASSWORDMARGIN     23

MENU VSHIFT             1
NOESCAPE                1
ALLOWOPTIONS            0
MENU PASSPROMPT         Enter Password:
MENU TABMSG             Press ENTER to boot or wait to start local drives
nano menu/Linux.menu
MENU TITLE Linux

LABEL Main Menu
       MENU LABEL ^Return to Main Menu
       KERNEL vesamenu.c32
       APPEND pxelinux.cfg/default
       MENU SEPARATOR

## =DEBIAN= ##

# LENNY i386
###################
LABEL lenny32
       MENU LABEL ^Install Debian Lenny 32-bit
       kernel debian/lenny_x86/i386/linux
       append vga=normal initrd=debian/lenny_x86/i386/initrd.gz --

# LENNY amd64
###################
LABEL lenny64
       MENU LABEL ^Install Debian Lenny 64-bit
       kernel debian/lenny_x86_64/amd64/linux
       append vga=normal initrd=debian/lenny_x86_64/amd64/initrd.gz --

# SQUEEZE i386
###################
LABEL squeeze32
       MENU LABEL ^Install Debian Squeeze 32-bit
       kernel debian/squeeze-i386/i386/linux
       append vga=normal initrd=debian/squeeze-i386/i386/initrd.gz --

# SQUEEZE amd64
###################
LABEL squeeze64
       MENU LABEL ^Install Debian Squeeze 64-bit
       kernel debian/squeeze-amd64/amd64/linux
       append vga=normal initrd=debian/squeeze-amd64/amd64/initrd.gz --

## =UBUNTU= ##

# lucid i386
###################
LABEL lucid32
       MENU LABEL ^Install Ubuntu Lucid (10.04 LTS) 32-bit
       kernel ubuntu/lucid_x86/i386/linux
       append vga=normal initrd=ubuntu/lucid_x86/i386/initrd.gz --

# lucid amd64
###################
LABEL lucid64
       MENU LABEL ^Install Ubuntu Lucid (10.04 LTS) 64-bit
       kernel ubuntu/lucid_x86_64/amd64/linux
       append vga=normal initrd=ubuntu/lucid_x86_64/amd64/initrd.gz --

# maverick i386
###################
LABEL maverick32
       MENU LABEL ^Install Ubuntu Maverick (10.10) 32-bit
       kernel ubuntu/maverick-i386/i386/linux
       append vga=normal initrd=ubuntu/maverick-i386/i386/initrd.gz --

# maverick amd64
###################
LABEL maverick64
       MENU LABEL ^Install Ubuntu Maverick (10.10) 64-bit
       kernel ubuntu/maverick-amd64/amd64/linux
       append vga=normal initrd=ubuntu/maverick-amd64/amd64/initrd.gz --
nano menu/Support.menu
MENU TITLE Support Tools

LABEL Main Menu
       MENU LABEL ^Return to Main Menu
       KERNEL vesamenu.c32
       APPEND pxelinux.cfg/default
       MENU SEPARATOR

# GParted Live
####################
LABEL GParted
       MENU LABLE Live GParted
       kernel GParted/live/vmlinuz1
       append initrd=GParted/live/initrd1.img boot=live union=aufs noswap noprompt vga=788 fetch=http://<your webserver ip>/gparted/filesystem.squashfs

# MEMTEST86+
####################
label memtest86
       MENU LABEL memtest86+
       KERNEL /memtest/memtest86+

Eksempel fra min server

Boot-Screen.jpg

Du er nu klar til at installere via. nettet, men PXE kan også bruges til meget meget mere, blandt andet boot af tynde-klienter eller Windows auto-install images.! God fornøjelse.!

Personlige værktøjer
Navnerum

Varianter
Handlinger
Navigation
Værktøjer