Skip to content

Releases: systemd/mkosi

v14

27 Oct 16:10
v14
Compare
Choose a tag to compare
  • Support for Clear Linux was dropped. See #1037 for more information.

  • Support for Photon was dropped. See #1048 for more information.

  • The Arch kernel/bootloader pacman hooks were removed. For anyone that still wants to use them, they can be found here.

  • mkosi now creates distro~release subdirectories inside the build, cache and output directories for each distro~release combination that is built. This allows building for multiple distros without throwing away the results of a previous distro build every time.

  • The preferred names for mkosi configuration files and directories are now mkosi.conf and mkosi.conf.d/ respectively. The old names (mkosi.default and mkosi.default.d) have been removed from the docs but are still supported for backwards compatibility.

  • plain_squashfs type images will now also be named with a .raw suffix.

  • tar type images will now respect the --compress option.

  • Pacman's SigLevel option was changed to use the same default value as used on Arch which is SigLevel = Required DatabaseOptional. If this results in keyring errors, you need to update the keyring by running pacman-key --populate archlinux.

  • Support for CentOS 7 was dropped. If you still need to support CentOS 7, we recommend using any mkosi version up to 13.

  • Support for BIOS/grub was dropped. because EFI hardware is widely available and legacy BIOS systems do not support the feature set to fully verify a boot chain from firmware to userland and it has become bothersome to maintain for little use.

    To generate BIOS images you can use any version of mkosi up to mkosi 13 or the new --bios-size option. This can be used to add a BIOS boot partition of the specified size on which grub (or any other bootloader) can be installed with the help of mkosi's script support (depending on your needs most likely mkosi.postinst or mkosi.finalize). This method can also be used for other EFI bootloaders that mkosi intentionally does not support.

  • mkosi now unconditionally copies the kernel, initrd and kernel cmdline from the image that were previously only copied out for Qemu boot.

  • mkosi now runs apt and dpkg on the host. As such, we now require apt and dpkg to be installed on the host along with debootstrap in order to be able to build debian/ubuntu images.

  • Split dm-verity artifacts default names have been changed to match what systemd and other tools expect: image.root.raw, image.root.verity, image.root.roothash, image.root.roothash.p7s (same for usr variants).

  • mkosi will again default to the same OS release as the host system when the host system uses the same distribution as the image that's being built.

  • By default, mkosi will now change the owner of newly created directories to SUDO_UID or PKEXEC_UID if defined, unless --no-chown is used.

  • If systemd-nspawn v252 or newer is used, bind-mounted directories with systemd-nspawn will use the new rootidmap option so files and directories created from within the container will be owned by the actual directory owner on the host.

v13

21 Jun 17:31
v13
Compare
Choose a tag to compare
  • The --network-veth option has been renamed to --netdev. The old name made sense with virtual ethernet devices, but when booting images with qemu a TUN/TAP device is used instead.
  • The network config file installed by mkosi when the --netdev (previously --network-veth) option is used (formerly
    /etc/systemd/network/80-mkosi-network-veth.network in the image) now only matches network interfaces using the virtio_net driver. Please make sure you weren't relying on this file to configure any network interfaces other than the tun/tap virtio-net interface created by mkosi when booting the image in QEMU with the --netdev option. If you were relying on this config file
    to configure other interfaces, you'll have to re-create it with the correct match and a lower initial number in the filename to make sure systemd-networkd will keep configuring your interface, e.g. via the mkosi.skeleton or mkosi.extra trees or a mkosi.postinst script.
  • The kernel-install script for building unified kernel images has been removed. From v13 onwards, on systems using kernel-install, mkosi won't automatically build new unified kernel images when a kernel is updated or installed. To keep the old behavior, you can install the kernel-install script manually via a skeleton tree; a copy can be found here.
  • New QemuKvm option configures whether to use KVM when running mkosi qemu.
  • mkosi will not default to the same OS release as the host system anymore when the host system uses the same distribution as the image that's being built. Instead, when no release is specified, mkosi will now always default to the default version embedded in mkosi itself.
  • mkosi will now use the pacman keyring from the host when building Arch images. This means that users will, on top of installing archlinux-keyring, also have to run pacman-key --init and pacman-key --populate archlinux on
    the host system to be able to build Arch images. Also, unless the package manager is configured to do it automatically, the host keyring will have to be updated after archlinux-keyring updates by running pacman-key --populate archlinux and pacman-key --updatedb.
  • Direct qemu linux boot is now supported with BootProtocols=linux. When enabled, the kernel image, initrd, and cmdline will be extracted from the image and passed to qemu by mkosi qemu to directly boot into the kernel image without a bootloader. This can be used to boot for example s390x images in qemu.
  • The initrd will now always be rebuilt after the extra trees and build artifacts have been installed into the image.
  • The github action has been migrated to Ubuntu Jammy. To migrate any jobs using the action, add runs-on: ubuntu-22.04 to the job config.
  • All images are now configured by default with the C.UTF-8 locale.
  • New --repository-directory option can be used to configure a directory with extra repository files to be used by the package manager when building an image. Note that this option is currently only supported for pacman and
    dnf-based distros.
  • Option --skeleton-tree is now supported on Debian-based distros.

v12

06 Dec 13:40
v12
Compare
Choose a tag to compare

v11

06 Dec 13:40
v11
Compare
Choose a tag to compare

v10

02 Aug 08:55
v10
Compare
Choose a tag to compare
v10
mkosi 10

v9

01 Jan 14:38
v9
Compare
Choose a tag to compare
v9

mkosi 9

v8

02 Dec 21:52
v8
Compare
Choose a tag to compare

v7

01 Dec 12:34
v7
Compare
Choose a tag to compare

v6

02 Oct 19:50
v6
Compare
Choose a tag to compare