#!ipxe {{ if .ImageName }} echo echo ================================================================================ echo Warewulf v4 now booting: {{.Fqdn}} ({{.Hwaddr}}) echo echo Image: {{.ImageName}} {{if .KernelVersion }} echo Kernel: {{.KernelVersion}} {{else}} echo Kernel: {{.ImageName}} (image default) {{end}} echo KernelArgs: {{.KernelArgs}} echo set uri_base http://{{.Ipaddr}}:{{.Port}}/provision/{{.Hwaddr}}?assetkey=${asset}&uuid=${uuid} echo Warewulf Controller: {{.Ipaddr}} echo Downloading Kernel Image: kernel --name kernel ${uri_base}&stage=kernel || goto reboot # imgextract causes RAM space problems on non-EFI systems (because of the 3GB barrier # in 32-Bit mode). # -> Use the old initrd method with a compressed image to save as much RAM as possible # in this early boot stage. # See for more details. iseq ${platform} efi && goto efi || goto noefi :efi # try extracting compressed images first # NOTE: system overlay tends to be the smallest, so failure here is the cheapest echo Downloading Image: imgextract --name image ${uri_base}&stage=image&compress=gz || goto nocompress echo Downloading System Overlay: imgextract --name system ${uri_base}&stage=system&compress=gz || goto reboot echo Downloading Runtime Overlay: imgextract --name runtime ${uri_base}&stage=runtime&compress=gz && set runtime_initrd initrd=runtime || echo Failed downloading runtime overlay. goto imoktogo :nocompress echo echo Image extract not supported in this iPXE, using standard initrd mode echo Downloading Image: initrd --name image ${uri_base}&stage=image || goto reboot echo Downloading System Overlay: initrd --name system ${uri_base}&stage=system || goto reboot echo Downloading Runtime Overlay: initrd --name runtime ${uri_base}&stage=runtime && set runtime_initrd initrd=runtime || echo Failed downloading runtime overlay. goto imoktogo :noefi echo echo Use legacy initrd mode with compressed images echo Downloading Image: initrd --name image ${uri_base}&stage=image&compress=gz || goto reboot echo Downloading System Overlay: initrd --name system ${uri_base}&stage=system&compress=gz || goto reboot echo Downloading Runtime Overlay: initrd --name runtime ${uri_base}&stage=runtime&compress=gz && set runtime_initrd initrd=runtime || echo Failed downloading runtime overlay. :imoktogo echo boot kernel initrd=image initrd=system ${runtime_initrd} wwid={{.Hwaddr}} {{.KernelArgs}} boot kernel initrd=image initrd=system ${runtime_initrd} wwid={{.Hwaddr}} {{.KernelArgs}} || goto reboot :reboot echo echo There was an error, rebooting in 15s... echo sleep 15 reboot {{ else }} echo ================================================================================ echo Warewulf v4: echo No image defined for this node ({{.Fqdn}}). echo Rebooting in 30s. echo ================================================================================ sleep 30 reboot {{ end }}