Omdat windows achtige clients een "\"
gebruiken en unix achtigen een "/" herschrijf ik de backslashes die een
client opvraagt naar een slash:
venus:/tmp # vi /etc/tftp.map
# Convert backslashes to slashes
rg \\ /
Herstart de xinetd zodat ook de tftp deamon aanstaat:
venus:/tmp # rcxinetd restart
Zorgen voor wat files in de /tftpboot
dir zodat je in ieder geval een menuutje krijgt als je boot:
Alles begint met de /tftpboot/pxelinux.cfg/default
# default
#default harddisk
#default rescue
default vesamenu.c32
# default menu.c32
prompt 0
menu title default Boot Menu
# screen width
menu width 80
# margins to leave over left AND right (menu text width = 80 - 5 - 5 -
2) ?
menu margin 5
# add 3 lines for title, 1 for bottom. next free line is 21
#menu rows 16
menu rows 13
# .. which is this one
menu tabmsgrow 22
# command line overwrites tab message
menu cmdlinerow 22
menu timeoutrow 23
# last row is 25 ?
# rescue from net (using http as tftp ("tftp://servernaam/") doesnt work
label rescue
menu label ^Rescue system from SuSE 10.3, 1280x1024
kernel SuSE10.3/i386/loader/linux
append initrd=SuSE10.3/i386/loader/initrd rescue=1
rescue=http://servernaam/SuSE10.3 insecure=1 vga=0x0307 rw
label rescue
menu label ^Rescue system from SuSE 10.3, 1024x768
kernel SuSE10.3/boot/i386/loader/linux
append initrd=SuSE10.3/i386/loader/initrd splash=silent rescue=1
rescue=http://servernaam/SuSE10.3/ vga=0x0305 rw
Logging:
venus:/tmp # tail -f /var/log/messages
Apr 6 21:34:59 venus dhcpd: DHCPDISCOVER from 00:0c:29:e1:92:29
via eth0
Apr 6 21:34:59 venus dhcpd: DHCPOFFER on x.x.x.x to
00:0c:29:e1:92:29 via eth0
Apr 6 21:35:01 venus dhcpd: DHCPREQUEST for x.x.x.x (x.x.x.x)
from 00:0c:29:e1:92:29 via eth0
Apr 6 21:35:01 venus dhcpd: DHCPACK on x.x.x.x to
00:0c:29:e1:92:29 via eth0
Apr 6 19:35:01 venus in.tftpd[16745]: RRQ from x.x.x.x filename
pxelinux.0
Apr 6 19:35:01 venus in.tftpd[16745]: tftp: client does not
accept options
Apr 6 19:35:01 venus in.tftpd[16746]: RRQ from x.x.x.x filename
pxelinux.0
Apr 6 19:35:01 venus in.tftpd[16766]: RRQ from x.x.x.x filename
pxelinux.cfg/564d6ebe-ce46-0d26-bd83-03868de19229
Apr 6 19:35:03 venus in.tftpd[16779]: RRQ from x.x.x.x filename
pxelinux.cfg/564d6ebe-ce46-0d26-bd83-03868de19229
Apr 6 19:35:03 venus in.tftpd[16780]: RRQ from x.x.x.x filename
pxelinux.cfg/01-00-0c-29-e1-92-29
Apr 6 19:35:03 venus in.tftpd[16781]: RRQ from x.x.x.x filename
pxelinux.cfg/2C80A875
Apr 6 19:35:03 venus in.tftpd[16782]: RRQ from x.x.x.x filename
pxelinux.cfg/2C80A87
Apr 6 19:35:03 venus in.tftpd[16783]: RRQ from x.x.x.x filename
pxelinux.cfg/2C80A8
Apr 6 19:35:03 venus in.tftpd[16784]: RRQ from x.x.x.x filename
pxelinux.cfg/2C80A
Apr 6 19:35:03 venus in.tftpd[16785]: RRQ from x.x.x.x filename
pxelinux.cfg/2C80
Apr 6 19:35:03 venus in.tftpd[16786]: RRQ from x.x.x.x filename
pxelinux.cfg/2C8
Apr 6 19:35:03 venus in.tftpd[16787]: RRQ from x.x.x.x filename
pxelinux.cfg/2C
Apr 6 19:35:03 venus in.tftpd[16788]: RRQ from x.x.x.x filename
pxelinux.cfg/2
Apr 6 19:35:03 venus in.tftpd[16789]: RRQ from x.x.x.x filename
pxelinux.cfg/default
Apr 6 19:35:03 venus in.tftpd[16790]: RRQ from x.x.x.x filename
/vesamenu.c32
Korte uitleg:
Wat je eigenlijk zit gebeuren is dat de client eerst probeert een
bootfile op te halen met het mac-adres van zijn netwerk kaart. Krijgt
hij die niet aangeboden, blijft hij het zo lang doorvragen totodat de
Als alles werkt, kun je de debugging mode van de /etc/xinetd.conf/tftp
uitzetten (de -v uit de regel weghalen)
server_args
= -m /etc/tftp.map -s /tftpboot
tijdelijk ter naslag:
Windows pe boot:
copy bcd.0 en ntdetect.com naar /tftpboot
zet de winpe.wim in de /tftpboot/x86 dir en hernoem hem naar boot.wim
kopieer een Boot dir naar /tftpboot/Boot
maak een softlink naar deze dir met een kleine letter boot
venus:/tftpboot # ln -s Boot boot
Menu toevoegen aan default:
label menu
kernel /menu.c32
append /menu/winpe.conf
edit /tftpboot/menu/winpe.conf
MENU TITLE PXE bootmenu
label winpetest
MENU LABEL ^Windows PE
kernel /bcd.0
BartPE cd booten
stapppenplan
- kopieer boot bestandjes naar de tftp server
- creeer een winnt.sif
- pas het pxe menu aan met een nieuwe optie
- creeer een bartpe.iso met bartpe en een windows2003 cd.
- boot het nieuwe image
maak een bartpe dir aan in de /tftpboot dir
# mkdir /tftpboot/bartpe
Maak hier een winnt.sif
venus:/tftpboot/bartpe # vi winnt.sif
[SetupData]
BootDevice = "ramdisk(0)"
BootPath = "\i386\System32\"
OsLoadOptions = "/noguiboot /fastdetect /minint /rdexportascd
/rdpath=BartPE.ISO"
(kopieer achteraf de t:\bartpe\* bestanden naar de tftp server
/tftpboot/bartpe)
Regel een windows 2003 cd en kopieer wat bestanden in de bartpe dir:
Y:\I386>
expand startrom.n1_
t:\bartpe\startrom.0
Microsoft (R) File Expansion Utility Version 5.2.3790.0
Copyright (c) Microsoft Corporation. All rights reserved.
Expanding startrom.n1_ to t:\bartpe\startrom.0.
startrom.n1_: 9167 bytes expanded to 24514 bytes, 167% increase.
Y:\I386>
expand setupldr.ex_
t:\bartpe\NTLDR
Microsoft (R) File Expansion Utility Version 5.2.3790.0
Copyright (c) Microsoft Corporation. All rights reserved.
Expanding setupldr.ex_ to t:\bartpe\ntldr.
setupldr.ex_: 133697 bytes expanded to 280064 bytes, 109% increase.
Y:\I386>
copy ntdetect.com t:\bartpe
1 bestand(en) gekopieerd.
Omdat we het niet voor elkaar krijgen windows een subdir aan te geven,
even snel wat links maken:
Venus:/tftpboot # ln -s bartpe/NTLDR NTLDR
Venus:/tftpboot # ln -s bartpe/winnt.sif winnt.sif
Venus:/tftpboot # ln -s bartpe/BartPE.ISO BARTPE.ISO
Bak daarna een extra menu optie voor de nieuwe BartPE
venus:/tftpboot/pxelinux.cfg # vi default
toevoegen aan het einde:
label bartpe
menu label ^BartPE iso
kernel bartpe/startrom.0
BartPE pakket downloaden op
http://www.nu2.nu/pebuilder/#download
en natuurlijk installeren.
Een keer draaien: (vul de gegevens in, Y:\ is de windows 2003 R2 SP2 cd)
Kopieer de bartpe.iso naar /tftpboot/bartpe/BartPE.ISO
Probeer te booten:
SuSE 11.0
Alhoewel SuSE geen pxe map meer heeft op de SuSE cd/dvd en iets met
kiwi wil doen wat ik niet kan begrijpen, vind ik het booten via pxe
voor de installatie nog steeds handig. Het is alleen iets meer gepuzzel.
Mount de SuSE dvd en kopieer de volgende bestanden naar bijvoorbeeld
/tftpboot/suse110
boot/x86_64/loader/initrd
boot/x86_64/loader/linux
Maak vervolgens een suse.conf aan in de /menu dir:
vi suse.conf
default menu.c32
prompt 0
MENU ROWS 13
MENU MARGIN 3
MENU HELPMSGROW 19
MENU HELPMSGENDROW -1
MENU TITLE SuSE Linux installs
label back
MENU LABEL ^Back to the
mainmenu
KERNEL menu.c32
APPEND /menu/main.conf
label suse110
MENU LABEL SuSE Linux 11.0
kernel suse110/linux
append
initrd=/suse110/initrd ram_disk=65536
install=nfs://44.128.168.2/media/linux/suse/110 splash=silent showopts
label suseresc110
MENU LABEL SuSE Linux 11.0 rescue
kernel suse110/rescue
append initrd=/suse103/initrd ramdisk_size=65536
insmod=e1000 insmod=tg3
install=nfs://44.128.168.2/media/linux/suse/103/ rescue=1
(Die rescue weet ik nog niet zeker, moet ik nog verder mee spelen)
VMWare 3.5 pxe boot
Om VMWare zonder tussenkomst van CD's te installeren, is zo'n
bootservertje ook wel handig. Laat nu net zo zijn dat ik op het werk 4
vmware koekjes in elkaar moest zetten op Blade servers, alwaar de CD
ondersteuning een beetje waardeloos langzaam is.
In het kort:
- Download CD esx35-Update1.iso van de vmware site.
- Mount deze op de tftp server
- kopieer de vmlinuz en de initrd.
- Maak een menu aan
- Geef een kickscript op via http en gaan met die banaan.
Download op de vmware site de installatiecd.
Mount deze als loopback device op je installatieserver of zet de
bestanden over.
venus:/media/install/vmware/esx/35> ls -l
total 574520
-rw-r--r-- 1 gej users 587726848 2008-05-14 20:58
esx-3.5.0_Update_1-82663.iso
venus:/media/install/vmware/esx/35> mount -o loop
esx-3.5.0_Update_1-82663.iso /media/install/vmware/esx/35/
Exporteer deze via nfs
# vi /etc/exports
/media/install/vmware/esx/35/ *(ro,no_subtree_check)
venus:/media/install/vmware/esx/35 # rcnfsserver restart
Shutting down kernel based NFS server: nfsd statd mountd
idmapd done
Starting kernel based NFS server: idmapd mountd statd nfsd
sm-notify done
venus:/media/install/vmware/esx/35
#
Kopieer de initrd.img en de vmlinuz naar de tftp server.
venus:/media/install/vmware/esx/35/images/pxeboot # cp initrd.img
vmlinuz /tftpboot/esx35/
Menukeuze aanmaken:
label esx35
kernel esx35/vmlinuz
append ksdevice=eth0
initrd=esx35/initrd.img ramdisk_size=32768
ks=http://home.gejanssen.com/esx01.ks
Let wel, als je deze gebruikt veegt hij alle lokale schijven leeg en
begint geheel opnieuw.
Voorbeeld Kickscript file:
Hierin heb ik twee dingen gekozen. Voor elke server automatisch en snel
te installeren maak ik dus voor elke server een eigen .ks file met
vooraf ingevulde naam en ip adres.
Verder heb ik voor elke plek waar je een tftp server of nfs server hebt
voor de "bestanden" 192.168.10.1 ingevuld:
########### ESX KICKSTART SCRIPT
##############
# +-------------------------------+
# | Begin default ESX 3.x install |
# +-------------------------------+
# | Eerlijk gejat
van: |
# | Author: Gabrie van Zanten |
# |
thegabeman@gmail.com
|
# +-------------------------------+
# +-----------------------------------------------+
# | Kickstart section to be executed after %PRE |
# +-----------------------------------------------+
# Regional Settings
keyboard us
lang en_US
langsupport --default en_US
timezone --utc Europe/Amsterdam
# Installatition settings
#skipx
mouse none
firewall --disabled
# Unencrypted root password (replace by your own)
#rootpw --iscrypted $1$5a17$VQby/1fu4eyyzu5EWkf.c0
rootpw welkom
reboot
install
# Location of UDA server
#url --url http://x.x.x.249/esx/esx301/
nfs --server=192.168.10.1 --dir=/media/install/vmware/vmware/esx35/
# Driver disks
# Load drivers
# ignoredisk to prevent installation on SAN
# This might NOT work for other brands than HP
# HP has its first disk on cciss/c0d0, LUNs are seen as sda, sdb, etc
ignoredisk drives=sda,sdb,sdc,sdd,sde,sdf,sdg,sdh,sdi,sdj,sdk
# Bootloader options
bootloader --location=mbr --driveorder=cciss/c0d0
# Authentication
auth --enableshadow --enablemd5
# Partitioning
# clearpart = erase all disks!!!!
clearpart --all --drives=cciss/c0d0 --initlabel
part /boot --fstype ext3 --size 250 --asprimary
--ondisk=cciss/c0d0
part / --fstype ext3 --size 8192 --asprimary
--ondisk=cciss/c0d0
part swap --size 1600 --asprimary --ondisk=cciss/c0d0
part /tmp --fstype ext3 --size 1024 --ondisk=cciss/c0d0
part /var/log --fstype ext3 --size 4096 --ondisk=cciss/c0d0
part /usr --fstype ext3 --size 8192 --ondisk=cciss/c0d0
part /opt --fstype ext3 --size 2048 --ondisk=cciss/c0d0
part None --fstype vmkcore --size 102 --ondisk=cciss/c0d0
part /home --fstype ext3 --size 1024 --ondisk=cciss/c0d0
part None --fstype vmfs3 --size 1 --grow --ondisk=cciss/c0d0
# Loading network configuration from /tmp/networkconfig. This file
# is created in the %PRE section
# Network Configurations
network --device eth0 --bootproto static --ip 192.168.10.13 --netmask
255.255.255.0 --gateway 192.168.10.254 --nameserver 192.168.10.1
--hostname esx01 --addvmportgroup=0
# VMWare License options
vmaccepteula
vmlicense --mode=server --server=27000@192.168.10.1 --edition=esxfull
--features=vsmp
%vmlicense_text
%packages
@base
# +--------------------------------------+
# | Start ESX 3.x
install
|
# +--------------------------------------+
|