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
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:
... /lib[^/ ]*prof) ?/([^/] +)/libc\ .so\..* $;\2;p dir=x86_ 64-linux- gnu x86_64- linux-gnu/ dhcpcd/ dev/udev. so lib/x86_ 64-linux- gnu/dhcpcd/ dev/udev. so /usr/lib/ x86_64- linux-gnu/ dhcpcd/ dev/udev. so x86_64- linux-gnu/ dhcpcd/ dev/udev. so /usr/lib/ x86_64- linux-gnu/ dhcpcd/ dev/udev. so lib/x86_ 64-linux- gnu/dhcpcd/ dev/udev. so /usr/lib/ x86_64- linux-gnu/ dhcpcd/ dev/udev. so x86_64- linux-gnu/ dhcpcd/ dev/udev. so ] initramfs- tools/hooks/ dhcpcd failed with return 1. img-6.8. 0-31-generic with 1. postinst. d/initramfs- tools exited with return code 1
+ grep ^dhcpcd: /etc/passwd
+ ldd /usr/sbin/dhcpcd
+ sed -En s;^.*/lib(
+ multiarch_
+ copy_exec /usr/lib/
+ local src target x nonoptlib ret
+ src=/usr/
+ target=
+ copy_file binary /usr/lib/
+ local type src target link_target
+ type=binary
+ src=/usr/
+ target=
+ [ -f /usr/lib/
+ return 2
+ return 1
E: /usr/share/
update-initramfs: failed for /boot/initrd.
run-parts: /etc/kernel/
Checking:
# ls /usr/lib/ x86_64- linux-gnu/ dhcpcd/ dev x86_64- linux-gnu/ dhcpcd/ dev/udev. so x86_64- linux-gnu/ dhcpcd/ dev/udev. so x86_64- linux-gnu/ dhcpcd/ dev/udev. so
# dpkg-query -S /usr/lib/
dhcpcd-base: /usr/lib/
# dpkg -V dhcpcd-base
missing /usr/lib/
#
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