在 debian-installer 期间操作 preseed 选项

在 debian-installer 期间操作 preseed 选项

目前我正在尝试构建一个或多或少动态的预置。这意味着我正在创建自定义模板/问题,并根据答案我想设置特定的“di”选项。我的环境是 ubuntu/debian,使用 debian-installer。

这些是使用以下命令执行的: d-i preseed/early_command string wget -qO preseed_early_command.sh http://myurl/preseed/server/bionic/preseed_early_command.sh && sh preseed_early_command.sh

根据语言选择,我尝试使用设置特定选项debconf-set,看起来它们已被识别,但early_command完成后我仍然收到语言对话框(尽管所有设置值都按照提出的问题正确设置)

if [ "$(debconf-get language-select/select)" = "German" ]; then
    debconf-set debian-installer/language "de"
    debconf-set debian-installer/country "DE"
    debconf-set debian-installer/locale "de_DE.UTF-8"
    debconf-set console-setup/ask_detect false
    debconf-set keyboard-configuration/layoutcode "de"
    debconf-set keyboard-configuration/variantcode "nodeadkeys"
fi

尽管已设置,如何防止安装人员再次询问我问题?是否有可能以我想要的方式操纵预置?

根据机器类型选择(即桌面/无头),我想设置taskel/pkgsel选项。但无论我是尝试直接运行它们还是使用它们,它们总是会失败并出现错误debconf-set

if [ "$(debconf-get machine-type/select)" = "Ubuntu Desktop" ]; then
    debconf-set tasksel/first multiselect ubuntu-desktop
    debconf-set pkgsel/include openssh-server build-essential nano vim hardinfo htop remmina bash-completion dkms dialog
elif [ "$(debconf-get machine-type/select)" = "Ubuntu Headless" ]; then
    debconf-set tasksel/first multiselect standard
    debconf-set pkgsel/include "openssh-server nano vim htop bash-completion ntp"
fi

如何执行/评估“pkgsel/tasksel”选项? Tasksel 在现阶段似乎不可用,因为 busybox 会抛出异常not found

答案1

此答案仅试图涵盖所提出的两个问题中的第一个问题。

debian-installer 中debconf-set有一个简短的 shell 脚本,它只是源代码配置模块(3)并打电话db_set $1 $2。更有用的命令是debconf-set-selectionswhich,可以理解为debconf-设置-选择(1),采用与预置文件格式相同的文件作为其参数。据说它也应该接受标准输入上的数据,但我没能成功地让它在 debian-installer 环境中工作。

例如:

VALUES=`mktemp`
cat > "${VALUES}" << END_OF_DEBCONF
d-i time/zone string Antarctica/Troll
END_OF_DEBCONF
debconf-get-selections "${VALUES}"

还。仅仅preseed/run使用脚本可能比使用preseed/early_command.

相关内容