How to configure a Raspberry Pi as a PXE boot server - LinuxConfig.org

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 https://linuxconfig.org/how-to-configure-a-raspberry-pi-as-a-pxe-boot-server

Hello,

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:

[10]
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:

image

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

hello, you’ve made a mistake

You wrote
pxe-service=x86PC,“PXELINUX (BIOS)”,bios/pxelinux

But it’s
pxe-service=x86PC,“PXELINUX (BIOS)”,bios/pxelinux.0

:slight_smile:

Hello

I am trying to make debian installer boot via PXE just like you described, however I have a problem. The installer boot fine but after selecting language, keyboard etc the installer display the message about being unable to find CD-ROM and my only option is to load external drivers, can you point me what I am doing wrong?

did you solve this issue? i have a same problem about PXE, i did everything in this guide, but in installer i allways got “unable to find CD-ROM”. Thanks

@marson / @tombenetin
I get the same error with debian 11. Were you able to solve it? Any help appreciated.
Thanks.

Any progress on passing cdrom step in debian?

Hello, this HowTo is quite good, at the end you have to insert a USB stick (or a CD) with the netinstall image to continue the boot process. You can create it by downloading the ISO and use Win32DiskImager to write it to the USB stick.
I also got an error after partionning the disk and solve it with a stackexchange trick (search fo debian-laptop-installation-fails-due-to-debootstrap-error-failed-to-determine-t)