fix: Mark grub-pc-bin as manual install to avoid autoremoval (LP: #2045418)

With amd64 build target calling `update-grub` no longer works and fails build with error

```
grub-install: error: /usr/lib/grub/i386-pc/modinfo.sh doesn't exist. Please specify --target or --directory.
```

`/usr/lib/grub/i386-pc/modinfo.sh` is part of the grub-pc-bin package.

We are seeing this now on xenial as grub-pc-bin is now removed during build as part of fixing
bug https://bugs.launchpad.net/ubuntu/+source/livecd-rootfs/+bug/2036195.

To resolve this we mark grub-pc-bin as manually installed so it is not autoremoved.

As we are running grub-install ourselves for a specific target we need to make sure to install that
target first which means this will not be solved by changing dependencies of the grub packages.
This commit is contained in:
Philip Roche 2023-12-04 12:47:24 +00:00
parent 41ecdf5c74
commit 004475ce66
2 changed files with 10 additions and 0 deletions

6
debian/changelog vendored
View File

@ -1,3 +1,9 @@
livecd-rootfs (2.408.70) xenial; urgency=medium
* Mark grub-pc-bin as manual install to avoid autoremoval (LP: #2045418)
-- Philip Roche <phil.roche@canonical.com> Mon, 04 Dec 2023 12:39:49 +0000
livecd-rootfs (2.408.69) xenial; urgency=medium
[Steve Langasek]

View File

@ -86,6 +86,10 @@ install_grub() {
efi_target=arm64-efi
;;
amd64)
# LP#2045418 - grub-pc-bin is installed as a dependency of grub-pc and is required for grub-install.
# However, when grub-efi-amd64 is installed, grub-pc is removed and grub-pc-bin is marked for autoremoval.
# This causes grub-install to fail. To avoid this we mark grub-pc-bin as manually installed.
chroot mountpoint apt-mark manual grub-pc-bin
chroot mountpoint apt-get install -qqy grub-efi-amd64-signed grub-efi-amd64 shim-signed
grub_modules="multiboot serial usb usb_keyboard"
efi_target=x86_64-efi