我正在尝试使用此方法安装 Centos 5.5 xen domU: http://wiki.centos.org/HowTos/Xen/InstallingCentOSDomU
它建议使用本地 apache 提供的 kickstart 配置文件。我设法将其安装在物理机器上,但当我尝试在 virtualbox 实例(最新 virtualbox 上的 dom0)上安装时,anaconda 退出并显示以下错误:
Running anaconda, the CentOS system installer - please wait...
Traceback (most recent call last):
File "/usr/bin/anaconda", line 733, in ?
vncksdata = setVNCFromKickstart(opts)
File "/usr/bin/anaconda", line 277, in setVNCFromKickstart
ksparser.readKickstart(opts.ksfile)
File "/usr/lib/python2.4/site-packages/pykickstart/parser.py", line 1209, in readKickstart
self.handleCommand(lineno, args)
File "/usr/lib/python2.4/site-packages/pykickstart/parser.py", line 1069, in handleCommand
raise KickstartParseError, formatErrorMsg(lineno, msg=_("Unknown command: %s" % cmd))
pykickstart.parser.KickstartParseError: The following problem occurred on line 1 of the kickstart file:
Unknown command: <!DOCTYPE
install exited abnormally [1/1]
交互式安装成功,我成功获得了一个功能齐全的 xen vm,kickstart 文件可通过链接下载,我已禁用 Selinux。我非常确定 kickstart 文件的语法,有人能提供一些提示吗?
答案1
您的本地 apache 正在提供错误的文件,我认为它提供的是 html 文件而不是 kickstart 文件。
Unknown command: <!DOCTYPE
答案2
听起来就像您的 kickstart 文件在开头包含 DOCTYPE 声明,或者您的 Apache 服务器在将内容发送回请求时添加了它。
kickstart 文件本身应以 text/plain 形式返回。我通常用 PHP 编写 kickstart 文件,以便可以动态更改其中的值,但我使用以下标题行开始文件:
<? header('Content-type: text/plain'); ?>
当 Apache 尝试确定 MIME 类型时,这可确保无论文件扩展名是什么,都能正确返回文件。
我还要补充一点,在我的 kickstart 目录中,我Directory
也使用以下 Apache 块:
<Directory "/path/to/ks/">
Options +MultiViews -Indexes
</Directory>
然后我用扩展名命名 kickstart 文件.php
,例如,base-centos55.ks.php
然后在 PXE 启动配置中附加ks=http://xxx.xxx.xxx.xxx/path/to/ks/base-centos55.ks
以加载文件。此MultiViews
选项允许您不添加扩展名,让 Apache 确定哪些文件可用。
答案3
请注意,如果您的 kickstart 文件无法在参数中找到
ks=
,则会显示相同的错误。例如,我一直试图使用位于配置了 apache 的虚拟服务器上的 kickstart 文件,而安装程序无法解析我的虚拟网站,这是理所当然的。(使用可解析的实际 IP 有帮助)