Bug 2014257
Summary: | shim doesn't load anything but grub | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Roman Kagan <rvkagan> |
Component: | shim | Assignee: | Peter Jones <pjones> |
Status: | CLOSED DUPLICATE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | high | Docs Contact: | |
Priority: | unspecified | ||
Version: | 34 | CC: | fmartine, mjg59, pbrobinson, pjones, rharwood |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | x86_64 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2021-11-29 21:43:13 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Roman Kagan
2021-10-14 18:08:39 UTC
AFAICT from the source code, shim.c:set_second_state: EFI_STATUS set_second_stage (EFI_HANDLE image_handle) { ... UINTN loader_len = 0; ... UINTN strings = count_ucs2_strings(li->LoadOptions, li->LoadOptionsSize); ... if (strings == 0) { efi_status = get_load_option_optional_data(li->LoadOptions, li->LoadOptionsSize, (UINT8 **)&start, &loader_len); ... } else if (strings >= 2) { ... } else if (strings == 1 && is_our_path(li, start)) { ... } ... if (loader_len > 0) { loader_str = ... make a copy of the loader path ...; ... second_stage = loader_str; ... } ... } that is, in the case where the path of the second stage is found in li->LoadOptions as a string rather than a full-fledged EFI_LOAD_OPTION, loader_len remains 0 and second_stage is not updated with the string just found, so shim loads the default second stage (grubx64.efi) regardless of the options. FWIW the code on branch shim-15.5 seems to have this problem resolved. *** This bug has been marked as a duplicate of bug 2010595 *** |