PXE based OS deployment

Preface

This is a step-by-step guide on implementing PXE based OS deployment.

PXE deployment host setup guide

OS install

All that’s needed is a basic OS. No fancy packages like X-windows and the like, just the basics will do. Additional packages which are required are:

  • ntpd
  • dhcpd
  • tftpd
  • samba
  • nfs

Configuration of the PXE deployment host

Tftpd

Create the file /etc/tftpd.rules:

rg \\ / # Convert backslashes to slashes

If you’re lazy (like me), do the windows renaming stuff directly in this file, instead of manually renaming files:

rg \\ / # Convert double backslashes to slash
rg // / # Convert double slashes to single slash
### Windows XP Installation specific mappings
r kdcom.dl_ KDCOM.DL_
r kdcom.dll KDCOM.DLL
r bootvid.dl_  BOOTVID.dl_
r bootvid.dll BOOTVID.dll
r setupreg.hiv SETUPREG.HIV
r spddlang.sy_ SPDDLANG.SY_
r spddlang.sys SPDDLANG.SYS
r wmilib.sy_ WMILIB.SY_
r wmilib.sys WMILIB.SYS
r 1394bus.sy_ 1394BUS.SY_
r 1394bus.sys 1394BUS.SYS
r pciidex.sy_ PCIIDEX.SY_
r pciidex.sys PCIIDEX.SYS
r usbport.sy_ USBPORT.SY_
r usbport.sys USBPORT.SYS
r usbd.sy_ USBD.SY_
r usbd.sys USBD.SYS
r hidclass.sy_ HIDCLASS.SY_
r hidclass.sys HIDCLASS.SYS
r hidparse.sy_ HIDPARSE.SY_
r hidparse.sys HIDPARSE.SYS
r scsiport.sy_ SCSIPORT.SY_
r scsiport.sys SCSIPORT.SYS
r classpnp.sy_ CLASSPNP.SY_
r classpnp.sys CLASSPNP.SYS
r tdi.sy_ TDI.SY_
r tdi.sys TDI.SYS
r halaacpi.dl_ HALAACPI.DL_ 
r halaacpi.dll HALAACPI.DLL
r pciide.sy_ PCIIDE.SY_
r pciide.sys PCIIDE.SYS
r rtl8139.sy_ RTL8139.SY_ 
r rtl8139.sys RTL8139.SYS 
r intelide.sy_ INTELIDE.SY_
r intelide.sys INTELIDE.SYS
r viaide.sy_ VIAIDE.SY_
r viaide.sys VIAIDE.SYS
r cmdide.sy_ CMDIDE.SY_
r cmdide.sys CMDIDE.SYS
## Directories
r iaStor iastor
r Fasttx2k fasttx2k
r S150sx8 s150sx8
r QL2300 ql2300
r Si3112 si3112
r SiSRaid sisraid

Samba

Windows deployment requires a Samba share, so modify /etc/samba/smb.conf

Add:

null passwords = true

The hosts allow parameter must contain the network segments that are used for OS deployment:

Hosts allow = 192.168.1. 127.

Finally, at the end of the file, we need to create and configure the deployment share:

[REMINST]
     path = /tftpboot
     browsable = true
     read only = No
     guest ok = Yes

DHCP

DHCP is used for dynamic (IP) configuration.

A sample configuration /etc/dhcpd.conf:

# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.sample  
#
ddns-update-style none;

default-lease-time 600;
max-lease-time 7200;

authorative;
allow booting;
allow bootp;

subnet 192.168.1.0 netmask 255.255.255.0
{
  range dynamic-bootp 192.168.1.100 192.168.1.199;
  filename "pxelinux.0";
  next-server 192.168.1.10;
  option root-path "192.168.1.10:/export/FreeBSD/bootdirs/6.2-standard";
# This should point to a directory that contains a FreeBSD boot dir
# This option is not used by Linux or WIndows
}

NFS

NFS wordt gebruikt door Linux en FreeBSD om hun distributie op te halen.

