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

相关推荐
遇见火星41 分钟前
Ubuntu Docker 容器化部署教程
linux·ubuntu·docker
uzong2 小时前
一次慢接口背后,竟藏着40+种可能!你中过几个
后端·面试·程序员
G探险者2 小时前
滴滴P0级故障背后:互联网公司是如何分级处理线上事故的?
后端
ybb_ymm2 小时前
mysql8在linux下的默认规则修改
linux·运维·数据库·mysql
半梦半醒*2 小时前
zabbix安装
linux·运维·前端·网络·zabbix
G探险者3 小时前
从 Tomcat 与 Jetty 的对比,聊聊影响一个服务并发能力的关键因素
后端
你的人类朋友3 小时前
“签名”这个概念是非对称加密独有的吗?
前端·后端·安全
幼稚园的山代王3 小时前
go语言了解
开发语言·后端·golang
kkjt01303 小时前
{MySQL查询性能优化索引失效的八大场景与深度解决方案}
后端
Panda__Panda3 小时前
docker项目打包演示项目(数字排序服务)
运维·javascript·python·docker·容器·c#