Skip to content

Cross build target-arch=aarch64 failed on Fedora release 40 when --rootfs btrfs is specified in command line #980

@chunfuwen

Description

@chunfuwen

- sudo podman run --rm -it --privileged --pull=newer --security-opt label=type:unconfined_t -v /var/lib/libvirt/images/output:/output  -v /var/lib/containers/storage:/var/lib/containers/storage    quay.io/centos-bootc/bootc-image-builder:latest  --type qcow2 --tls-verify=true  --config /config.json  --target-arch=aarch64  --local localhost/manifest-test  --rootfs btrfs


output failed log:

WARNING: target-arch is experimental and needs an installed 'qemu-user' package
[\] Disk image building step
[4 / 5] Pipeline image [----------------------------------------------------------------------------------->____________________] 80.00%
[6 / 13] Stage org.osbuild.mkfs.btrfs [----------------------------------------->_______________________________________________] 46.15%
Message: Finished pipeline image
2025/07/08 08:43:51 error: cannot run osbuild: error running osbuild: exit status 1
BuildLog:
starting -
Starting pipeline source org.osbuild.containers-storage
Finished module source org.osbuild.containers-storage
Finished pipeline org.osbuild.containers-storage
Starting pipeline build
Starting module org.osbuild.container-deploy
time="2025-07-08T08:41:32Z" level=info msg="Image operating system mismatch: image uses OS \"linux\"+architecture \"arm64\"+\"\", expecting one of \"linux+amd64+\\\"\\\"\""
Copying blob sha256:159348fa9cfbb75c5cb57e9fac24b9f28477412149e901bdadb909bfaeb84dad
Copying blob sha256:be52fa1dde6071b291e9b2c2da82aedb3e7f32f4328a03678e897ee05ebb0c11
...
done
Finished module org.osbuild.mkfs.ext4
Starting module org.osbuild.mkfs.btrfs
device/device (org.osbuild.loopback): loop0 acquired (locked: True)
Traceback (most recent call last):
File "/run/osbuild/bin/org.osbuild.mkfs.btrfs", line 28, in <module>
ret = main(args["devices"], args["options"])
File "/run/osbuild/bin/org.osbuild.mkfs.btrfs", line 22, in main
subprocess.run(["mkfs.btrfs", "-U", uuid] + opts + [device],
  File "/usr/lib64/python3.9/subprocess.py", line 505, in run
with Popen(*popenargs, **kwargs) as process:
File "/usr/lib64/python3.9/subprocess.py", line 951, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/lib64/python3.9/subprocess.py", line 1837, in _execute_child
raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'mkfs.btrfs'
Finished module org.osbuild.mkfs.btrfs
Finished pipeline image
manifest - failed
Output:
Failed

But actually mkfs.btrfs is installed on the host:
[root@hpe-xx-01 images]# mkfs.btrfs
btrfs-progs v6.12
See https://btrfs.readthedocs.io for more information.

usage: mkfs.btrfs [options] [<dev...>]

Create a BTRFS filesystem on a device or multiple devices

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions