如何使用Kiwi创建多种类型的镜像文件

  • Kiwi-ng是一个主要用于创建和定制Linux发行版镜像的工具。
  • 它不限于任何特定的 Linux 发行版,而是可以与各种发行版一起使用。
  • Kiwi-ng 使用称为 Kiwi 配置文件的描述性 XML 文件来定义系统配置、包选择和要应用的任何自定义。
  • 它提供了一种将系统配置、软件包和自定义组合到可启动映像文件中的方法。
  • Kiwi-ng 提供了灵活且自动化的构建流程来创建自定义 Linux 映像。 它支持不同的构建环境,例如 chroot、虚拟机和云实例。
  • 系统管理员和开发人员经常使用 Kiwi-ng 来创建用于特定目的的定制操作系统映像,例如虚拟设备、嵌入式系统或云实例。

主要功能

Kiwi NG (Next Generation) 是一个用于创建操作系统镜像的工具,Kiwi NG的主要功能包括:

  • Flexible Configuration: Kiwi使用XML文件进行配置,可以灵活地定义要包含的软件包,配置文件,引导设置等。
  • Two-Step Image Creation: Kiwi首先创建一个未打包的镜像树(包含所有文件和目录的文件系统),然后基于这个镜像树创建最终的镜像。这使得在创建最终镜像之前可以进行定制和调试。
  • Support for Multiple Profiles: 在同一配置文件中,可以定义多个配置文件,每个配置文件可以有不同的设置和软件包。
  • Integration with OBS: Kiwi可以与Open Build Service(OBS)集成,使得可以自动化构建和发布镜像。
  • Support for Multiple Architectures: Kiwi可以创建用于多种硬件架构的镜像,包括x86,x86_64,ARM,和 PowerPC等。
  • Support for Multiple Linux Distributions: Kiwi可以创建用于多种Linux发行版的镜像,包括openSUSE,SUSE Linux Enterprise,和其他基于RPM的发行版。

支持多种类型的镜像文件

它支持多种类型的镜像文件,包括但不限于:

  1. Live ISOs: 这些是可以从CD或USB驱动器引导的完整操作系统镜像。它们通常用于试用或安装操作系统。
  2. Virtual Machine Images: Kiwi可以创建用于各种虚拟化技术(如KVM,Xen,和 VMware)的镜像。
  3. Docker and OCI Images: Kiwi可以创建Docker和OCI(开放容器标准)兼容的容器镜像。
  4. Disk Images: Kiwi可以创建硬盘镜像,这些镜像可以写入物理硬盘驱动器或USB驱动器,并用作启动设备。
  5. PXE Boot Images: Kiwi可以创建用于网络引导的镜像。

Image创建过程

KIWI NG通过两步过程创建镜像:

  • 第一步,准备操作,使用config.xml配置文件中提供的信息生成所谓的未打包的镜像树(目录)(参见镜像描述)

  • 第二步,创建操作,基于未打包的镜像树和config.xml配置文件中提供的信息,创建指定格式的打包镜像或镜像。

一个简单例子(分两步走)

假设我们有一个用于SLES15 SP4 ISO镜像的基本配置。配置目录位于 /home/user/kiwi-config。

  • 准备镜像:第一步是准备镜像。这将为镜像创建一个根文件系统,安装指定的包,并应用任何指定的配置。运行以下命令:

kiwi-ng --type=iso system prepare --description=kiwi-descriptions/suse/x86_64/suse-leap-15.4 --root=/home/user/kiwi-root

这个命令告诉Kiwi使用位于 /home/user/kiwi-config 的配置来准备ISO镜像。准备好的根文件系统将在 /home/user/kiwi-root 中创建。

  • 创建镜像:准备好镜像后,你可以使用Kiwi来创建镜像。这一步将准备好的根文件系统和包打包成ISO镜像。运行以下命令:

sudo kiwi-ng --type=iso system create --root=/home/user/kiwi-root --target-dir=/home/user/kiwi-output

这个命令告诉Kiwi从位于 /home/user/kiwi-root 的准备好的根文件系统创建ISO镜像。生成的ISO镜像将被放置在 /home/user/kiwi-output 中。

更简单的例子 (一步完成)

一步构建镜像。build命令结合了kiwi的准备和创建步骤,以便通过只调用一条命令就能构建一个镜像。构建命令在/build/image-root下创建镜像的根目录,并且如果没有指定不同的话,会写入日志文件/build/image-root.log。结果镜像文件将在指定的target-dir中创建。

kiwi-ng --type=iso system build --description=kiwi-descriptions/suse/x86_64/suse-leap-15.4 --target-dir==/home/user/kiwi-output

相关推荐
liuyao_xianhui9 小时前
进程概念与进程状态_Linux
linux·运维·服务器·数据结构·c++·哈希算法·宽度优先
木雷坞9 小时前
K8s GPU 冷启动:把镜像预热从发布里拆出来
后端
炸裂狸花猫9 小时前
开源身份认证与访问管理平台 - Keycloak(二)
docker·云原生·容器·kubernetes·开源·keycloak·sso
渐儿9 小时前
Dify 插件机制详解
后端
wang09079 小时前
Linux性能优化之磁盘基础介绍
linux·运维·性能优化
渐儿9 小时前
Spring Boot 异步并发实现原理详解
后端
HalvmånEver9 小时前
MySQL的内置函数
linux·数据库·学习·mysql
来一斤小鲜肉9 小时前
Spring AI 多模态能力全景
后端·aigc
张立立9 小时前
震惊!用Python每天早上8点,我准时给女神发早安,只因这个脚本…
后端·python
渐儿9 小时前
Python 并行与并发:案例与实现
后端