博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
https://doc.opensuse.org/projects/kiwi/doc/
阅读量:5806 次
发布时间:2019-06-18

本文共 3833 字,大约阅读时间需要 12 分钟。

KIWI 是用于创建操作系统映像的系统。映像是带有一个文件的目录,该文件包含操作系统、其应用程序与配置、操作系统的文件系统结构、可能的附加元数据,以及(取决于映像类型)磁盘几何属性和分区表数据。通过 KIWI,可以创建 LiveCD 和 LiveDVD、USB 记忆棒、用于全虚拟系统的虚拟磁盘(如 VMware)、超级管理程序中半虚拟化的 XEN 映像,以及用于从网络引导的 PXE 环境。

17.1. KIWI 的先决条件

要使用 KIWI 构建映像,您需要以下先决条件:

  1. 用于进行操作的足够可用磁盘空间。

  2. KIWI 分为若干包,用于不同映像类型。在任何情况下,均需要包 kiwi。根据目标映像的不同,需要以下包:

    映像类型

    包名称

    安装媒体

    kiwi-desc-oemboot

    虚拟化

    kiwi-desc-xenboot

    USB 记忆棒

    kiwi-desc-usbboot

    Network Client

    kiwi-desc-netboot

  3. 安装 kiwi-doc 包。您可以找到一些示例配置以了解结构及其内容。

  4. 了解 KIWI 配置文件及其结构。它基于 RELAX-NG 纲要并记录在 kiwi 包的 /usr/share/doc/packages/kiwi/kiwi.html 下。如果要从头创建配置文件或要插入元素或属性,则需要此文档。

17.2. 了解 KIWI 的构建进程

KIWI 的构建进程分为三个步骤:

  1. 物理扩展(准备).  此阶段用于准备新文件系统的内容。在该步骤中,会创建 root 目录,确定在映像中安装哪些包以及包含哪些用户配置文件。

  2. 逻辑扩展(创建).  该步骤需要准备步骤成功。逻辑扩展步骤基于第一步创建操作系统映像。

  3. 部署.  产生的映像类型可以使用不同的方法部署,如在硬盘上安装或通过虚拟系统(VMware、Qemu、VirtualBox)播放。

17.3. 映像描述

KIWI 构建映像类型需要映像描述。映像描述是一个目录,包含至少一个文件 config.xml,或者扩展名为 *.kiwi

17.3.1. 映像描述的内容

下表包含其他可选信息。但是,多数信息对于操作系统的较新功能来说是必需的:

表 17.1. 映像描述的其他文件和目录

文件/目录

描述

config/

可选子目录。包含在安装所有映像包之后执行的 Bash 脚本。

config.sh

创建物理扩展时的可选配置脚本

config.xml

每个映像描述的配置文件,在中说明

config-cdroot.tgz

存档,仅用于 ISO 映像

config-cdroot.sh

操作从 config-cdroot.tgz 解压缩的数据

config-yast-autoyast.xml

由 AutoYaST 创建的配置文件

config-yast-firstboot.xml

用于控制 YaST 首次启动服务的配置文件

images.sh

创建准备步骤时的可选配置脚本

root/

包含安装所有映像包之后更改的其他目录、特殊文件和脚本

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 配置文件

1
2
...
...
...
3
iso
vmx
xen
oem
2.7.0
780
zypper
False
False
en_US.UTF-8
no
USB
4
5
    
6

每个 KIWI 配置文件的 root 元素。每个文件都需要版本号。可以使用可选的 kiwirevision 属性指定 KIWI 的 SVN 版本。

包含必需的描述,其中包括关于此映像描述的创建者的信息、其联系地址和简短说明。

创建必需的自选设置,其中包括关于此映像版本的信息、使用的包管理器、支持的映像类型和其他设置。

可选的 users 元素包含添加到此映像的所有用户的列表。user 元素包含名称、用户主目录的路径、密码和外壳。

包含由包管理器使用的必需安装源的列表。

包含映像中的必需包列表。

有关该配置文件的更多细节在上述 HTML 页面中显示。

17.4. 使用 KIWI 创建设备

本节描述如何使用 KIWI 创建设备。设备是为特定任务特别设计的操作系统。例如,您可以创建专注于办公程序的设备。

17.4.1. 创建本地安装源

kiwi-doc 包中的示例需要有效的安装源才能创建映像。通常,这些示例可连接到一个网络资源。网络带宽越高,映像创建越快。如果网络速度不快或不希望使用网络,可创建一个本地安装源。按如下所示继续:

  1. 准备好安装 DVD。

  2. 打开外壳并转换为 root 用户。

  3. 为本地安装目录创建目录。这些示例通常使用路径 /image/CDs/full-VERSION-ARCH。使用相应的值替换占位符 VERSION 和 ARCH

  4. 装入媒体。使用相应的设备(通常是 dvdcdrom 等)替换 DRIVE

    mount -o loop /dev/DRIVE /mnt
  5. 将媒体的所有内容复制到安装目录中:

    cp -a /mnt/* /images/CDs/full-VERSION-ARCH

要使用本地安装源,只需要在 repository 元素中启用它:

17.4.2. 创建映像

映像是一个虚拟磁盘映像,包含和在实际磁盘上一样的所有分区、引导加载程序信息和包。要创建 ISO 映像,请如下操作:

  1. 安装包 kiwi 和 kiwi-doc 并解决任何依赖性。

  2. 打开外壳并转换为 root 用户。

  3. 将目录 /usr/share/doc/packages/kiwi/examples/suse-11.0/suse-oem-preload 复制到当前目录。

  4. 打开文件 config.xml 并找到元素 repository。如果要使用本地安装源,请参加以了解更多信息。

  5. 使用以下命令执行 KIWI 以准备第一个阶段(物理扩展”):

    kiwi --prepare suse-oem-preload --root oem
  6. 构建 ISO 映像:

    kiwi --create oem --type iso --destdir /tmp/myoem

17.4.3. 通过 NFS 创建预装载映像

要创建具有 NFS 功能的映像,请如下操作:

  1. 打开外壳并转换为 root 用户。

  2. 将目录 /usr/share/doc/packages/kiwi/examples/suse-11.1/suse-oem-preload 复制到当前目录。

  3. 打开文件 suse-oem-preload/config.xml 并找到属性为 type="image" 的 packages 元素。

  4. 在 <packages type="image"> 和 </packages> 之间插入以下行并保存该文件:

  5. 如中所述重构建该映像。

17.5. 更多信息

有关 KIWI 的更多信息,请参见以下文档:

  •  - KIWI 的主页

  •  - 关于 KIWI 映像系统的大量描述

转载于:https://www.cnblogs.com/klb561/p/8964315.html

你可能感兴趣的文章
HDU1576 A/B【扩展欧几里得算法】
查看>>
廖雪峰javascript教程学习记录
查看>>
WebApi系列~目录
查看>>
限制CheckBoxList控件只能单选
查看>>
Java访问文件夹中文件的递归遍历代码Demo
查看>>
项目笔记:测试类的编写
查看>>
如何迅速分析出系统CPU的瓶颈在哪里?
查看>>
通过容器编排和服务网格来改进Java微服务的可测性
查看>>
re:Invent解读:没想到你是这样的AWS
查看>>
PyTips 0x02 - Python 中的函数式编程
查看>>
阿里云安全肖力:安全基础建设是企业数字化转型的基石 ...
查看>>
使用《Deep Image Prior》来做图像复原
查看>>
如何用纯 CSS 为母亲节创作一颗像素画风格的爱心
查看>>
Linux基础命令---rmdir
查看>>
优秀程序员共有的7种优秀编程习惯
查看>>
iOS sqlite3(数据库)
查看>>
粤出"飞龙",打造新制造广东样本
查看>>
编玩边学获数千万元A轮融资,投资方为君联资本
查看>>
开发者论坛一周精粹(第五十五期) 全站HTTPS之OSS教程 一次可以备案几个网站?...
查看>>
(干货)Linux学习资源推荐
查看>>