Comment 15 for bug 1877088

Revision history for this message
Sultan Alsawaf (kerneltoast) wrote :

The script responsible for updating the /boot/initrd.img symlink is called `linux-update-symlinks`. If a kernel is installed without that script being run, the symlink will not be updated.

The only place where `linux-update-symlinks` is run is inside each of our kernels, in `debian/templates/image.postinst.in`. This means that when our kernels are built as .deb packages, the appropriate machinery will be placed inside the .deb to thus update the /boot/initrd.img symlink.

I checked the change history to `installkernel` and could not find any point in time in which it ran `linux-update-symlinks`. Furthermore, the help info inside `linux-update-symlinks` contains the following note: "This command is intended to be called from the postinst and postrm maintainer scripts of Linux kernel packages." It looks like `linux-update-symlinks` was only ever intended to be used in postinst/postrm hooks for .deb packages (and not called by `installkernel`).

There are a few remedies to this problem I can see, but I'm not sure which is the correct solution:
1. Add a call to `linux-update-symlinks` into `installkernel`
or
2. Add a script into /etc/kernel/postinst.d to run `linux-update-symlinks`
or
3. Run `linux-update-symlinks` manually after installing a kernel directly via `installkernel`