我正在使用 KIWI 构建 SuSE ( SLES 11 SP1 ) 设备,并正在寻找一种在其中执行无人值守安装的方法。此外,我需要根据硬件(磁盘数量、容量等)进行分区。
我遇到了 SuSE 的 AutoYaST 功能,该功能表明我可以将安装说明放在生成的 ISO 中的 xml 文件(称为 autoyast 配置文件)中。此外,我需要一个位置来放置我的分区脚本(可能使用fdisk命令)。http://doc.opensuse.org/projects/YaST/openSUSE10.3/autoinstall/createprofile.scripts.html上的 SuSE 文档 清楚地表明,使用 SUSE Linux 10.0 和所有以下版本,可以使用 fdisk 在您的脚本
我读到它可以在以下情况下完成:
- xml 文件autoinst.xml放在 cd 的根目录下。
- 脚本(在这种情况下称为前脚本)嵌入在 xml 文件中
- 从 cd 启动时,给出了启动参数autoyast=file:///autoinst.xml。
我的 autoinst.xml 文件如下所示:
<?xml version="1.0"?>
<!DOCTYPE profile>
<profile xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns">
<scripts>
<pre-scripts config:type="list">
<script>
<filename>pre.sh</filename>
<interpreter>shell</interpreter>
<feedback config:type="boolean">true</feedback>
<source><![CDATA[
#!/bin/sh
touch /root/pre-output
echo "Running pre-install script" > /root/pre-output
fdisk -l >>/root/pre-output
]]>
</source>
</script>
</pre-scripts>
</scripts>
</profile>
如您所见,该脚本的意思是生成可以轻松验证的输出。但这并没有发生。我在设备中包含了包autoyast2和autoyast2-installation。在使用指定的引导参数引导时,我被带到一个错误屏幕,上面写着“调用 YaST 模块 'inst_netprobe' 失败” 错误中提到的日志 (/var/log/YaST2/y2log) 不好。他们只是说调用模块inst_netprobe失败。
选择 NEXT 后,安装正常进行,并在登录提示符处结束。登录后,我没有看到预脚本要产生的任何更改,这表明它没有被调用。
有人可以指出我是否遗漏了什么?
- 我是否缺少与 AutoYaST 相关的软件包?
- 我的位置(ISO 上的“/”)是否适合放置我的 xml 文件?
- xml 文件的格式是否正确或缺少某些内容?我从上面提供的文档链接末尾给出的示例中获取了这个示例。
- 调用方式是否正确?(给autoyast=file:///autoinst.xml)?
另外,如果有人在 SLES 11 上使用 AutoYaST 完成了自动安装,您能否分享一些指示?