mkosi commit the issue has been seen with
main
Used host distribution
KDE Linux
Used target distribution
custom
Linux kernel version used
No response
CPU architectures issue was seen on
None
Unexpected behaviour you saw
The defined initrd is not used, instead the uki build generates a new initrd (which is also dumber about what to include 😢)
Example tree at https://invent.kde.org/sitter/mkosi-uki-bug
Basically demonstrating that Initrds=default correctly generates a tiny initrd but then during assembling of the uki it generates a new initrd with extra data that were not in the initrd's tree, blowing up the size. Note build.sh.
Used mkosi config
[Distribution]
Distribution=custom
[Output]
ImageId=mkosi
Format=uki
OutputDirectory=mkosi.output
[Content]
BaseTrees=base
Initrds=default
mkosi output
+ rm -rf mkosi.output
+ dd bs=100M count=1 iflag=fullblock if=/dev/urandom of=base/usr/lib/modules/7.0.11/foo.ko
1+0 records in
1+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.350596 s, 299 MB/s
+ mkosi
‣ Distribution of your host can't be detected or isn't a supported target. Defaulting to Distribution=custom.
‣ Validating certificates and keys
‣ Syncing package manager metadata: no incremental images, no caches to preserve
‣ Syncing package manager metadata
‣ Building default-initrd image
‣ [default-initrd] Copying in base trees…
‣ [default-initrd] Installing extra packages for Custom
‣ [default-initrd] Generating hardware database
No hwdb files found, skipping.
‣ [default-initrd] Copying in extra file trees…
‣ [default-initrd] Generating system users
‣ [default-initrd] Generating volatile files
‣ [default-initrd] Applying presets…
‣ [default-initrd] Applying first boot settings
/buildroot: /etc/locale.conf written.
‣ [default-initrd] Removing files…
‣ [default-initrd] Creating cpio archive /home/me/.cache/mkosi/mkosi-workspace-0dceoa4s/staging/initrd.cpio…
‣ [default-initrd] Compressing /home/me/.cache/mkosi/mkosi-workspace-0dceoa4s/staging/initrd.cpio with zstd
‣ [default-initrd] Could not rename /home/me/.cache/mkosi/mkosi-workspace-0dceoa4s/staging/initrd.cpio.zst to /home/me/src/mkosi-uki/mkosi.output/initrd.cpio.zst as they are located on different devices, falling back to copying
‣ [default-initrd] /home/me/src/mkosi-uki/mkosi.output/initrd.cpio.zst size is 1.2K, consumes 4.0K.
‣ [default-initrd] Building main image
‣ [main] Copying in base trees…
‣ [main] Running depmod for 7.0.11
‣ [main] Generating hardware database
No hwdb files found, skipping.
‣ [main] Generating system users
‣ [main] Generating volatile files
‣ [main] Applying presets…
‣ [main] Running depmod for 7.0.11
‣ [main] Building microcode initrd
‣ [main] /usr/lib/firmware/{amd-ucode,intel-ucode} not found, not adding microcode
‣ [main] Building kernel modules initrd
‣ [main] Applying firmware include/exclude configuration
‣ [main] Creating cpio archive /home/me/.cache/mkosi/mkosi-workspace-t0terg9z/kernel-modules-7.0.11.initrd…
‣ [main] Creating cpio archive /home/me/.cache/mkosi/mkosi-workspace-t0terg9z/initrd…
‣ [main] Compressing /home/me/.cache/mkosi/mkosi-workspace-t0terg9z/initrd with zstd
‣ [main] Generating unified kernel image for kernel version 7.0.11
Wrote unsigned /work/home/me/.cache/mkosi/mkosi-workspace-t0terg9z/staging/mkosi.efi
‣ [main] Could not rename /home/me/.cache/mkosi/mkosi-workspace-t0terg9z/staging/mkosi.vmlinuz to /home/me/src/mkosi-uki/mkosi.output/mkosi.vmlinuz as they are located on different devices, falling back to copying
‣ [main] Could not rename /home/me/.cache/mkosi/mkosi-workspace-t0terg9z/staging/mkosi.initrd to /home/me/src/mkosi-uki/mkosi.output/mkosi.initrd as they are located on different devices, falling back to copying
‣ [main] Could not rename /home/me/.cache/mkosi/mkosi-workspace-t0terg9z/staging/mkosi.efi to /home/me/src/mkosi-uki/mkosi.output/mkosi.efi as they are located on different devices, falling back to copying
‣ [main] /home/me/src/mkosi-uki/mkosi.output/mkosi.efi size is 138.6M, consumes 138.6M.
mkosi commit the issue has been seen with
main
Used host distribution
KDE Linux
Used target distribution
custom
Linux kernel version used
No response
CPU architectures issue was seen on
None
Unexpected behaviour you saw
The defined initrd is not used, instead the uki build generates a new initrd (which is also dumber about what to include 😢)
Example tree at https://invent.kde.org/sitter/mkosi-uki-bug
Basically demonstrating that Initrds=default correctly generates a tiny initrd but then during assembling of the uki it generates a new initrd with extra data that were not in the initrd's tree, blowing up the size. Note build.sh.
Used mkosi config
mkosi output