- The
--network-vethoption 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.networkin the image) now only matches network interfaces using thevirtio_netdriver. 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--netdevoption. 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 suresystemd-networkdwill keep configuring your interface, e.g. via themkosi.skeletonormkosi.extratrees or amkosi.postinstscript. - The
kernel-installscript for building unified kernel images has been removed. From v13 onwards, on systems usingkernel-install,mkosiwon't automatically build new unified kernel images when a kernel is updated or installed. To keep the old behavior, you can install thekernel-installscript manually via a skeleton tree; a copy can be found here. - New
QemuKvmoption configures whether to use KVM when runningmkosi qemu. mkosiwill 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.mkosiwill now use thepacmankeyring from the host when building Arch images. This means that users will, on top of installingarchlinux-keyring, also have to runpacman-key --initandpacman-key --populate archlinuxon
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 afterarchlinux-keyringupdates by runningpacman-key --populate archlinuxandpacman-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 toqemubymkosi qemuto directly boot into the kernel image without a bootloader. This can be used to boot for example s390x images inqemu. - 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.04to the job config. - All images are now configured by default with the
C.UTF-8locale. - New
--repository-directoryoption 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 forpacmanand
dnf-based distros. - Option
--skeleton-treeis now supported on Debian-based distros.