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