Unable to TFTP clonezilla files from WDS’ TFTP server during PXE boot


I installed Windows Deployment Server and I've modified my PXE boot menu so that I can boot different kernels (which works). Now I'm trying to set up CloneZilla to also PXE boot but I can't get the TFTP portion working correctly. Here's the clonezilla boot menu code:

label Clonezilla-live
MENU LABEL Clonezilla Live (Ramdisk)
KERNEL vmlinuz
APPEND initrd=initrd.img boot=live username=user union=overlay config components quiet noswap edd=on nomodeset nodmraid locales= keyboard-layouts= ocs_live_run="ocs-live-general" ocs_live_extra_param="" ocs_live_batch=no net.ifnames=0 nosplash noprompt fetch=tftp://$serverIP/filesystem.squashfs

where $serverIP is my TFTP's server IP – which came from here:


Everything works great except for the fetch statement at the end of the APPEND line. It will work when I try and hit another TFTP Server (SolarWinds), but for the life of me I can't get it to fetch from the WDS TFTP server, which I know is working because WDS relies on it. I'm able to use a TFTP client to access the WDS TFTP server, but whenever I try and do it with clonezilla, it gives me an "Access violation" error when it tries (and fails) to download the filesystem.squashfs file.

It might be a long shot, but I figured someone might have run into something like this before.


The filesystem.squashfs file is essentially the clonezilla app – it's not the cloned image that is meant for storing the image to be deployed – those files are huge (in the gigs) and transferred via other means within the clonezilla app. This squashfs file is downloaded while the Linux subsystem is loading and then the clonezilla app is executed when it is finished downloading.

Best Answer

The WDS TFTP server uses Windows-style pathname separators, i.e. backslashes instead of Unix-style forward slashes.

Also pay attention to Windows Registry values ReadFilter and RootFolder in HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/WDSServer/Providers/WDSTFTP.

By default, TFTP downloads are allowed only from \boot and \tmp sub-folders of the TFTP root folder (as defined by the RootFolder registry value).

Your "fetch=tftp://$serverIP/filesystem.squashfs" translates into trying to download from <RootFolder>\filesystem.squashfs, which is not allowed by the default ReadFilter.