not quite minimalistic enough  

PXE

http://pxeboot.com/pxeboot.n12

Booting Linux via PXE from Windows Deployment Services.

There are several guides on the web that claim to explain how it is done. After combining a few of them, it even does. Up to the point where TFTPing a live filesystem (squashfs) fails with an “access violation” from the WDS TFTP server. I think that is because the initramfs, or whatever does the fetching, puts a leading slash into the path. It would make sense for the server to refuse an absolute path on paranoid grounds.

So, let’s try HTTP instead. As luck would have it, there’s an IIS on the WDS already. Configure virtual directory, quickly check permissions, looking good, reboot VM.

  1. Huh? The directory returns 200.

IIS log. There’s the 404; win32-status is 50. “The request is not supported.” Double-huh?

Deep down in ancient genetic memory, something stirs. Doesn’t IIS refuse requests for static files with unknown extensions?

Add MIME type mapping. squashfs -> application/octet-stream. Reboot VM.

Works. Nice.

Now. Why does WDS on 2012R2 complain about

wdsutil /add-device ... /bootprogram:foo/bar/pxelinux.com

and tell me that that option should not be used since 2008R2 and “to use a custom PXE prompt policy, […]"? I guess MS decided to abstract from the pxeboot.com/pxeboot.n12 pair into a UI option for F12 or no F12, dropping (un)support for other people’s PXE loaders by the wayside. But at least there is a /force flag to do it anyway. (Or I could change the platform’s default boot program and chain the WDS loader from PXElinux.)

Written on September 26, 2017