У меня есть ISO-установка ubuntu 18.04, которая имеет В нем находится файл txt.cfg
.
файл txt.cfg
имеет 4 параметра, и файл предварительной загрузки выбирается на основе выбранной опции:
label option1
menu option1
kernel /install/vmlinuz
append file=/cdrom/option1.seed vga=788 initrd=/install/initrd.gz ...
label option2
menu option2
kernel /install/vmlinuz
append file=/cdrom/option2.seed vga=788 initrd=/install/initrd.gz ...
каждый из исходные файлы (в этом примере option1.seed
& option2.seed
) настраивает разделы по-другому, используя строку d-i partman-auto / expert_recipe
.
Вместо того, чтобы пользователю приходилось выбирать подходящий вариант разбиения на разделы, я написал сценарий bash, который в зависимости от различных параметров машины (ЦП, ОЗУ и т. Д.) Может определить, какой вариант подходит.
Как я могу запустить сценарий bash как часть файла .cfg
или где-нибудь в файле .seed
?
Я видел случаи использования di preseed / late_command
и di preseed / early_command
, но не знаю, как их использовать.
Я думаю, что txt.cfg
- это конфиг для SYSLINUX/ISOLINUX. Я не думаю, что он способен на динамические опции, которые вы ищете.
Я предлагаю использовать early_command
для копирования соответствующего рецепта в определенный путь, используемый опцией preseed expert_recipe_file
. Один и тот же файл ответов используется для всех установок, но файл рецепта может быть выбран на основе любой логики.
Например, я буду использовать опции, подобные этим, в своем файле ответов, чтобы выбрать рецепт на основе UEFI или BIOS.
d-i preseed/early_command string \
if [ -d /sys/firmware/efi/ -o -d /proc/efi ]; then \
cp /cdrom/recipe_efi /run/my_recipe ; \
else \
cp /cdrom/recipe_bios /run/my_recipe ; \
fi ;
d-i partman-auto/expert_recipe_file string /run/my_recipe