Maak de directory /export aan die vervolgens via NFS gedeeld wordt.

mkdir /export

Voeg aan /etc/exports de regel toe:

/export *(ro,no_root_squash)

(her)start nfs:

/etc/init.d/nfs restart

Om dhcpd vortaan bij het booten voortaan standard op te starten:

chkconfig nfs on

Pxelinux

pxelinux wordt gebruikt om het initiele PXE proces af te handelen.

pxelinux.0 is het bestand dat door DHCP wordt doorgegeven. Kopieer het naar de /tftpboot directory:

cp /usr/lib/syslinux/pxelinux.0 /tftpboot/

Door pxelinux.0 gaat de client op zoek naar bestanden in de pxelinux.cfg directory en zal als het op basis van IP adres geen geschikt bestand vind als laatste “default’ proberen.

mkdir /tftpboot/pxelinux.cfg

Maak het bestand /tftpboot/pxelinux.cfg/default aan met de inhoud:

TIMEOUT 0
PROMPT 1

Windows deployment

Copy the contents of the Windows Installation medium to /tftpboot/ris (only i386 is required).

Copy the python files fixup-repository.sh and winnt-ris.sif from the archive http://oss.netfarm.it/guides/ris-linux-0.3.tar.gz to /tftboot

Modify fixup-repository.sh to point to the correct installation directory

REP=/tftpboot/ris

Run the script

./fixup-repository.sh

The Windows installation process requires several system and driver files in the base directory:

