from mkosi.manifest import Manifest
from mkosi.mounts import dissect_and_mount, mount_overlay, scandir_recursive
from mkosi.pager import page
-from mkosi.qemu import machine_cid, run_qemu
+from mkosi.qemu import grow_image, machine_cid, run_qemu
from mkosi.remove import unlink_try_hard
from mkosi.run import become_root, fork_and_wait, run, run_workspace_command, spawn
from mkosi.state import MkosiState
cmdline += ["--"]
cmdline += args.cmdline
+ if config.output_format == OutputFormat.disk:
+ grow_image(config.output_dir / config.output, size="8G")
+
with acl_toggle_boot(config):
run(cmdline, stdin=sys.stdin, stdout=sys.stdout, env=os.environ, log=False)
if build and args.auto_bump:
bump_image_version()
- # Give disk images some space to play around with if we're booting one.
- if args.verb in (Verb.shell, Verb.boot, Verb.qemu) and last.output_format == OutputFormat.disk:
- run(["systemd-repart", "--definitions", "", "--size", "8G", "--pretty", "no", last.output_dir / last.output])
-
with prepend_to_environ_path(last.extra_search_paths):
if args.verb in (Verb.shell, Verb.boot):
run_shell(args, last)
yield f"vsock:{socket.VMADDR_CID_HOST}:{vsock.getsockname()[1]}", messages
+def grow_image(image: Path, *, size: str) -> None:
+ run(["systemd-repart", "--definitions", "", "--size", size, "--pretty", "no", image])
+
+
def run_qemu(args: MkosiArgs, config: MkosiConfig) -> None:
accel = "tcg"
if config.qemu_kvm == ConfigFeature.enabled or (config.qemu_kvm == ConfigFeature.auto and qemu_check_kvm_support()):
else:
fname = config.output_dir / config.output
+ if config.output_format == OutputFormat.disk:
+ grow_image(fname, size="8G")
+
# Debian images fail to boot with virtio-scsi, see: https://github.com/systemd/mkosi/issues/725
if config.output_format == OutputFormat.cpio:
kernel = config.output_dir / config.output_split_kernel