SDB:KIWI Cookbook 虚拟镜像

跳转到:导航搜索
使用 VMware 格式构建虚拟机镜像。
Icon-checked.png
此过程至少在 Kiwi 版本 3.25 ( kiwi --version ) 上进行了测试



虚拟化 - 我们的第三个配方


之前的示例侧重于创建可以使用 qemu 或作为 LiveCD/DVD 运行和测试的 iso 镜像。

Kiwi 支持创建 Xen 和 VMware 虚拟镜像。Virtualbox 另一个流行的虚拟化环境支持 VMware 虚拟磁盘格式,因此您可以使用 Virtualbox 或 VMware player 来执行在此示例中创建的 VMware 镜像。

我们再次使用 openSUSE 11.1 示例作为起点。

VMware 配方

准备时间

  • 25 分钟

烹饪时间

  • 13 分钟

配料

  • 一个正在运行的 openSUSE 11.1 系统
  • 一个 openSUSE 11.1 仓库(在线、DVD 或 iso 镜像)
  • 已安装最新版本的 KIWI 工具集(至少版本 3.25)
  • 大约 8 GB 的可用磁盘空间


常规设置

  • 第一步

作为一般最佳实践,建议为不同类型的镜像在不同的目录中工作。

创建工作目录

# mkdir /tmp/myvmguest
# mkdir /tmp/myvm-root
# mkdir /tmp/myvm-image

复制用作起点的示例

# cp -a /usr/share/doc/packages/kiwi/examples/suse-11.1/suse-vm-guest/* /tmp/myvmguest
# cd /tmp/myvmguest
提示:在开始创建新镜像的过程时,您应该始终创建您的工作目录并复制您认为适合作为自己镜像基础的示例镜像描述。
  • 第二步

更改 config.xml 文件以满足您的需求,例如更改描述、添加软件包等。


用于 VMware 的 config.xml

查看 config.xml 文件 (/tmp/myvmguest/config.xml),您会注意到 preferences 元素中的 type 标签发生了重大变化。与之前对 type 标签的使用相比,使用了新的属性,并且为 VMware 镜像生成而更改了值。让我们更详细地了解 type 标签。

type 标签

我们之前示例的 config.xml 文件,LiveCD 示例,包含如下类型的元素定义

<type primary="true" boot="isoboot/suse-11.1" flags="unified">iso</type>

值 "iso" 指定此类型声明用于创建 iso 类型的镜像,即 LiveCD。Kiwi 支持从同一镜像描述创建多种镜像类型,即支持多个“type”声明。因此,我们需要一种方法来指示应该通过默认方式生成哪种类型(命令行上没有 --type 参数)。这是通过 primary 属性实现的。设置 primary="true" 将镜像类型设置为默认值。

请参阅安装 kiwi-doc 包或在线版本中找到的 KIWI Image System Cookbook (/usr/share/doc/packages/kiwi/kiwi.pdf) ,了解有关“boot”和“flags”属性的详细信息 此处

VMware 镜像的 type 元素定义如下所示

<type primary="true" filesystem="ext3" boot="vmxboot/suse-11.1" format="vmdk">vmx</type>

值 "vmx" 指定此类型声明用于创建可由 VMware 工具链使用的镜像。与 LiveCD 示例一样,将 "primary" 属性设置为 "true" 以使此镜像成为默认镜像。该镜像将使用 VMware 磁盘格式 vmdk 和 ext3 文件系统。

如果我们要使用相同的镜像描述来创建多个镜像,我们可以将多个“type”元素添加到 config.xml 文件中,如上所述。以下示例显示了如何在 config.xml 文件中指定此内容。

<preferences>
  <type primary="true" filesystem="ext3" boot="vmxboot/suse-11.1" format="vmdk" >vmx</type>
  <type boot="isoboot/suse-11.1" flags="unified" >iso</type>
</preferences>

在此示例中,VMware 镜像被视为默认镜像。因此,需要将 --type iso 命令行参数添加到 kiwi 的调用中,以触发 LiveCD 镜像的创建。请注意,指定命令行上未在 XML 中配置的类型将触发错误。

vmwareconfig 部分

在 Kiwi 创建的 VMware 镜像的 config.xml 文件中,我们需要指定 VM 本身的属性。VM 属性使用 vmwareconfig 元素指定。

VMware 需要一种所谓的客户机配置。此配置指定虚拟硬件配置文件,即硬盘驱动器、内存等。可以在 Kiwi config.xml 文件的 vmwareconfig 元素中指定 VMware 硬件配置文件。kiwi 工具链将处理该部分并生成 VMware 的适当编码,以下是一个简短示例。

<vmwareconfig memory="512">
  <vmwaredisk controller="ide" id="0"/>
</vmwareconfig>

基于此信息,Kiwi 将创建一个具有 512 MB 内存和 IDE 磁盘控制器接口的 VMware 客户机镜像,磁盘 ID 为 0。

使用 Kiwi 构建 VMware 镜像允许您有条件地包含软件包,即仅在构建 VMware 镜像时才包含的软件包。其他镜像类型也支持此功能。有关详细信息,请参阅安装 kiwi-doc 包的 KIWI Image System Cookbook (/usr/share/doc/packages/kiwi/kiwi.pdf) 或在线版本 此处。使用 "packages" 元素上的 "type" 属性可以包含条件软件包,如下所示。

<packages type="vmware">
</packages>


  • 构建 VMware 镜像

完成更改后,我们现在可以使用 Kiwi 构建我们的 VMware 虚拟机。以下命令还使用自动挂载的 DVD 作为安装源。如前所述,目标目录预计为空,否则 kiwi 工具链将出错。

  • 镜像准备
# kiwi --prepare /tmp/myvmguest --root /tmp/myvm-root --set-repo /media/SU1110.001
  • 镜像创建
# kiwi --create /tmp/myvm-root -d /tmp/myvm-image

完成 Kiwi 镜像创建过程后,您可以使用 /tmp/myvm-image 中的 .vmx 和 .vmdk 文件在 VMware player 或 Virtualbox 中运行 VM。

此外,Kiwi 还会创建一个带有 .raw 扩展名的文件(位于同一目录中)。该文件具有与物理硬盘相同的结构,并且可以与 Qemu 一起使用,在使用 VMware player 或 Virtualbox 时不需要它。

您可以使用以下命令使用 qemu 命令使用 .raw 文件

# qemu /tmp/myvm-image/suse-11.1-vm-guest.i686-1.1.2.raw -m 256
关于镜像名称和以 64 位模式构建的注意事项与之前 Cookbook Basics 中所述的注意事项相同。


如果我们将 Xen 选定为此示例的首选虚拟环境,Kiwi 将生成 Xen 特定的虚拟磁盘镜像文件,以及 .raw 文件。