cd /tftpboot/ris/i386
cp –u inf/* .
cp –u system32/* .
cp –u system32/drivers/* .

Decompress boot files from the windows installation medium and copy them to the /tftpboot directory:

expand startrom.n1_ startrom.o
copy startrom.o /tftpboot/startrom.0
expand NTOSKRNL.EX_ ntoskrnl.exe
copy ntoskrnl.exe /tftpboot/ris/i386/ntoskrnl.exe

Several other files are needed during the pre-install phase:

cd /tftpboot
cp ris/i386/setupldr.bin ./NTLDR
cp ris/i386/ntdetect.com .
./fixloader.py NTLDR

Rename the winnt-ris.sif file located in /tftpboot to winnt.sif:

cd /tftpboot
mv winnt-ris.sif winnt.sif

And modify it:

[data]
floppyless = "1"
msdosinitiated = "1"
; Needed for second stage
OriSrc = "\\192.168.1.1\REMINST\ris\i386"
OriTyp = "4"
LocalSourceOnCD = 1
DisableAdminAccountOnDomainJoin = 1

[SetupData]
OsLoadOptions = "/fastdetect"
; Needed for first stage
SetupSourceDevice = "\Device\LanmanRedirector\192.168.1.10\REMINST\ris"

[UserData]
ComputerName = *
ProductID=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX

In order to provide the drivers to windows setup by the python script binlsrv.py:

cd /tftpboot
./infparser.py /tftpboot/ris/i386/inf

Fixes

In order to completely fix the repository (which was not completely done by the fixuprepository.sh):

cd /tftpboot/ris
### tftp process
mv i386/BIOSINFO.INF i386/biosinfo.inf ;# Source = tftp
mv i386/DRVMAIN.SDB i386/drvmain.sdb ;# Source = tftp
mv i386/HALAACPI.DL_ i386/halaacpi.dl_ ;# Source = tftp
mv i386/NTOSKRNL.EX_ i386/ntoskrnl.ex_ ;# Source = tftp
 
mv i386/BOOTVID.DL_ i386/BOOTVID.dl_
mv i386/VGA850.FO_ i386/vga850.fon
mv i386/C_1252.NL_ i386/c_1252.nl_
mv i386/C_850.NL_ i386/c_850.nl_
mv i386/SETUPDD.SY_ i386/setupdd.sy_
mv i386/PCI.SY_ i386/pci.sy_
mv i386/ACPI.SY_ i386/acpi.sy_
mv i386/ISAPNP.SY_ i386/isapnp.sy_
mv i386/ACPIEC.SY_ i386/acpiec.sy_
mv i386/OHCI1394.SY_ i386/ohci1394.sy_
mv PCMCIA.SY_ pcmcia.sy_
 
 
mv i386/videoprt.sys i386/VIDEOPRT.SYS ;# Source = tftp
mv i386/TXTSETUP.SIF i386/txtsetup.sif ;# Source = tftp
mv i386/VGAOEM.FO_ i386/vgaoem.fo_ ;# Source = tftp
mv i386/L_INTL.NL_ i386/l_intl.nl_ ;# Source = tftp
mv i386/MRXSMB.SY_ i386/mrxsmb.sy_ ;# Source = tftp
mv i386/rtl8139.sys i386/RTL8139.SYS ;# Source = tftp

Another file is needed from a working windows installation:

copy windows\repair\system /tftpboot/ris/i386/system32/config/SYSTEM

And a few final hacks:

cd /tftpboot/ris
touch i386/SYSTEM32/CONFIG/SYSTEM.LOG
chmod 777 i386/SYSTEM32/CONFIG/*

Om de Windows installatie te kunnen booten met PXE moet een entry worden toegevoegd aan /tftpboot/pxelinux.cfg/default: label w2k3

  kernel startrom.0

Voor een Windows deploy plaats kan vinden moet het binlsrc programma draaien: # cd /tftpboot tftpboot] # ./binlsrv.py

Bij het booten van de te deployen machine moet voor windows “w2k3” als boot optie worden gekozen.

Links

RedHat

Red Hat EL 5 kan gedeployed worden met behulp van de installatie CD ISOs op een NFS share.

Maar de directories aan:

cd /export/RedHat
cd /export/RedHat/RHEL5

Kopieer de eerste drie installatie ISO’s naar /export/RedHat/RHEL5 en noem ze disk1.iso, disk2.iso en disk3.iso.

Kopieer de bestanden initrd.img en vmlinuz van de eerste Red Hat installatie CD naar /tftpboot/ en noem ze RHEL5rd.img en vmRHEL5.

Maak een kickstart file /export/Redhat/RHEL5-ks.cfg aan met de inhoud:

install
nfs --server=192.168.1.10 --dir=/export/RedHat/RHEL5
lang en_US.UTF-8
keyboard us
network --device eth0 --bootproto=dhcp
rootpw --iscrypted $1$VILCZyG5$A6Yz.a.M86yrYDFxngchE0
firewall --disabled
authconfig --enableshadow --enablemd5
selinux --disabled
timezone --utc Europe/Amsterdam
bootloader --location=mbr --driveorder=sda
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
clearpart --all
part / --fstype ext3 --size=100 --grow
part /var --fstype ext3 --size=10240
part swap --size=2048

%packages
@base
@core

Voeg aan /tftpboot/pxelinux.cfg/default toe:

label RHEL5
kernel vmRHEL5
append initrd=RHEL5rd.img ramdisk_size=8192 \
ks=nfs:192.168.1.10:/export/RedHat/RHEL5

FreeBSD

FreeBSD maakt gebruik van twee NFS shares voor de boot files en distributie files, en de extra option root-path in dhcpd.conf. Voor de installatie is disc1 van FreeBSD6.2 nodig.

De NFS directory structuur:

mkdir /export/FreeBSD
mkdir /export/FreeBSD/releases
mkdir /export/FreeBSD/bootdirs
mkdir /export/FreeBSD/bootdirs/6.2-standard

Kopieer de 6.2-RELEASE directory van de CD naar /export/FreeBSD/releases/6.2-RELEASE.

Kopieer de inhoud van de boot directory van de FreeBSD CD naar /export/FreeBSD/bootdirs/freebsd6.2-standard/boot

Voeg aan /export/FreeBSD/bootdirs/freebsd6.2-standard/boot loader.cfg de regel toe:

vfs.root.mountfrom="ufs:/dev/md0c"

Kopieer het bestand boot/pxeboot van de FreeBSD CD naar /tftpboot en noem het freebsd.0

Voeg aan /tftpboot/pxelinux.cfg/default de volgende entry toe:

label freebsd
kernel freebsd.0

Om install.cfg te gebruiken (UFS support nodig!):

gzip -d /a/pxeinstall/boot/mfsroot.gz
mdconfig -a -f /a/pxeinstall/boot/mfsroot md0
mount /dev/md0 /mnt
cp install.cfg /mnt
umount /mnt
mdconfig -d -u 0

Install.cfg is de answer file voor FreeBSD. De inhoud hiervan moet nog worden uitgeplozen!

DEBUGGING

Jun  1 23:31:52 ipcop tftpd[26493]: RRQ from 192.168.2.20 filename /boot/pxelinux.0
Jun  1 23:31:52 ipcop tftpd[26493]: tftp: client does not accept options
Jun  1 23:31:52 ipcop tftpd[26494]: RRQ from 192.168.2.20 filename /boot/pxelinux.0
Jun  1 23:31:52 ipcop tftpd[26495]: RRQ from 192.168.2.20 filename /boot/pxelinux.cfg/01-00-20-ed-62-9e-cb
Jun  1 23:31:52 ipcop tftpd[26496]: RRQ from 192.168.2.20 filename /boot/docs/main
Jun  1 23:31:53 ipcop tftpd[26497]: RRQ from 192.168.2.20 filename /boot/startrom.0
Jun  1 23:31:54 ipcop tftpd[26498]: RRQ from 192.168.2.20 filename ntldr
Jun  1 23:31:54 ipcop tftpd[26499]: RRQ from 192.168.2.20 filename BOOTFONT.BIN
Jun  1 23:31:54 ipcop tftpd[26500]: RRQ from 192.168.2.20 filename ntdetect.com
Jun  1 23:31:56 ipcop tftpd[26501]: RRQ from 192.168.2.20 filename winnt.sif
Jun  1 23:31:56 ipcop tftpd[26502]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\txtsetup.si_ remapped to /ris/winxp-nl/i386/txtsetup.si_
Jun  1 23:31:56 ipcop tftpd[26503]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\txtsetup.sif remapped to /ris/winxp-nl/i386/txtsetup.sif
Jun  1 23:31:57 ipcop tftpd[26504]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\biosinfo.in_ remapped to /ris/winxp-nl/i386/biosinfo.in_
Jun  1 23:31:57 ipcop tftpd[26505]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\biosinfo.inf remapped to /ris/winxp-nl/i386/biosinfo.inf
Jun  1 23:31:57 ipcop tftpd[26506]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\drvmain.sd_ remapped to /ris/winxp-nl/i386/drvmain.sd_
Jun  1 23:31:57 ipcop tftpd[26507]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\drvmain.sdb remapped to /ris/winxp-nl/i386/drvmain.sdb
Jun  1 23:32:02 ipcop tftpd[26508]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\migrate.in_ remapped to /ris/winxp-nl/i386/migrate.in_
Jun  1 23:32:02 ipcop tftpd[26509]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\migrate.inf remapped to /ris/winxp-nl/i386/migrate.inf
Jun  1 23:32:02 ipcop tftpd[26510]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\unsupdrv.in_ remapped to /ris/winxp-nl/i386/unsupdrv.in_
Jun  1 23:32:02 ipcop tftpd[26511]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\unsupdrv.inf remapped to /ris/winxp-nl/i386/unsupdrv.inf
Jun  1 23:32:03 ipcop tftpd[26513]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\halaacpi.dl_ remapped to /ris/winxp-nl/i386/HALAACPI.DL_
Jun  1 23:32:03 ipcop tftpd[26514]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\ntoskrnl.ex_ remapped to /ris/winxp-nl/i386/ntoskrnl.ex_
Jun  1 23:32:04 ipcop tftpd[26515]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\KDCOM.DL_ remapped to /ris/winxp-nl/i386/KDCOM.DL_
Jun  1 23:32:04 ipcop tftpd[26516]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\BOOTVID.dl_ remapped to /ris/winxp-nl/i386/BOOTVID.DL_
Jun  1 23:32:04 ipcop tftpd[26517]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\SETUPREG.HI_ remapped to /ris/winxp-nl/i386/SETUPREG.HI_
Jun  1 23:32:04 ipcop tftpd[26518]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\SETUPREG.HIV remapped to /ris/winxp-nl/i386/SETUPREG.HIV
Jun  1 23:32:04 ipcop tftpd[26519]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\vga850.fo_ remapped to /ris/winxp-nl/i386/VGA850.FO_
Jun  1 23:32:04 ipcop tftpd[26520]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\c_1252.nl_ remapped to /ris/winxp-nl/i386/C_1252.NL_
Jun  1 23:32:04 ipcop tftpd[26521]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\c_850.nl_ remapped to /ris/winxp-nl/i386/C_850.NL_
Jun  1 23:32:04 ipcop tftpd[26522]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\l_intl.nl_ remapped to /ris/winxp-nl/i386/l_intl.nl_
Jun  1 23:32:04 ipcop tftpd[26523]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\c_1252.nl_ remapped to /ris/winxp-nl/i386/C_1252.NL_
Jun  1 23:32:04 ipcop tftpd[26524]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\c_850.nl_ remapped to /ris/winxp-nl/i386/C_850.NL_
Jun  1 23:32:04 ipcop tftpd[26525]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\l_intl.nl_ remapped to /ris/winxp-nl/i386/l_intl.nl_
Jun  1 23:32:04 ipcop tftpd[26526]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\setupdd.sy_ remapped to /ris/winxp-nl/i386/SETUPDD.SY_
Jun  1 23:32:05 ipcop tftpd[26527]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\SPDDLANG.SY_ remapped to /ris/winxp-nl/i386/SPDDLANG.SY_
Jun  1 23:32:05 ipcop tftpd[26528]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\pci.sy_ remapped to /ris/winxp-nl/i386/PCI.SY_
Jun  1 23:32:05 ipcop tftpd[26529]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\acpi.sy_ remapped to /ris/winxp-nl/i386/ACPI.SY_
Jun  1 23:32:05 ipcop tftpd[26530]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\WMILIB.SY_ remapped to /ris/winxp-nl/i386/WMILIB.SY_
Jun  1 23:32:05 ipcop tftpd[26531]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\isapnp.sy_ remapped to /ris/winxp-nl/i386/ISAPNP.SY_
Jun  1 23:32:05 ipcop tftpd[26532]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\acpiec.sy_ remapped to /ris/winxp-nl/i386/ACPIEC.SY_
Jun  1 23:32:05 ipcop tftpd[26533]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\OPRGHDLR.SY_ remapped to /ris/winxp-nl/i386/OPRGHDLR.SY_
Jun  1 23:32:05 ipcop tftpd[26534]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\ohci1394.sy_ remapped to /ris/winxp-nl/i386/OHCI1394.SY_
Jun  1 23:32:05 ipcop tftpd[26535]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\1394BUS.SY_ remapped to /ris/winxp-nl/i386/1394BUS.SY_
Jun  1 23:32:05 ipcop tftpd[26536]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\pcmcia.sy_ remapped to /ris/winxp-nl/i386/PCMCIA.SY_
Jun  1 23:32:05 ipcop tftpd[26537]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\pciide.sy_ remapped to /ris/winxp-nl/i386/PCIIDE.SY_
Jun  1 23:32:05 ipcop tftpd[26538]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\PCIIDEX.SY_ remapped to /ris/winxp-nl/i386/PCIIDEX.SY_
Jun  1 23:32:05 ipcop tftpd[26539]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\intelide.sy_ remapped to /ris/winxp-nl/i386/INTELIDE.SY_
Jun  1 23:32:05 ipcop tftpd[26540]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\viaide.sy_ remapped to /ris/winxp-nl/i386/VIAIDE.SY_
Jun  1 23:32:05 ipcop tftpd[26541]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\cmdide.sy_ remapped to /ris/winxp-nl/i386/CMDIDE.SY_
Jun  1 23:32:05 ipcop tftpd[26542]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\toside.sy_ remapped to /ris/winxp-nl/i386/TOSIDE.SY_
Jun  1 23:32:05 ipcop tftpd[26543]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\aliide.sy_ remapped to /ris/winxp-nl/i386/ALIIDE.SY_
Jun  1 23:32:05 ipcop tftpd[26544]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\mountmgr.sy_ remapped to /ris/winxp-nl/i386/MOUNTMGR.SY_
Jun  1 23:32:05 ipcop tftpd[26545]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\ftdisk.sy_ remapped to /ris/winxp-nl/i386/FTDISK.SY_
Jun  1 23:32:05 ipcop tftpd[26546]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\partmgr.sy_ remapped to /ris/winxp-nl/i386/PARTMGR.SY_
Jun  1 23:32:05 ipcop tftpd[26547]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\fdc.sy_ remapped to /ris/winxp-nl/i386/FDC.SY_
Jun  1 23:32:05 ipcop tftpd[26548]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\dmload.sy_ remapped to /ris/winxp-nl/i386/DMLOAD.SY_
Jun  1 23:32:05 ipcop tftpd[26549]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\dmio.sy_ remapped to /ris/winxp-nl/i386/DMIO.SY_
Jun  1 23:32:05 ipcop tftpd[26550]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\sbp2port.sy_ remapped to /ris/winxp-nl/i386/SBP2PORT.SY_
Jun  1 23:32:05 ipcop tftpd[26551]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\lbrtfdc.sy_ remapped to /ris/winxp-nl/i386/LBRTFDC.SY_
Jun  1 23:32:05 ipcop tftpd[26552]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\usbehci.sy_ remapped to /ris/winxp-nl/i386/USBEHCI.SY_
Jun  1 23:32:05 ipcop tftpd[26553]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\USBPORT.SY_ remapped to /ris/winxp-nl/i386/USBPORT.SY_
Jun  1 23:32:06 ipcop tftpd[26554]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\usbohci.sy_ remapped to /ris/winxp-nl/i386/USBOHCI.SY_
Jun  1 23:32:06 ipcop tftpd[26555]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\usbuhci.sy_ remapped to /ris/winxp-nl/i386/USBUHCI.SY_
Jun  1 23:32:06 ipcop tftpd[26556]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\usbhub.sy_ remapped to /ris/winxp-nl/i386/usbhub.sy_
Jun  1 23:32:06 ipcop tftpd[26557]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\usbhub.sys remapped to /ris/winxp-nl/i386/usbhub.sys
cat rislog.txt | cut -d \\ -f 5 | cut -d \  -f 1 | grep "." | uniq > risfiles.txt
cat risfiles.txt | sort | uniq > risfiles.all.txt
cp risfiles.all.txt risfiles.txt
for LINE in `cat risfiles.txt`; do ULINE=`echo $LINE | tr [:lower:] [:upper:]` ; echo "r $LINE $ULINE" >> risfiles.rewrite.txt ; done
### Modify tftp rules and make active
joe /etc/tftp.rules ; killall -9 tftpd ; tftpd -u tftp -p -c -l -m /etc/tftp.rules -s /home/tftp/ -v ; rm /etc/*~

FINETUNING

Jun  2 09:46:29 ipcop tftpd[18491]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\flpydisk.sy_ remapped to /ris/winxp-nl/i386/flpyDISK.SY_
Jun  2 09:46:29 ipcop tftpd[18492]: RRQ from 192.168.2.20 filename \ris\winxp-nl\i386\flpydisk.sys remapped to /ris/winxp-nl/i386/flpydisk.sys
 
documents/deploy_using_pxe.txt · Last modified: 2008/07/24 15:43
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki