zoukankan      html  css  js  c++  java
  • https://doc.opensuse.org/projects/kiwi/doc/

    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

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

    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(有关此纲要语言的更多信息,请参见 http://www.relaxng.org)。因此建议使用支持 RELAX NG 的适当 XML 编辑器或使用 HTML 文件 /usr/share/doc/packages/kiwi/schema/kiwi.xsd.html 中关于该纲要的文档。

    该配置文件包括几个部分:

    • 关于作者的一些描述、联系信息和简短注释。

    • 逻辑扩展阶段所需的自选设置选项。

    • 关于用户的信息,其名称、用户主目录及其密码。

    • 到安装源的链接。

    • 用于定义的映像类型的包的列表。

    • 以及可以在 RELAX NG 纲要文档的 HTML 文件中查看的其他次要信息。

    以下示例显示了该文件的一个框架:

    例 17.1. KIWI 配置文件

    <image schemeversion="2.0" name="..."> 
    1
      <description type="system"> 
    2
        <author>...</author>
        <contact>...</contact>
        <specification>...</specification>
      </description>
      <preferences> 
    3
        <type primary="true" boot="..." flags="...">iso</type>
        <type boot="..." filesystem="ext3" format="vmdk">vmx</type>
        <type boot="..." filesystem="ext3">xen</type>
        <type boot="..." filesystem="squashfs" flags="unified">oem</type>
        <version>2.7.0</version>
        <size unit="M">780</size>
        <packagemanager>zypper</packagemanager>
        <rpm-check-signatures>False</rpm-check-signatures>
        <rpm-force>False</rpm-force>
        <locale>en_US.UTF-8</locale>
        <oem-swap>no</oem-swap>
        <oem-boot-title>USB</oem-boot-title>
      </preferences>
      <users group="users"> 
    4
        <user name="root" pwd="" home="/root"/>
      </users>
      <repository type="rpm-md"> 
    5
        <source path="/home/rpmdir"/>
      </repository>
      <packages type="image" patternPackageType="onlyRequired"> 
    6
        <package name="yast2-live-installer"/>
        <package name="pam"/>
        <!-- List of packages reduced -->
      </packages>

    1

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

    2

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

    3

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

    4

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

    5

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

    6

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

    有关该配置文件的更多细节在上述 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 元素中启用它:

    <repository type="...">
      <!-- Remove the comment markers in the next line -->
      <!-- <source path="/image/CDs/full-VERSION-ARCH" -->
      <source path="opensuse://openSUSE:11.0/standard"/> 
    </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。如果要使用本地安装源,请参加第 17.4.1 节以了解更多信息。

    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> 之间插入以下行并保存该文件:

      <package name="nfs-client"/>
    5. 步骤 5中所述重构建该映像。

    17.5. 更多信息

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

  • 相关阅读:
    C项目实践--贪吃蛇(2)
    Dos下同时执行多条命令简化操作
    C语言进入界面编程准备篇
    C项目实践--图书管理系统(4)
    C项目实践--图书管理系统(3)
    C项目实践--图书管理系统(1)
    C项目实践--图书管理系统(2)
    bzoj2302: [HAOI2011]Problem c
    bzoj3545: [ONTAK2010]Peaks
    loj#2537. 「PKUWC2018」Minimax
  • 原文地址:https://www.cnblogs.com/klb561/p/8964315.html
Copyright © 2011-2022 走看看