Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Assistance with systemd-boot #2735

Open
talk2drys opened this issue Feb 11, 2025 · 3 comments
Open

Assistance with systemd-boot #2735

talk2drys opened this issue Feb 11, 2025 · 3 comments

Comments

@talk2drys
Copy link

talk2drys commented Feb 11, 2025

Hi everyone,
I'm looking for some guidance on using systemd-boot with kiwi-ng. This isn't an issue per se, but I haven't been able to get it working properly. I'm trying to create an image with two root partitions to enable an A/B upgrade strategy using systemd_boot (grub2 works fine). However, I keep encountering a "no space left to copy initramfs" error. Has anyone successfully set up a similar configuration, or does anyone have suggestions on how to resolve this?

Thanks in advance for any help!

here is the error

[ DEBUG   ]: 20:48:14 | Creating directory /var/tmp/kiwi_mount_manager.ktzj74ax/boot/efi/os
[ DEBUG   ]: 20:48:14 | Looking for cp in /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[ DEBUG   ]: 20:48:14 | EXEC: [cp /var/tmp/kiwi_mount_manager.ktzj74ax/boot/vmlinuz-5.14.0-362.24.1.el9_3.0.1.x86_64 /var/tmp/kiwi_mount_manager.ktzj74ax/boot/efi/os]
[ DEBUG   ]: 20:48:14 | Looking for cp in /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[ DEBUG   ]: 20:48:14 | EXEC: [cp /var/tmp/kiwi_mount_manager.ktzj74ax/boot/initramfs-0-rescue-8087d29f6ef14cd995ed1962df2ef5d1.img /var/tmp/kiwi_mount_manager.ktzj74ax/boot/efi/o
s]
[ DEBUG   ]: 20:48:14 | EXEC: Failed with stderr: /usr/bin/cp: error writing '/var/tmp/kiwi_mount_manager.ktzj74ax/boot/efi/os/initramfs-0-rescue-8087d29f6ef14cd995ed1962df2ef5d1.
img': No space left on device
, stdout: (no output on stdout)
[ DEBUG   ]: 20:48:14 | Looking for setfiles in /var/tmp/kiwi_mount_manager.ktzj74ax/usr/local/sbin:/var/tmp/kiwi_mount_manager.ktzj74ax/usr/local/bin:/var/tmp/kiwi_mount_manager.
ktzj74ax/usr/sbin:/var/tmp/kiwi_mount_manager.ktzj74ax/usr/bin:/var/tmp/kiwi_mount_manager.ktzj74ax/sbin:/var/tmp/kiwi_mount_manager.ktzj74ax/bin
[ INFO    ]: 20:48:14 | Processing SELinux file security contexts
[ DEBUG   ]: 20:48:14 | Looking for chroot in /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[ DEBUG   ]: 20:48:14 | EXEC: [chroot /var/tmp/kiwi_mount_manager.ktzj74ax setfiles --help]
[ DEBUG   ]: 20:48:14 | Looking for chroot in /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[ DEBUG   ]: 20:48:14 | EXEC: [chroot /var/tmp/kiwi_mount_manager.ktzj74ax setfiles -F -p -c /etc/selinux/targeted/policy/policy.33 -e /proc -e /sys -e /dev /etc/selinux/targeted/
contexts/files/file_contexts /]
[ DEBUG   ]: 20:48:20 | Looking for mountpoint in /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[ DEBUG   ]: 20:48:20 | EXEC: [mountpoint -q /var/tmp/kiwi_mount_manager.ktzj74ax/dev]
[ DEBUG   ]: 20:48:20 | Looking for umount in /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[ DEBUG   ]: 20:48:20 | EXEC: [umount /var/tmp/kiwi_mount_manager.ktzj74ax/dev]
[ DEBUG   ]: 20:48:20 | Looking for mountpoint in /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[ DEBUG   ]: 20:48:20 | EXEC: [mountpoint -q /var/tmp/kiwi_mount_manager.ktzj74ax/proc]
[ DEBUG   ]: 20:48:20 | Looking for umount in /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[ DEBUG   ]: 20:48:20 | EXEC: [umount /var/tmp/kiwi_mount_manager.ktzj74ax/proc]
[ DEBUG   ]: 20:48:20 | Looking for mountpoint in /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[ DEBUG   ]: 20:48:20 | EXEC: [mountpoint -q /var/tmp/kiwi_mount_manager.ktzj74ax/sys]
[ DEBUG   ]: 20:48:20 | Looking for umount in /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[ DEBUG   ]: 20:48:20 | EXEC: [umount /var/tmp/kiwi_mount_manager.ktzj74ax/sys]
[ DEBUG   ]: 20:48:20 | Looking for mountpoint in /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[ DEBUG   ]: 20:48:20 | EXEC: [mountpoint -q /var/tmp/kiwi_mount_manager.ktzj74ax/boot/efi]
[ DEBUG   ]: 20:48:20 | Looking for umount in /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[ DEBUG   ]: 20:48:20 | EXEC: [umount /var/tmp/kiwi_mount_manager.ktzj74ax/boot/efi]
[ DEBUG   ]: 20:48:20 | Looking for mountpoint in /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[ DEBUG   ]: 20:48:20 | EXEC: [mountpoint -q /var/tmp/kiwi_mount_manager.ktzj74ax/boot]
[ DEBUG   ]: 20:48:20 | Looking for umount in /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[ DEBUG   ]: 20:48:20 | EXEC: [umount /var/tmp/kiwi_mount_manager.ktzj74ax/boot]
[ DEBUG   ]: 20:48:20 | Looking for mountpoint in /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[ DEBUG   ]: 20:48:20 | EXEC: [mountpoint -q /var/tmp/kiwi_mount_manager.ktzj74ax]
[ DEBUG   ]: 20:48:20 | Looking for umount in /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[ DEBUG   ]: 20:48:20 | EXEC: [umount /var/tmp/kiwi_mount_manager.ktzj74ax]
[ DEBUG   ]: 20:48:20 | Looking for mountpoint in /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[ DEBUG   ]: 20:48:20 | EXEC: [mountpoint -q /var/tmp/kiwi_mount_manager.qvwq48v5]
[ DEBUG   ]: 20:48:20 | Looking for umount in /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[ DEBUG   ]: 20:48:20 | EXEC: [umount /var/tmp/kiwi_mount_manager.qvwq48v5]
[ DEBUG   ]: 20:48:20 | Looking for mountpoint in /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[ DEBUG   ]: 20:48:20 | EXEC: [mountpoint -q /var/tmp/kiwi_mount_manager.45asyd66]
[ DEBUG   ]: 20:48:20 | Looking for umount in /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[ DEBUG   ]: 20:48:20 | EXEC: [umount /var/tmp/kiwi_mount_manager.45asyd66]
[ DEBUG   ]: 20:48:20 | Looking for mountpoint in /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[ DEBUG   ]: 20:48:20 | EXEC: [mountpoint -q /var/tmp/kiwi_mount_manager.1p5puua7]
[ DEBUG   ]: 20:48:20 | Looking for umount in /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[ DEBUG   ]: 20:48:20 | EXEC: [umount /var/tmp/kiwi_mount_manager.1p5puua7]
[ INFO    ]: 20:48:20 | umount FileSystemXfs instance
[ DEBUG   ]: 20:48:20 | Looking for mountpoint in /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[ DEBUG   ]: 20:48:20 | EXEC: [mountpoint -q /var/tmp/kiwi_mount_manager.qvwq48v5]
[ INFO    ]: 20:48:20 | Cleaning up Disk instance
[ DEBUG   ]: 20:48:20 | Looking for partx in /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[ DEBUG   ]: 20:48:20 | EXEC: [partx --delete /dev/loop6]
[ DEBUG   ]: 20:48:20 | Looking for losetup in /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[ DEBUG   ]: 20:48:20 | EXEC: [losetup -d /dev/loop6]
[ ERROR   ]: 20:48:20 | KiwiCommandError: cp: stderr: /usr/bin/cp: error writing '/var/tmp/kiwi_mount_manager.ktzj74ax/boot/efi/os/initramfs-0-rescue-8087d29f6ef14cd995ed1962df2ef
5d1.img': No space left on device
, stdout: (no output on stdout)

