Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 944499 - sys-kernel/genkernel-4.3.16: lvm2 built by genkernel includes udev rule that causes boot error on systems without systemd
Summary: sys-kernel/genkernel-4.3.16: lvm2 built by genkernel includes udev rule that ...
Status: UNCONFIRMED
Alias: None
Product: Gentoo Hosted Projects
Classification: Unclassified
Component: genkernel (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Gentoo Genkernel Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-11-22 17:47 UTC by Dan Moulding
Modified: 2025-01-06 03:05 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dan Moulding 2024-11-22 17:47:30 UTC
With stabilization of genkernel-4.3.16, my system was upgraded from genkernel-4.3.10. It looks like that upgrade included an upgrade of lvm2 used by genkernel. The new lvm2 seems to include a udev rule that causes errors when booting on system that doesn't have systemd:

# dmesg
...
[   28.325386] udevd[2061]: failed to execute '/usr/bin/systemd-run' '/usr/bin/systemd-run --no-block --property DefaultDependencies=no --unit lvm-activate-nvme /usr/sbin/lvm vgchange -aay --autoactivation event nvme': No such file or directory

After doing some digging around I found that the udev rule that is trying to run systemd-run was built into the initramfs at /usr/lib/udev/rules.d/69-dm-lvm.rules. That file is part of LVM2. The ebuild for sys-fs/lvm2 includes a patch that replaces that rule for systems that don't have systemd. Looks like genkernel probably needs to apply a corresponding patch when building lvm2 (at least when building on a system that doesn't have systemd).
Comment 1 Larry the Git Cow gentoo-dev 2024-11-25 17:31:23 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=21da5b2fe83a113d2ea29919fb472ac29f7057e5

commit 21da5b2fe83a113d2ea29919fb472ac29f7057e5
Author:     Ben Kohler <bkohler@gentoo.org>
AuthorDate: 2024-11-25 17:04:24 +0000
Commit:     Ben Kohler <bkohler@gentoo.org>
CommitDate: 2024-11-25 17:31:08 +0000

    sys-kernel/genkernel: revbump for several fixes
    
    Fixes globbing bug, adds musl patches, and fixes lvm2 build for
    non-systemd users.
    
    Bug: https://bugs.gentoo.org/944499
    Bug: https://bugs.gentoo.org/932907
    Bug: https://bugs.gentoo.org/934773
    Signed-off-by: Ben Kohler <bkohler@gentoo.org>

 sys-kernel/genkernel/Manifest                      |   1 +
 .../genkernel-4.3.16-globbing-workaround.patch     |  19 ++
 .../genkernel/files/genkernel-4.3.16-musl.patch    | 297 +++++++++++++++++++++
 .../files/genkernel-4.3.16-posix-shell.patch       |  38 +++
 .../lvm2-2.03.20-dm_lvm_rules_no_systemd.patch     |  11 +
 sys-kernel/genkernel/genkernel-4.3.16-r1.ebuild    | 291 ++++++++++++++++++++
 sys-kernel/genkernel/genkernel-9999.ebuild         |  13 +-
 7 files changed, 668 insertions(+), 2 deletions(-)
Comment 2 Marek Duranik 2024-11-28 10:01:15 UTC
I have same issue on my Gentto:
installed is sys-kernel/genkernel-4.3.16-r2

problem is not only same error messages: 
[    3.979142] udevd[2401]: failed to execute '/usr/bin/systemd-run' '/usr/bin/systemd-run --no-block --property DefaultDependencies=no --unit lvm-activate-system /usr/sbin/lvm vgchange -aay --autoactivation event system': No such file or directory
[    4.002315] udevd[2402]: failed to execute '/usr/bin/systemd-run' '/usr/bin/systemd-run --no-block --property DefaultDependencies=no --unit lvm-activate-data02 /usr/sbin/lvm vgchange -aay --autoactivation event data02': No such file or directory
[    4.002376] udevd[2403]: failed to execute '/usr/bin/systemd-run' '/usr/bin/systemd-run --no-block --property DefaultDependencies=no --unit lvm-activate-kvm-storage /usr/sbin/lvm vgchange -aay --autoactivation event kvm-storage': No such file or directory
[    4.002417] udevd[2404]: failed to execute '/usr/bin/systemd-run' '/usr/bin/systemd-run --no-block --property DefaultDependencies=no --unit lvm-activate-data01 /usr/sbin/lvm vgchange -aay --autoactivation event data01': No such file or directory

