How to configure a Raspberry Pi as a PXE boot server -

PXE (Preboot eXecution Environment) is a client-server environment which makes possible to boot and install operating systems without the need of physical media. The core idea is quite simple: in a very early stage, a client gets an IP address from a DHCP server and downloads the files needed to perform the boot process via the tftp protocol (Trivial ftp). In this tutorial we will use the dnsmasq application: it can be used as a primary DHCP server or in proxy DHCP mode if another DHCP server exists in the network; it also provides the tftp service used to transfer files.

This is a companion discussion topic for the original entry at


I am trying to extend this PXE boot server to boot Windows 10 from the raspberry pi:

  1. I have extended the “/mnt/data/netboot/pxelinux.cfg/default” as it follows:
    MENU BEGIN Windows

     MENU TITLE Windows 10 amd64
         LABEL windows_10_PE
             MENU LABEL Windows PE (64 Bit)
             KERNEL ::memdisk
             INITRD ::win-pe-x64.iso
             APPEND iso raw            
         MENU END
  2. I have generated a “win-pe-x64.iso” using microsoft’s “Windows ADK” and “Windows PE add-on”.

  3. I placed the “win-pe-x64.iso” file in /mnt/data/netboot

  4. I copied a mounted windows iso file on a samba directory:

    4.1 sudo mount /home/pi/SambaSharedDirectory/Win10_20H2_v2_EnglishInternational_x64.iso /media
    4.2 sudo rsync -av /media/ /mnt/data/netboot/boot/amd64/windows/10

  5. smb.conf:

comment = Windows 10 (64 Bit) Install Files
path = /mnt/data/netboot/boot/amd64/windows/10
public = yes
printable = no
guest ok = yes
readonly = yes
browseable = yes
oplocks = no
level2 oplocks = no
locking = no
strict locking = no

  1. dnsmasq.conf --> not modified

When I start the windows 10 installation the client reports the following:


Do you know how to proceed?

Thank you in advance!

Is it possible to direct the PXE server to a WDS WIM image ?? for windows MDT deployments? (windows server is a VM on a Linux UNRAID server