here is my description file, in some test, i also added efipartsize and efipartition to 2GB but still i always get no space left

<?xml version="1.0" encoding="utf-8"?>
<image schemaversion="8.0" name="BaseBuild">
    <description type="system">
        <author>Daniel Temiagin</author>
        <contact>email@gmail.com</contact>
        <specification>O</specification>
    </description>
    <profiles>
        <profile name="Virtual" description="Test" import="true" />
    </profiles>
    <preferences>
        <version>0.1.0</version>
        <packagemanager>dnf4</packagemanager>
        <bootsplash-theme>charge</bootsplash-theme>
        <locale>en_US</locale>
        <keytable>us</keytable>
        <timezone>UTC</timezone>
        <rpm-check-signatures>false</rpm-check-signatures>
    </preferences>
    <preferences profiles="Virtual">
        <type image="oem" initrd_system="dracut" root_clone="1" filesystem="xfs" installpxe="false" installiso="true" firmware="uefi" 
            kernelcmdline="console=ttyS0,115200n8 net.ifnames=0 biosdevname=0" bootpartition="true" bootpartsize="2048">
            <size unit="G">20</size>
            <bootloader name="systemd_boot"></bootloader>
            <oemconfig>
                <oem-resize>false</oem-resize>
                <oem-reboot>true</oem-reboot>
                <oem-unattended>false</oem-unattended>
                <oem-device-filter>/dev/ram</oem-device-filter>
                <oem-systemsize>8192</oem-systemsize>
            </oemconfig>
        </type>
    </preferences>

    <users>
        <user
            password="secret_password"
            home="/root" name="root" groups="root" pwdformat="encrypted" />
    </users>
    <repository type="rpm-md" imageinclude="true" alias="RockyLinux9-BaseOS">
        <source path="https://download.rockylinux.org/vault/rocky/9.3/BaseOS/x86_64/os/" />
    </repository>
    <repository type="rpm-md" imageinclude="true" alias="RockyLinux9-AppStream">
        <source path="https://download.rockylinux.org/vault/rocky/9.3/AppStream/x86_64/os/" />
    </repository>
    <repository type="rpm-md" imageinclude="true" alias="RockyLinux9-CRB">
        <source path="https://download.rockylinux.org/vault/rocky/9.3/CRB/x86_64/os/" />
    </repository>
    <repository type="rpm-md" imageinclude="true" alias="RockyLinux9-Extras">
        <source path="https://download.rockylinux.org/vault/rocky/9.3/extras/x86_64/os/" />
    </repository>
    <repository type="rpm-md" imageinclude="true" alias="RockyLinux9-Devel">
        <source path="https://download.rockylinux.org/vault/rocky/9.3/devel/x86_64/os/" />
    </repository>
    <repository type="rpm-md" alias="EPEL9-Everything" imageinclude="true">
        <!-- <source path="https://ca.mirrors.cicku.me/epel/9/Everything/x86_64/" /> -->
        <source path="https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/" />
    </repository>
    <repository type="rpm-md" alias="core-infra" imageinclude="true"
        sourcetype="baseurl">
        <source path="https://dl.rockylinux.org/pub/sig/9/core/x86_64/core-infra/" />
    </repository>

    <packages type="image">
        <namedCollection name="Core" />
        <package name="syslinux"/>
        <package name="gdisk"/>
        <package name="grub2"/>
        <package name="kernel"/>
        <package name="plymouth-theme-charge"/>
        <package name="audit"/>
        <package name="dhclient"/>
        <package name="e2fsprogs"/>
        <package name="hostname"/>
        <package name="iprutils"/>
        <package name="irqbalance"/>
        <package name="kbd"/>
        <package name="kexec-tools"/>
        <package name="openssh-clients"/>
        <package name="openssh-server"/>
        <package name="parted"/>
        <package name="passwd"/>
        <package name="policycoreutils"/>
        <package name="rootfiles"/>
        <package name="rsyslog"/>
        <package name="selinux-policy-targeted"/>
        <package name="xfsprogs"/>
        <package name="iputils"/>
        <package name="lvm2"/>
        <package name="glibc-all-langpacks"/>
        <package name="vim"/>
        <package name="java-1.8.0-openjdk"/>
        
        
        <package name="systemd-networkd"/>
        <package name="systemd-resolved"/>
        <package name="systemd-timesyncd"/>
        <package name="systemd-boot"/>

        <!-- for vm -->
        <package name="qemu-guest-agent"/>
        
        <!-- kiwi dependencies -->
        <package name="dracut-kiwi-oem-repart"/>
        <package name="dracut-kiwi-oem-dump"/>

    </packages>
    <packages type="uninstall">
        <package name="firewalld" />
        <package name="NetworkManager" />
    </packages>
    <packages type="bootstrap">
        <package name="filesystem" />
        <package name="basesystem" />
        <package name="grub2-efi-x64-modules" />
        <package name="grub2-efi-x64" />
        <package name="shim-x64" arch="x86_64" />
    </packages>
</image>
@talk2drys
Copy link
Author

i have added remove different combination of this options

bootpartition="true" bootpartsize="2048" efipartsize="2048"

@talk2drys
Copy link
Author

So seems to only build when format is set to qcow2. would not build with iso type. i think i understand why, but not sure of a walkaround

@schaefi
Copy link
Collaborator

schaefi commented Feb 17, 2025

For systemd-boot everything needs to live in the ESP (EFI partition). The initrd + kernel and other data exceeds the default size that we use for this space. If you give your ESP a bigger space this should solve it. As mentioned by @talk2drys

k.type.efipartsize.attribute =
        ## For images with an EFI fat partition this attribute
        ## specifies the size in MB. If not set the min efipart
        ## size is set to 20 MB
        attribute efipartsize { xsd:nonNegativeInteger }

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants