Невозможно 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" означает попытку загрузки из
Мне удалось решить эту проблему, основываясь на ответе 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 использует прямые косые черты, мне все равно пришлось настроить реестр, чтобы разрешить использование с прямыми косыми чертами.