我正在尝试使用 iPXE 安装我的 ubuntu 服务器。我已经使用 system-config-kickstart 创建了 kickstart 文件,但一旦由安装服务器下载,解析就会失败并显示错误:
The installer failed to process the preconfiguration file from http://... The file may be corrupt
查看 /var/lib/preseed/log 时,最后一行始终是
Syntax error: unable to determine template name
这在谷歌搜索时没有提供太多帮助。
这是一个可以运行的(但不完整)的 kickstart 文件:
preseed mirror/country string manual
preseed mirror/http/hostname string 192.168.1.70
preseed mirror/http/directory string /ubuntu
preseed apt-setup/security_host string 192.168.1.70
preseed apt-setup/security_path string /ubuntu
当我添加任何其他行(例如“lang en_US”)时,就会显示所描述的错误。
显然,kickstart.cfg 文件的解释存在错误,但我看不出错误在哪里。有人知道这个问题吗?
编辑:创建配置文件时是否有任何顺序?也许问题来自于指令的顺序不正确?我担心我开始探索不太相关的想法 :/
非常感谢!
EDIT2:这是我的非工作文件:
preseed mirror/country string manual
preseed mirror/http/hostname string 192.168.1.70
preseed mirror/http/directory string /ubuntu
preseed apt-setup/security_host string 192.168.1.70
preseed apt-setup/security_path string /ubuntu
lang en_US
EDIT3:这是让客户端下载 kickstart 文件的 iPXE 说明:
:ubuntu-amd64
echo Install Ubuntu
set base-url http://$my_ip_address/
kernel ${base-url}/ubuntu/linux
initrd ${base-url}/ubuntu/initrd.gz
imgargs linux auto=true hostname=ubuntu domain=my_domain interface=eth0 preseed/url=${base-url}/ubuntu/kickstart.cfg
boot
正在下载相应文件。我怀疑在解释此 kickstart 中包含的说明时会遇到更多麻烦。
答案1
改变:
preseed/url=${base-url}/ubuntu/kickstart.cfg
进入:
ks=${base-url}/ubuntu/kickstart.cfg
启动选项preseed/url
希望找到 Preseed 配置文件,但您在这里看到的是 KickStart 配置文件。这是两个不同的系统,这就是您收到错误的原因。使用ks=
告诉系统它正在加载 ks 文件,而不是 ps 文件。
更多信息:Preseed 由 Debian 制作,因此可以自动执行 Ubuntu 安装中的几乎所有操作。KickStart 由 RedHat 制作,并且有一个项目使 Ubuntu 支持 Kickstart。这个项目非常可靠 - 大多数 Ubuntu 安装都可以使用 Kickstart 文件自动完成。但是,如果您想自动执行 Debian 安装程序完成的一些较小的操作,则需要使用 preseed。请注意,Kickstart 文件可以包含大多数预置命令,只需在这些命令前面加上“preseed”并删除“di”即可。这就是您使用类似行所做的preseed mirror/country string manual
- 这实际上是您在 kickstart 配置中调用的预置命令。希望对您有所帮助!
另外,随机说明 - 对于简单的本地 CD 镜像,您可能可以删除大多数 mirror/* 命令,而只使用 kickstart 关键字“url”,ubuntu 安装程序可以正确理解该关键字以指定安装媒体的位置。