A ready-to-go PXE + TFTP network boot server for Raspberry Pi, with Resin deployment.
Want to boot a machine from the network, don't want to have to fight with all the configuration and setup yourself, and have a raspberry pi to hand? This is the solution.
Tested with:
pxelinux.cfg/default
You can change and push a new Dockerfile to your application if you want to carefully update your device to do this differently, or for quick changes there's an SSH port exposed that allows root login with the default password of 'resin'.
For the specific Windows boot process this was tested with, scripts are included. See app/windows/setup-windows-pxe.sh
in this repo (in /usr/src/app
on the device) for full details.
This script:
To run this script:
/usr/src/app/windows/setup-windows-pxe.sh <path_to_full_windows_iso>
Once this is complete, any machine attached to the device should now boot into Windows PE, from which you can start the full Windows install process.
Note that it seems Microsoft's iso download process makes it easy to end up with corrupted iso's, which will typicall start up, but refuse to install. To check for this, run md5sum
on your iso to get its md5, and google for the hash. Any valid official image should return a huge number of related results.
This setup has pretty much no security - do not connect this device to any untrusted network (e.g. the public internet). Root SSH is set up with a default password, and file sharing services are configure with public read/write access to the image you will be booting from. That's super convenient and effective if the device is only connected to you, but it's trivial complete control of both the device and the machine you're booting from if anybody else can connect.
dnsmasq.conf
(/etc/dnsmasq.conf
on device)syslinux
and pxelinux
(see Dockerfile.template
for details).smb.conf
(/etc/smb.conf
on device)I'm open to PRs for these, but I don't need them myself right now, so they won't happen without help.
LAN Boot Rom
, but for very new machines/in future this may not be true.