- DHCP-Server
- TFTP-Server
- NFS-Server
- SMB-Server
- Web-Server
- SQL-Server
Mit iPXE gibt es ein OpenSource-Projekt, um Netzwerkrechner ohne großen Aufwand starten zu können. Wenn man da das volle Programm haben will, sollte man sich auch den Source-Code besorgen:
git clone http://git.ipxe.org/ipxe.git cd ipxe/src
Damit habe ich einen funktionierenden Source-Tree, von dem aus ich verschiedene Ziele kompilieren kann. Wenn ich schon dabei bin, kann ich wimboot auch gleich mitnehmen.
wget -v http://git.ipxe.org/releases/wimboot/wimboot-latest.zip
In dieser ZIP-Datei befindet sich eine Datei namens wimboot.i386 und eine Datei namens wimboot.x86_64. Beide benötige ich, um WindowsPE übers Netzwerk zu starten.
--> Voraussetzung(en):
Zuerst benötigen wir einmal die offizielle ISO-Datei. Die aktuelle von der Microsoft-Site heruntergeladene Datei heißt Win10_1903_V2_German_x64.iso und ich speichere sie unter /srv/iso. Diese kann man sowohl mit UEFI als auch mit BIOS - Einstellungen booten und installieren.
der Eintrag in der menu-main.ipxe:
Im root-Verzeichnis des Web-Servers erzeuge ich hier die Datei net-boot.ipxe mit folgendem Inhalt:
#!ipxe
# global variables used in our scripts
chain --autofree net.cfg ||
# Boot //mac-010203040506.ipxe if script is present
chain --replace --autofree ${boot-url}${boot-dir}mac-${mac:hexraw}.ipxe ||
# Boot /menu.ipxe script if all other options have been exhausted
chain --replace --autofree ${boot-menu} ||
Ich habe mir heute die neueste Version heruntergeladen. Sie ist unter /srv/iso/Win10_1909_German_x64.iso abgespeichert.
service smbd stop umount /srv/pxe/w10_x64 mount /srv/iso/Win10_1909_German_x64.iso /srv/pxe/w10_x64 service smbd start mcedit /etc/fstab
Der Eintrag in der fstab bewirkt, das diese ISO-Datei nach dem nächsten Neustart des Servers automatisch wieder an der richtigen Stelle eingehangen wird.
/srv/iso/Win10_1909_German_x64.iso /srv/pxe/w10_x64 udf loop 0 0
Jetzt brauche ich nur noch die Versionsnummer in menu-main.ipxe zu ändern und kann schon weiter installieren.
Hier trage ich allgemein gültige Variablen und Einstellungen ein, die nur für diese PXE-Umgebung gültig sind. Die boot-server Adresse sollte man noch an seine Bedürfnisse anpassen.
#!ipxe
cpuid --ext 29 && set arch x64 || set arch x32
cpuid --ext 29 && set archl amd64 || set archl i386
set boot-proto http://
set boot-server 192.168.3.11
set boot-dir boot/
set boot-url ${boot-proto}${boot-server}/
set boot-menu ${boot-url}${boot-dir}menu-main.ipxe
# my theme for this boot-config
chain --autofree ${boot-url}${boot-dir}net.theme ||
--> Voraussetzung(en):
Download der ISO-Datei:
cd /srv/iso wget -v https://osdn.net/projects/systemrescuecd/storage/releases/6.1.0/systemrescuecd-amd64-6.1.0.iso mkdir /srv/pxe/sysrescue_x64 mount -o loop /srv/iso/systemrescuecd-amd64-6.1.0.iso /srv/pxe/sysrescue_x64
Der Eintrag in der menu-main.ipxe:
:sysrescue
set root-path ${boot-url}sysrescue_x64/
kernel ${root-path}sysresccd/boot/x86_64/vmlinuz
initrd ${root-path}sysresccd/boot/intel_ucode.img
initrd ${root-path}sysresccd/boot/amd_ucode.img
initrd ${root-path}sysresccd/boot/x86_64/sysresccd.img
imgargs vmlinuz initrd=sysresccd.img ip=dhcp dodhcp setkmap=de dostartx archisobasedir=sysresccd archiso_http_srv=${boot-url}sysrescue_x64
boot || goto failed
Auch hier wird uns später der Wechsel auf eine aktuellere ISO-Datei leicht fallen.
Ich möchte das Layout vom Inhalt trennen also kommt hier das Console-Layout hin:
#!ipxe
console --x 800 --y 600 --picture ${boot-url}${boot-dir}pxe-banner.png --keep --left 40 --right 290 --top 32 --bottom 48
colour --rgb 0xf5f219 7
colour --rgb 0x75f658 6
--> Voraussetzung(en):
Download der ISO-Datei:
cd /srv/iso wget -v https://dotsrc.dl.osdn.net/osdn/clonezilla/71823/clonezilla-live-20191024-eoan-amd64.iso mkdir /srv/pxe/clonezilla_x64 mount -o loop /srv/iso/clonezilla-live-20191024-eoan-amd64.iso /srv/pxe/clonezilla_x64
Der Eintrag in der menu-main.ipxe:
:clonezilla64
set root-path ${boot-url}clonezilla_x64/
kernel
initrd
imgargs
boot || goto failed