Невозможно TFTP клонировать файлы с TFTP-сервера WDS во время загрузки PXE

Я установил Windows Deployment Server и изменил свое загрузочное меню PXE, чтобы я мог загружать разные ядра (что работает). Сейчас я пытаюсь настроить CloneZilla также на загрузку PXE, но я не могу заставить корректно работать часть TFTP. Вот код загрузочного меню clonezilla:

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

где $ server IP - это IP-адрес моего TFTP-сервера - отсюда:

http://clonezilla.org/livepxe.php

Все отлично работает, за исключением оператора fetch в конце строки APPEND. Он будет работать, когда я попытаюсь подключиться к другому TFTP-серверу (SolarWinds), но я не могу получить его для загрузки с TDS-сервера WDS, который, как я знаю, работает, потому что WDS полагается на него. Я могу использовать TFTP-клиент для доступа к WDS TFTP-серверу, но всякий раз, когда я пытаюсь сделать это с помощью clonezilla, он выдает ошибку "Нарушение доступа", когда он пытается (и не может) загрузить файл filesystem.squashfs.

Это может быть длинный выстрел, но я подумал, что кто-то мог столкнуться с чем-то подобным раньше.

ПОЯСНЕНИЯ

Файл filesystem.squashfs, по сути, является приложением clonezilla - это не клонированный образ, предназначенный для хранения развертываемого образа - эти файлы огромны (на концертах) и передаются с помощью других средств в приложении clonezilla. Этот файл squashfs загружается во время загрузки подсистемы Linux, а затем приложение clonezilla выполняется после завершения загрузки.

2 ответа

Решение

TDS-сервер WDS использует разделители имен в стиле Windows, то есть обратные косые черты вместо прямых косых черт в стиле Unix.

Также обратите внимание на значения реестра Windows ReadFilter и RootFolder в HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/WDSServer/Providers/WDSTFTP.

По умолчанию загрузка TFTP разрешена только из подпапок \boot и \tmp корневой папки TFTP (как определено значением реестра RootFolder).

Ваш "fetch=tftp://$serverIP/filesystem.squashfs" означает попытку загрузки из \filesystem.squashfs, что не разрешено по умолчанию для ReadFilter.

Мне удалось решить эту проблему, основываясь на ответе TelcoM и добавив /boot/* а также boot/* к фильтрам в HKLM\SYSTEM\CurrentControlSet\Services\WDSServer\Providers\WDSTFTP\ReadFilter,

Кажется, фильтры по умолчанию разрешают только ссылки на boot и tmp с обратными слешами, и чтобы разрешить клиентам использовать слэши, слэши должны быть явно разрешены здесь.

Конечно, я перезапустил WDSServer сервис после этого.

Моя возможная командная строка:

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

Обратите внимание на тот факт, что я все еще поместил файл.squashfs в каталог /boot/, но, поскольку Linux использует прямые косые черты, мне все равно пришлось настроить реестр, чтобы разрешить использование с прямыми косыми чертами.

Другие вопросы по тегам