Main problem is that root and usr is mounted not as lvm devices but as dm-5 and dm-8. I can extend mentioned volumes with command lvextend because dm-X

/dev/dm-5                     15G  133M   14G   1% /
/dev/dm-8                     20G   15G  3.6G  81% /usr

other lvm devices are mounted correct:

/dev/mapper/system-home       30G  4.2G   24G  15% /home
/dev/mapper/system-opt        12G  7.4G  3.9G  66% /opt
tmpfs                         63G   15M   63G   1% /tmp
/dev/mapper/system-portage    15G  1.9G   13G  14% /usr/portage
/dev/mapper/system-src        20G   13G  5.8G  69% /usr/src
/dev/mapper/system-var        25G  2.1G   22G   9% /var
/dev/mapper/data01-volume01  492G  391G   81G  83% /volume01
/dev/mapper/data02-volume02  938G  526G  365G  60% /volume02
/dev/mapper/system-docker     30G   17G   11G  61% /var/lib/docker


I tried extract kernel image and command systemd-run missing there:

pc-marek1 ~/test # file /boot/initramfs-6.12.1-gentoo-x86_64.img
/boot/initramfs-6.12.1-gentoo-x86_64.img: XZ compressed data, checksum NONE

pc-marek1 ~/test # xzcat /boot/initramfs-6.12.1-gentoo-x86_64.img | cpio -idm

pc-marek1 ~/test # find . | grep systemd-run
pc-marek1 ~/test #

genkernel command a use with these options:

genkernel --oldconfig --lvm --mdadm all
Comment 3 Marek Duranik 2024-11-28 10:07:53 UTC
pc-marek1 /usr/portage/sys-kernel/genkernel # lvresize -r -L +1G /dev/mapper/system-root 
  LV /dev/mapper/system-root mounted at / may have been renamed (from /dev/dm-5).
  File system resizing not supported: fs utilities do not support renamed devices.
Comment 4 Marek Duranik 2024-11-28 16:14:04 UTC
I don't see any edit button there for modify of my comment:

I forgot write that i use systemd.

I tried add to kernel image missing command /usr/bin/systemd-run and dependence(libraries) via genkernel overlay, but problem persist. Root and usr lvm volumes are mounted incorrect ad dm-X devices.
Comment 5 Maciej Barć gentoo-dev 2024-11-28 18:57:11 UTC
I had the same situation as the bug reporter.
I updated from 4.3.16 -> 4.3.16-r2 and *that* error is gone but there is still something strange about udev. Now im getting this error from udev: 
failed to execute '/usr/lib/udev/dmi_memory_id' 'dmi_memory_id': No such file or directory

Full log: 

> daemon:err   : 2024-11-28T19:43:31,175411+01:00 udevd[1417]: failed to execute '/usr/lib/udev/dmi_memory_id' 'dmi_memory_id': No such file or directory
> daemon:err   : 2024-11-28T19:43:32,657565+01:00 udevd[1429]: failed to execute '/usr/lib/udev/fido_id' 'fido_id': No such file or directory
> <SNIP: 7 same lines>
> kern  :warn  : 2024-11-28T19:43:45,693212+01:00 printk: udevd: 4 output lines suppressed due to ratelimiting

On my system I do *not* have dmi_memory_id but I *do* have fido_id.
Comment 6 Marek Duranik 2024-11-28 19:16:44 UTC
same issue with udev:

[    4.195212] udevd[2901]: failed to execute '/usr/bin/systemd-run' '/usr/bin/systemd-run --no-block --property DefaultDependencies=no --unit lvm-activate-data02 /usr/sbin/lvm vgchange -aay --autoactivation event data02': No such file or directory

[    4.947678] udevd[2910]: failed to execute '/usr/lib/udev/fido_id' 'fido_id': No such file or directory

[    3.599724] udevd[2842]: failed to execute '/usr/lib/udev/dmi_memory_id' 'dmi_memory_id': No such file or directory

