Hi,
> As in my previous message, I'm still targeting a Leap 15.5 system due
> to other constraints but using the Leap 15.6 download repository for
> kiwi-ng (since the 15.5 repo has been removed).
ok
> Screenshot 2025-07-30 185956.png
> Apparently my udevadm doesn't support the lock command.
Wow, this is quite unexpected. When we fixed the inconsistency
caused due to missing device locking, I tested the images down
the stream of the support matrix (
https://osinside.github.io/kiwi/overview.html#system-requirements) and also tested Leap15 as I myself still
use it. The version of Leap I use is however 15.6 and not 15.5.
On 15.6 there is:
Repository : openSUSE Leap 15.6 - Updates from SUSE Linux Enterprise
Name : udev
Version : 254.25-150600.4.40.1
And you are saying the udev version on 15.5 has no lock command ?
> Failing to boot on this error does seem a bit of an overreaction?
Well not really, if you haven't experienced issues during resize,
dump or fsck when using a kiwi installation ISO it was mostly luck
as we really missed to add proper device locking to avoid inconsistencies
between udev actions and kiwi initrd code actions to happen at the same
time.
> Is this a bug,
I don't think it's a bug, but I can see the pain you are having here
> or do I need to pin an older version of the dracut
> packages somehow to avoid future incompatibilities? Is there a
> recommended way to do that if so?
* The most simple way to overcome this would be to move to 15.6
* The suggested pin to older version of the kiwi dracut module package(s)
is also a solution but that would disconnect you from future changes
* You can consider to branch off from
https://build.opensuse.org/package/show/system%3Asystemd/systemd-suse and build that for Leap 15.5. Next add the
repo to your build and this should lead to a system with an updated
systemd including udev
* There is also a "solution" in code which you could consider as
follows:
add a config.sh script (or use it if you already have one) with
the following content:
---
# mock udevadm lock...
cp /usr/bin/udevadm /usr/bin/udevadm.orig
cat >/usr/bin/udevadm <<- EOF
#!/bin/bash
test "$1" = "lock" || exec /usr/bin/udevadm.orig "$@"
EOF
chmod 755 /usr/bin/udevadm
cat >/etc/dracut.conf.d/99-mock-lock.conf <<- EOF
install_items+=" /usr/bin/udevadm.orig "
EOF
---
add a pre_disk_sync.sh script with the following content:
---
mv /usr/bin/udevadm.orig /usr/bin/udevadm
rm /etc/dracut.conf.d/99-mock-lock.conf
---
Hope this helps ?
Regards,
Marcus
--
Public Key available via:
https://keybase.io/marcus_schaefer/key.asc
keybase search marcus_schaefer
-------------------------------------------------------
Marcus Schäfer Brunnenweg 18
Tel:
+49 7562 905437 D-88260 Argenbühl
Germany
-------------------------------------------------------