我有一个 ubuntu 18.04 的 ISO 安装,其中有一个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 string
。
无需用户选择适合自己的分区选项,我编写了一个 bash 脚本,它可以根据机器的不同参数(CPU、RAM 等)判断哪个选项合适。
如何将 bash 脚本作为.cfg
文件的一部分或在.seed
文件的某个位置运行?
d-i preseed/late_command
我看到了和的用法,d-i preseed/early_command
但不确定如何使用它们。
答案1
我认为这txt.cfg
是一个配置系统Linux/ISOLinux。我认为它不具备您所寻找的动态选项。
我建议使用early_command
将适当的配方复制到预置选项使用的特定路径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