After extracted kernel image initramfs-6.12.1-gentoo-x86_64.img
i tried find reported files:

sytemd-run missing

other exist
pc-marek1 ~/test # ll ./usr/sbin/lvm
-rwxr-xr-x 1 root root 3481560 Nov 28 15:36 ./usr/sbin/lvm
pc-marek1 ~/test # ll ./usr/lib/udev/dmi_memory_id
-rwxr-xr-x 1 root root 129920 Nov 28 15:36 ./usr/lib/udev/dmi_memory_id
pc-marek1 ~/test # ll ./usr/lib/udev/fido_id
-rwxr-xr-x 1 root root 116584 Nov 28 15:36 ./usr/lib/udev/fido_id
Comment 7 Marek Duranik 2024-11-28 20:08:13 UTC
command: 
dracut --force --add systemd --add lvm /boot/initramfs-$(uname -r).img $(uname -r)

fixed all my trouble with udev and mainly with mount of root and usr:

pc-marek1 ~ # df -h
Filesystem                   Size  Used Avail Use% Mounted on
/dev/mapper/system-root       15G  156M   14G   2% /
/dev/mapper/system-usr        21G   15G  4.6G  77% /usr

all messages udev messages "No such file or directory" disappear
Comment 8 Dmitriy Baranov 2024-12-29 21:15:42 UTC
The new patch files/lvm2-2.03.20-dm_lvm_rules_no_systemd.patch causes the new problem: https://bugs.gentoo.org/947185 (solution included).
Comment 9 Larry the Git Cow gentoo-dev 2024-12-30 17:05:03 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d4ab3bc5f20c6e5940e5677c0ee5f5ae1ef90366

commit d4ab3bc5f20c6e5940e5677c0ee5f5ae1ef90366
Author:     Ben Kohler <bkohler@gentoo.org>
AuthorDate: 2024-12-30 16:13:15 +0000
Commit:     Ben Kohler <bkohler@gentoo.org>
CommitDate: 2024-12-30 16:17:42 +0000

    sys-kernel/genkernel: adjust lvm2 "no systemd" patch
    
    Bug: https://bugs.gentoo.org/947185
    Bug: https://bugs.gentoo.org/944499
    Signed-off-by: Ben Kohler <bkohler@gentoo.org>

 .../lvm2-2.03.20-dm_lvm_rules_no_systemd_v2.patch  |  11 +
 sys-kernel/genkernel/genkernel-4.3.16-r3.ebuild    | 291 +++++++++++++++++++++
 2 files changed, 302 insertions(+)
Comment 10 Marek Duranik 2024-12-30 18:24:45 UTC
I tried to compile kernel with new genkernel, but problem with dm persist:

[ebuild   R    ] sys-kernel/genkernel-4.3.16-r3::gentoo  USE="firmware systemd (-ibm)" PYTHON_SINGLE_TARGET="python3_12 -python3_10 -python3_11" 0 KiB

pc-marek1 ~ # df -h
/dev/dm-4                     15G  157M   14G   2% /
/dev/dm-7                     22G   18G  2.8G  87% /usr
/dev/mapper/system-home       30G  5.0G   23G  18% /home
/dev/mapper/system-opt        12G  7.8G  3.5G  70% /opt
/dev/mapper/system-portage    15G  9.7G  4.3G  70% /usr/portage
/dev/mapper/system-src        20G   14G  4.7G  75% /usr/src
/dev/mapper/system-var        25G  3.9G   20G  17% /var
/dev/mapper/data01-volume01  492G  381G   91G  81% /volume01
/dev/mapper/data02-volume02  938G  524G  367G  59% /volume02

After executing of dracatut, is problem fixed:
pc-marek1 ~ # dracut --force --add systemd --add lvm /boot/initramfs-$(uname -r).img $(uname -r)

madurani@pc-marek1 ~ $ df -h|grep dev
/dev/mapper/system-root       15G  157M   14G   2% /
/dev/mapper/system-usr        22G   18G  2.8G  87% /usr
/dev/mapper/system-home       30G  5.0G   23G  18% /home
/dev/mapper/system-opt        12G  7.8G  3.5G  70% /opt
/dev/mapper/system-portage    15G  9.7G  4.3G  70% /usr/port