Open
Description
We've had this problem for a while now where kiwi image builds seem to fail in nspawn environments due to broken loop device nodes:
[ DEBUG ]: 10:01:31 | EXEC: [losetup -f --show /builddir/kiwi-build/Fedora.x86_64-42.raw]
[ DEBUG ]: 10:01:31 | Looking for systemd-id128 in /usr/bin:/bin:/usr/sbin:/sbin
[ DEBUG ]: 10:01:31 | EXEC: [systemd-id128 show]
[ DEBUG ]: 10:01:31 | Initialize gpt disk
[ DEBUG ]: 10:01:31 | Looking for sgdisk in /usr/bin:/bin:/usr/sbin:/sbin
[ DEBUG ]: 10:01:31 | EXEC: [sgdisk --zap-all /dev/loop0]
[ INFO ]: 10:01:32 | --> creating EFI CSM(legacy bios) partition
[ DEBUG ]: 10:01:32 | Looking for sgdisk in /usr/bin:/bin:/usr/sbin:/sbin
[ DEBUG ]: 10:01:32 | EXEC: [sgdisk -n 1:2048:+2M -c 1:p.legacy /dev/loop0]
[ DEBUG ]: 10:01:33 | Looking for sgdisk in /usr/bin:/bin:/usr/sbin:/sbin
[ DEBUG ]: 10:01:33 | EXEC: [sgdisk -t 1:EF02 /dev/loop0]
[ INFO ]: 10:01:34 | --> creating EFI partition
[ DEBUG ]: 10:01:34 | Looking for sgdisk in /usr/bin:/bin:/usr/sbin:/sbin
[ DEBUG ]: 10:01:34 | EXEC: [sgdisk -n 2:0:+500M -c 2:p.UEFI /dev/loop0]
[ DEBUG ]: 10:01:35 | Looking for sgdisk in /usr/bin:/bin:/usr/sbin:/sbin
[ DEBUG ]: 10:01:35 | EXEC: [sgdisk -t 2:EF00 /dev/loop0]
[ DEBUG ]: 10:01:36 | Looking for sgdisk in /usr/bin:/bin:/usr/sbin:/sbin
[ DEBUG ]: 10:01:36 | EXEC: [sgdisk --typecode 2:c12a7328f81f11d2ba4b00a0c93ec93b /dev/loop0]
[ INFO ]: 10:01:37 | --> creating boot partition [with 0 clone(s)]
[ DEBUG ]: 10:01:37 | Looking for sgdisk in /usr/bin:/bin:/usr/sbin:/sbin
[ DEBUG ]: 10:01:37 | EXEC: [sgdisk -n 3:0:+1024M -c 3:p.lxboot /dev/loop0]
[ DEBUG ]: 10:01:38 | Looking for sgdisk in /usr/bin:/bin:/usr/sbin:/sbin
[ DEBUG ]: 10:01:38 | EXEC: [sgdisk -t 3:8300 /dev/loop0]
[ DEBUG ]: 10:01:39 | Looking for sgdisk in /usr/bin:/bin:/usr/sbin:/sbin
[ DEBUG ]: 10:01:39 | EXEC: [sgdisk --typecode 3:bc13c2ff59e64262a352b275fd6f7172 /dev/loop0]
[ INFO ]: 10:01:40 | --> Using all_freeMB for the root(rw) partition if present
[ INFO ]: 10:01:40 | --> creating root partition [with 0 clone(s)]
[ DEBUG ]: 10:01:40 | Looking for sgdisk in /usr/bin:/bin:/usr/sbin:/sbin
[ DEBUG ]: 10:01:40 | EXEC: [sgdisk -n 4:0:0 -c 4:p.lxroot /dev/loop0]
[ DEBUG ]: 10:01:41 | Looking for sgdisk in /usr/bin:/bin:/usr/sbin:/sbin
[ DEBUG ]: 10:01:41 | EXEC: [sgdisk -t 4:8300 /dev/loop0]
[ DEBUG ]: 10:01:42 | Looking for sgdisk in /usr/bin:/bin:/usr/sbin:/sbin
[ DEBUG ]: 10:01:42 | EXEC: [sgdisk --typecode 4:4f68bce3e8cd4db196e7fbcaf984b709 /dev/loop0]
[ DEBUG ]: 10:01:43 | Looking for partx in /usr/bin:/bin:/usr/sbin:/sbin
[ DEBUG ]: 10:01:43 | EXEC: [partx --add /dev/loop0]
[ INFO ]: 10:01:43 | Cleaning up Disk instance
[ DEBUG ]: 10:01:43 | Looking for partx in /usr/bin:/bin:/usr/sbin:/sbin
[ DEBUG ]: 10:01:43 | EXEC: [partx --delete /dev/loop0]
[ DEBUG ]: 10:01:43 | Looking for losetup in /usr/bin:/bin:/usr/sbin:/sbin
[ DEBUG ]: 10:01:43 | EXEC: [losetup -d /dev/loop0]
[ ERROR ]: 10:01:43 | KiwiMappedDeviceError: Device /dev/loop0p1 does not exist
I've got a test case script to reproduce the issue:
#!/bin/bash -euxo pipefail
# Author: Neal Gompa
# SPDX-License-Identifier: MIT
if [ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ]; then
echo "Missing args!"
exit 1
fi
if [ -n "$1" ]; then
if [[ "$1" =~ ^[0-9][0-9]$ ]]; then
releasever="$1"
branchver="f${1}"
else
releasever="$1"
branchver="$1"
fi
fi
mock_base="mock --root fedora-${releasever}-x86_64 --no-bootstrap-image --isolation=nspawn"
kiwi_build_cmd="kiwi-ng --debug --type=${2} --profile=${3} --kiwi-file=Fedora.kiwi system build --description=/builddir/fedora-kiwi-descriptions --target-dir=/builddir/kiwi-build"
$mock_base --clean
$mock_base --init
$mock_base --install kiwi-cli kiwi-systemdeps distribution-gpg-keys git-core
$mock_base --enable-network --chroot "git clone -b ${branchver} https://pagure.io/fedora-kiwi-descriptions.git /builddir/fedora-kiwi-descriptions"
$mock_base --enable-network --chroot "$kiwi_build_cmd"
This can be invoked like so: ./kiwi-mockbuild.sh 42 oem Tiny-Disk
We've done some fixes in the past about device nodes in nspawn, but this issue is rather baffling.
Metadata
Metadata
Assignees
Labels
No labels