From f9d9b2f4d4f96f7d20f8f63002f6b13dbcfdf33b Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Thu, 21 Sep 2023 11:25:56 +0200 Subject: [PATCH] Pass split initrd as -initrd if it exists with directory image When we're booting a directory image, direct boot only works if the kernel has the virtiofs driver builtin. Since this is not the case for distribution kernels, let's make sure we pass the initrd to qemu as well if one exists so that booting straight into a virtiofs can also work with distro kernels provided an initrd is available. --- mkosi/qemu.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mkosi/qemu.py b/mkosi/qemu.py index 1d04684b7..1982f7b1f 100644 --- a/mkosi/qemu.py +++ b/mkosi/qemu.py @@ -450,12 +450,14 @@ def run_qemu(args: MkosiArgs, config: MkosiConfig, uid: int, gid: int) -> None: if config.output_format == OutputFormat.cpio: cmdline += ["-initrd", fname] - elif config.output_format == OutputFormat.uki and firmware == QemuFirmware.linux: + elif ( + firmware == QemuFirmware.linux and + config.output_format in (OutputFormat.uki, OutputFormat.directory, OutputFormat.disk) and + (config.output_dir / config.output_split_initrd).exists() + ): cmdline += ["-initrd", config.output_dir / config.output_split_initrd] - elif config.output_format == OutputFormat.disk: - if firmware == QemuFirmware.linux: - cmdline += ["-initrd", config.output_dir / config.output_split_initrd] + if config.output_format == OutputFormat.disk: cmdline += ["-drive", f"if=none,id=mkosi,file={fname},format=raw", "-device", "virtio-scsi-pci,id=scsi", "-device", f"scsi-{'cd' if config.qemu_cdrom else 'hd'},drive=mkosi,bootindex=1"] -- 2.47.2