KIWI 是用于创建操作系统映像的系统。映像是带有一个文件的目录,该文件包含操作系统、其应用程序与配置、操作系统的文件系统结构、可能的附加元数据,以及(取决于映像类型)磁盘几何属性和分区表数据。通过 KIWI,可以创建 LiveCD 和 LiveDVD、USB 记忆棒、用于全虚拟系统的虚拟磁盘(如 VMware)、超级管理程序中半虚拟化的 XEN 映像,以及用于从网络引导的 PXE 环境。
17.1. KIWI 的先决条件
要使用 KIWI 构建映像,您需要以下先决条件:
-
用于进行操作的足够可用磁盘空间。
-
KIWI 分为若干包,用于不同映像类型。在任何情况下,均需要包
kiwi
。根据目标映像的不同,需要以下包:映像类型
包名称
安装媒体
kiwi-desc-oemboot
虚拟化
kiwi-desc-xenboot
USB 记忆棒
kiwi-desc-usbboot
Network Client
kiwi-desc-netboot
-
安装
kiwi-doc
包。您可以找到一些示例配置以了解结构及其内容。 -
了解 KIWI 配置文件及其结构。它基于 RELAX-NG 纲要并记录在
kiwi
包的/usr/share/doc/packages/kiwi/kiwi.html
下。如果要从头创建配置文件或要插入元素或属性,则需要此文档。
17.2. 了解 KIWI 的构建进程
KIWI 的构建进程分为三个步骤:
-
物理扩展(准备). 此阶段用于准备新文件系统的内容。在该步骤中,会创建 root 目录,确定在映像中安装哪些包以及包含哪些用户配置文件。
-
逻辑扩展(创建). 该步骤需要准备步骤成功。逻辑扩展步骤基于第一步创建操作系统映像。
-
部署. 产生的映像类型可以使用不同的方法部署,如在硬盘上安装或通过虚拟系统(VMware、Qemu、VirtualBox)播放。
17.3. 映像描述
KIWI 构建映像类型需要映像描述。映像描述是一个目录,包含至少一个文件 config.xml
,或者扩展名为 *.kiwi
。
17.3.1. 映像描述的内容
下表包含其他可选信息。但是,多数信息对于操作系统的较新功能来说是必需的:
表 17.1. 映像描述的其他文件和目录
文件/目录 | 描述 |
---|---|
| 可选子目录。包含在安装所有映像包之后执行的 Bash 脚本。 |
| 创建物理扩展时的可选配置脚本 |
| 每个映像描述的配置文件,在中说明 |
| 存档,仅用于 ISO 映像 |
| 操作从 |
| 由 AutoYaST 创建的配置文件 |
| 用于控制 YaST 首次启动服务的配置文件 |
| 创建准备步骤时的可选配置脚本 |
| 包含安装所有映像包之后更改的其他目录、特殊文件和脚本 |
17.3.2. config.xml
文件
关于映像描述的所有信息储存在中心配置 XML 文件 config.xml
中。每次执行 KIWI 时,会对照 RELAX NG 纲要验证 config.xml
(有关此纲要语言的更多信息,请参见 )。因此建议使用支持 RELAX NG 的适当 XML 编辑器或使用 HTML 文件 /usr/share/doc/packages/kiwi/schema/kiwi.xsd.html
中关于该纲要的文档。
该配置文件包括几个部分:
-
关于作者的一些描述、联系信息和简短注释。
-
逻辑扩展阶段所需的自选设置选项。
-
关于用户的信息,其名称、用户主目录及其密码。
-
到安装源的链接。
-
用于定义的映像类型的包的列表。
-
以及可以在 RELAX NG 纲要文档的 HTML 文件中查看的其他次要信息。
以下示例显示了该文件的一个框架:
例 17.1. KIWI 配置文件
... ... ...
iso vmx xen oem 2.7.0 780 zypper False False en_US.UTF-8 no USB
每个 KIWI 配置文件的 root 元素。每个文件都需要版本号。可以使用可选的 | |
包含必需的描述,其中包括关于此映像描述的创建者的信息、其联系地址和简短说明。 | |
创建必需的自选设置,其中包括关于此映像版本的信息、使用的包管理器、支持的映像类型和其他设置。 | |
可选的 | |
包含由包管理器使用的必需安装源的列表。 | |
包含映像中的必需包列表。 |
有关该配置文件的更多细节在上述 HTML 页面中显示。
17.4. 使用 KIWI 创建设备
本节描述如何使用 KIWI 创建设备。设备是为特定任务特别设计的操作系统。例如,您可以创建专注于办公程序的设备。
17.4.1. 创建本地安装源
kiwi-doc
包中的示例需要有效的安装源才能创建映像。通常,这些示例可连接到一个网络资源。网络带宽越高,映像创建越快。如果网络速度不快或不希望使用网络,可创建一个本地安装源。按如下所示继续:
-
准备好安装 DVD。
-
打开外壳并转换为
root
用户。 -
为本地安装目录创建目录。这些示例通常使用路径
/image/CDs/full-
。使用相应的值替换占位符 VERSION 和 ARCH。VERSION
-ARCH
-
装入媒体。使用相应的设备(通常是
dvd
、cdrom
等)替换 DRIVE:mount -o loop /dev/DRIVE /mnt
-
将媒体的所有内容复制到安装目录中:
cp -a /mnt/* /images/CDs/full-VERSION-ARCH
要使用本地安装源,只需要在 repository
元素中启用它:
17.4.2. 创建映像
映像是一个虚拟磁盘映像,包含和在实际磁盘上一样的所有分区、引导加载程序信息和包。要创建 ISO 映像,请如下操作:
-
安装包
kiwi
和kiwi-doc
并解决任何依赖性。 -
打开外壳并转换为
root
用户。 -
将目录
/usr/share/doc/packages/kiwi/examples/suse-11.0/suse-oem-preload
复制到当前目录。 -
打开文件
config.xml
并找到元素repository
。如果要使用本地安装源,请参加以了解更多信息。 -
使用以下命令执行 KIWI 以准备第一个阶段(“物理扩展”):
kiwi --prepare suse-oem-preload --root oem
-
构建 ISO 映像:
kiwi --create oem --type iso --destdir /tmp/myoem
17.4.3. 通过 NFS 创建预装载映像
要创建具有 NFS 功能的映像,请如下操作:
-
打开外壳并转换为
root
用户。 -
将目录
/usr/share/doc/packages/kiwi/examples/suse-11.1/suse-oem-preload
复制到当前目录。 -
打开文件
suse-oem-preload/config.xml
并找到属性为type="image"
的packages
元素。 -
在
<packages type="image">
和</packages>
之间插入以下行并保存该文件: -
如中所述重构建该映像。
17.5. 更多信息
有关 KIWI 的更多信息,请参见以下文档:
-
- KIWI 的主页
-
- 关于 KIWI 映像系统的大量描述