0

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:

http://clonezilla.org/livepxe.php

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.

CLARIFICATION

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.

0

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.

  • I haven't had an issue downloading from subfolders - I think the real problem is the slashes - I think the tftp utility being utilized by CloneZilla (or debian or whatever it is) doesn't like them. I finally gave up and I'm just loading clonezilla from an Ubuntu box after PXE booting from the WDS server. It's kludgy, but I don't plan on doing this for very long... – Mike Nov 11 '17 at 6:41
1

I managed to resolve this issue by basing on telcoM's answer, and adding /boot/* and boot/* to the filters in HKLM\SYSTEM\CurrentControlSet\Services\WDSServer\Providers\WDSTFTP\ReadFilter.

It seems the default filters only allow references to boot and tmp with backslashes, and to allow clients to use slashes, slashes need to be explicitly allowed here.

Of course, I restarted the WDSServer service after this.

My eventual command line:

append initrd=initrd-clonezilla.img boot=live union=aufs noswap noprompt vga=788 fetch=tftp://10.0.10.23/boot/x64/clonezilla.squashfs

Note the fact that I still placed the .squashfs file in the /boot/ directory, but since Linux uses forward slashes, I still had to configure the registry to allow usage with forward slashes.

  • Sweet! Great find – Mike Jun 23 '18 at 17:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.