Comment 8 for bug 2039342

Revision history for this message
Brian Candler (b-candler) wrote :

I am getting the same error with Ubuntu 24.04, but a different file from dhcpcd-base was missing.

With set -x in /usr/share/initramfs-tools/hooks/dhcpcd:

...
+ grep ^dhcpcd: /etc/passwd
+ ldd /usr/sbin/dhcpcd
+ sed -En s;^.*/lib(/lib[^/]*prof)?/([^/]+)/libc\.so\..*$;\2;p
+ multiarch_dir=x86_64-linux-gnu
+ copy_exec /usr/lib/x86_64-linux-gnu/dhcpcd/dev/udev.so
+ local src target x nonoptlib ret
+ src=/usr/lib/x86_64-linux-gnu/dhcpcd/dev/udev.so
+ target=/usr/lib/x86_64-linux-gnu/dhcpcd/dev/udev.so
+ copy_file binary /usr/lib/x86_64-linux-gnu/dhcpcd/dev/udev.so /usr/lib/x86_64-linux-gnu/dhcpcd/dev/udev.so
+ local type src target link_target
+ type=binary
+ src=/usr/lib/x86_64-linux-gnu/dhcpcd/dev/udev.so
+ target=/usr/lib/x86_64-linux-gnu/dhcpcd/dev/udev.so
+ [ -f /usr/lib/x86_64-linux-gnu/dhcpcd/dev/udev.so ]
+ return 2
+ return 1
E: /usr/share/initramfs-tools/hooks/dhcpcd failed with return 1.
update-initramfs: failed for /boot/initrd.img-6.8.0-31-generic with 1.
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1

Checking:

# ls /usr/lib/x86_64-linux-gnu/dhcpcd/dev
# dpkg-query -S /usr/lib/x86_64-linux-gnu/dhcpcd/dev/udev.so
dhcpcd-base: /usr/lib/x86_64-linux-gnu/dhcpcd/dev/udev.so
# dpkg -V dhcpcd-base
missing /usr/lib/x86_64-linux-gnu/dhcpcd/dev/udev.so
#

And as before,

apt install --reinstall dhcpcd-base

fixes the problem. But I don't know why or how this file got deleted in the first place.

Workaround for a scripted install:

if dpkg -V dhcpcd-base | grep missing; then
  apt install --yes --reinstall dhcpcd-base
fi