With a recent update,
mkinitcpio does
not copy anymore the target file correctly if it encounters a symlink, resulting in a stale link be embedded into the initial ramdisk.
Specifically, if a symlink points to another symlink, the intermediate symlink, which is the target of the first symbolic link, is omitted:
If in the file system the link structure is
file_a -> file_b -> file_c
and
file_a should be added to the image, only
file_a and
file_c are added but
file_b is omitted.
This is contrary to the previous behaviour, and contrary to the manpage.
man mkinitcpio states:
(bold accentuation by myself)However, I have a
/lib/initcpio/install/dmcrypt_and_resume which contains, amongst others,
[...]
add_file /etc/suspend.conf
[...]
and on my system
/etc/suspend.conf is a symbolic link pointing to
/usr/local/etc/suspend.conf, which in turn points to
/usr/local/platform/GPD_Pocket/etc/suspend.conf which is the actual file.
For many years, it has worked correctly, but now I find
/etc/suspend.conf to be a dangling symlink in the image since the intermediate
/usr/local/etc/suspend.conf is missing, while
/usr/local/platform/GPD_Pocket/etc/suspend.conf is present.
I see this problem has appeared also for other files which are nested symlinks.
mkinitcpio's package version on my system is 33-1.
(Here is the corresponding report at bugs.archlinux.org: https://bugs.archlinux.org/task/76711)
This was an error with the new symlink handling upstream.
It has been fixed now, fix is in the branch https://gitlab.archlinux.org/nl6720/mkinitcpio/-/tree/nested-symlinks, not yet in the official release.
See https://bugs.archlinux.org/task/76711.
Please use the fix as basis for the Artix mkinitcpio.
Regards!