如何使用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

相关推荐
姓刘的哦13 分钟前
ubuntu中使用docker
linux·ubuntu·docker
代码程序猿RIP22 分钟前
【Linux】(1)—进程概念-⑤进程调度
linux·运维
_lizhiqiang37 分钟前
联想拯救者R9000P 网卡 Realtek 8852CE Ubuntu/Mint linux 系统睡眠后,无线网卡失效
linux·运维·ubuntu·r9000p·无线网卡·8852ce
Livingbody1 小时前
Fast Whisper 语音转文本
后端
程序员岳焱1 小时前
深度剖析:Spring AI 与 LangChain4j,谁才是 Java 程序员的 AI 开发利器?
java·人工智能·后端
G探险者1 小时前
《深入理解 Nacos 集群与 Raft 协议》系列五:为什么集群未过半,系统就不可用?从 Raft 的投票机制说起
分布式·后端
G探险者1 小时前
《深入理解 Nacos 集群与 Raft 协议》系列一:为什么 Nacos 集群必须过半节点存活?从 Raft 协议说起
分布式·后端
G探险者1 小时前
《深入理解 Nacos 集群与 Raft 协议》系列四:日志复制机制:Raft 如何确保提交可靠且幂等
分布式·后端
G探险者1 小时前
《深入理解 Nacos 集群与 Raft 协议》系列三:日志对比机制:Raft 如何防止数据丢失与错误选主
分布式·后端
G探险者1 小时前
《深入理解 Nacos 集群与 Raft 协议》系列二:Raft 为什么要“选主”?选主的触发条件与机制详解
分布式·后端