mkosi

出自 ArchWiki

mkosi 代表 Make Operating System Image,是一个用于生成可启动的操作系统树或镜像的工具。

安装

安装 mkosimkosi-gitAUR。根据您想在操作系统树/镜像中使用的发行版,安装以下软件包

发行版 软件包
Arch arch-install-scripts
Debian debootstrap, debian-archive-keyring, apt
Ubuntu debootstrap, ubuntu-keyring, apt
Fedora dnf
OpenSUSE zypper-gitAUR
CentOS dnf-legacy-utilsAUR

基本用法

您可以通过直接运行它而不带任何参数来创建镜像

# mkosi

您可以通过参数指定选项,或者通过编辑当前文件夹中的文件来指定。

创建和启动 Debian 镜像

以下示例将创建一个可启动镜像,其中安装了最新的 Debian 版本以及 openssh-clientvim 软件包。此命令需要 mkosi 的可选依赖项 mtoolssystemd-ukify。根据镜像的不同,也可以由非特权(非 root)用户构建

$ mkosi --distribution debian --release bookworm --format disk --bootable --checksum --root-password password --package linux-image-generic,systemd,systemd-boot,systemd-sysv,udev,dbus --package openssh-client,vim --output image.raw

systemd-nspawn 可以启动生成的镜像

# systemd-nspawn --boot --image image.raw

它也可以通过 QEMU/KVM 或 systemd-vmspawn(1) 虚拟化

$ mkosi --output image.raw --qemu-smp 2 qemu

您也可以将此镜像写入 USB 驱动器并用它来启动您的计算机。

使用配置文件

可以使用配置文件 mkosi.conf 创建相同的 Debian 镜像,然后不带任何参数运行 mkosi

mkosi.conf
[Distribution]
Distribution=debian
Release=bookworm

[Output]
Format=disk
Output=image.raw

[Content]
Bootable=yes
Packages=linux-image-generic,systemd,systemd-boot,systemd-sysv,udev,dbus

         openssh-client
         vim
RootPassword=password

[Validation]
Checksum=yes

本文或章节已过时。

原因: 请参阅 [1]。(在 Talk:Mkosi 中讨论)

请参阅 bootable[死链 2024-10-12 ⓘ] 以获取更多发行版启动示例。

下载的软件包文件和临时构建文件存储在主目录缓存目录或 /var/cache/mkosi/var/tmp 中。

配置设置

设置可以指定为命令行参数,或者例如,在当前目录中名为 mkosi.conf 的文件中指定。最重要的设置是

命令行 配置文件 描述
--distribution
[Distribution]
Distribution=
要安装的发行版的名称。支持的发行版有:fedora, debian, ubuntu, arch, opensuse, mageia, centos, openmandriva, rocky, alma
--release
[Distribution]
Release=
发行版的版本:数字字符串或发行版版本名称 (bookworm, …)
--format
[Output]
Format=
要创建的镜像的格式。例如
  • directory: 普通目录
  • disk: 带有 GPT 分区表的镜像文件
  • tar: 普通目录的 tarball
--output
[Output]
Output=
镜像文件或目录的名称
--output-directory
[Output]
OutputDirectory=
镜像文件或目录(以及其他生成的工件)的位置
--bootable
[Content]
Bootable=
启用或禁用生成可启动镜像:yes, no
--package
[Content]
Packages=
要安装到镜像中的软件包列表:(多行)和/或逗号分隔列表
--root-password
[Content]
RootPassword=
初始 root 密码

用作 initramfs 生成器

Mkosi 提供了一个 kernel-install 插件来构建 initramfs,类似于 mkinitcpiodracut

为了使用它,安装 cpio 并编辑 kernel-install 配置文件

/etc/kernel/install.conf
initrd_generator=mkosi-initrd
注意: 生成的 initrd 比 mkinitcpio 生成的要大得多。

参见