Merge ~henry-cy-chang/ubuntu/+source/grub2:fix-for-1961079 into ubuntu/+source/grub2:applied/ubuntu/devel

Proposed by Henry C Chang
Status: Needs review
Proposed branch: ~henry-cy-chang/ubuntu/+source/grub2:fix-for-1961079
Merge into: ubuntu/+source/grub2:applied/ubuntu/devel
Diff against target: 34 lines (+16/-1)
1 file modified
grub-core/osdep/unix/efivar.c (+16/-1)
Reviewer Review Type Date Requested Status
Ubuntu Sponsors Pending
git-ubuntu import Pending
Review via email: mp+459237@code.launchpad.net

Commit message

This is fix for Bug #1961079.

Description of the change

As described in commit message.

To post a comment you must log in.

Unmerged commits

a08606c... by Henry Chang <email address hidden>

efi: do not assume that efidir_disk is always biosdisk

Signed-off-by: Henry Chang <email address hidden>

955605b... by Mate Kukri

2.12~rc1-12ubuntu4 (patches applied)

Imported using git-ubuntu import.

148cd16... by Mate Kukri

grub-install: Delay copying files to {grubdir,platdir} after

Gbp-Pq: delay-copying-to-grubdir.patch.

e3abdcd... by Mate Kukri

grub-mkconfig: Use grub-sort-version

Gbp-Pq: grub-sort-version.patch.

4179ee2... by Mate Kukri

UBUNTU: os-prober: Enable on first run or if last run produced

Gbp-Pq: ubuntu-os-prober-auto.patch.

ccad262... by Mate Kukri

UBUNTU: Move verifiers after decompressors

Gbp-Pq: ubuntu-verifiers-last.patch.

37a4938... by Mate Kukri

grub.texi: Add net_bootp6 document

Gbp-Pq: suse-grub.texi-add-net_bootp6-document.patch.

a5e9dcd... by Mate Kukri

don't use int for efi status

Gbp-Pq: rhboot-f34-dont-use-int-for-efi-status.patch.

f8ea59f... by Mate Kukri

Make "exit" take a return code.

Gbp-Pq: rhboot-f34-make-exit-take-a-return-code.patch.

f31e453... by Mate Kukri

Ubuntu: add initrd-less-boot informational messages

Gbp-Pq: ubuntu-add-initrd-less-boot-messages.patch.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/grub-core/osdep/unix/efivar.c b/grub-core/osdep/unix/efivar.c
2index 19b6550..c85fa59 100644
3--- a/grub-core/osdep/unix/efivar.c
4+++ b/grub-core/osdep/unix/efivar.c
5@@ -537,6 +537,21 @@ devices_equal (const_efidp a, const_efidp b)
6 return false;
7 }
8
9+static const char*
10+get_os_dev (grub_disk_t disk, const char *efidir)
11+{
12+ if (disk->dev->id == GRUB_DISK_DEVICE_BIOSDISK_ID) {
13+ return grub_util_biosdisk_get_osdev (disk);
14+ } else if (disk->dev->id == GRUB_DISK_DEVICE_DISKFILTER_ID) {
15+ char **efidir_device_names = grub_guess_root_devices (efidir);
16+ if (!efidir_device_names || !efidir_device_names[0])
17+ grub_util_error (_("cannot find a device for %s (is /dev mounted?)"),
18+ efidir);
19+ return efidir_device_names[0];
20+ }
21+ return NULL;
22+}
23+
24 int
25 grub_install_efivar_register_efi (grub_device_t efidir_grub_dev,
26 const char *efidir, const char *efifile_path,
27@@ -563,7 +578,7 @@ grub_install_efivar_register_efi (grub_device_t efidir_grub_dev,
28 }
29
30 is_boot_efi = strstr (efidir, "/boot/efi") != NULL;
31- efidir_disk = grub_util_biosdisk_get_osdev (efidir_grub_dev->disk);
32+ efidir_disk = get_os_dev (efidir_grub_dev->disk, efidir);
33 efidir_part = efidir_grub_dev->disk->partition ? efidir_grub_dev->disk->partition->number + 1 : 1;
34 alternatives = get_alternative_esps ();
35

Subscribers

People subscribed via source and target branches