Fix multiple initrds support in grub.conf
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
grub2 (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Focal |
Fix Released
|
Undecided
|
Unassigned | ||
Groovy |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
[Impact]
* When attempting to use multiple initrd, update-grub generates invalid grub.cfg configuration.
[Test Case]
* sudo touch /boot/microcode
* sudo update-grub
* grep microcode.cpio /boot/grub/grub.cfg
initrd / microcode.cpio initrd.
Observe that the initrd stanzas are incorrect. Instead they should be _both_ absolute valid filepaths from grub prefix location, i.e.
initrd /microcode.cpio /initrd.
# ensure one cleans up the system after testing
* sudo rm /boot/microcode
* sudo update-grub
[Regression Potential]
* 2.04 upstream release supports multiple initrds correctly, but the ubuntu-only patches incorrectly changed the behaviour of grub-mkconfig breaking this support. This SRU fixes this. Since currently multiple initrd support is broken, nobody is using it. But hopefully it will become usable after this SRU and will be used by default in certain configurations.
Related branches
- Ubuntu Core Development Team: Pending requested
-
Diff: 5378 lines (+841/-606)117 files modifieddebian/.git-dpm (+2/-2)
debian/changelog (+21/-0)
debian/patches/0074-uefi-firmware-rename-fwsetup-menuentry-to-UEFI-Firmw.patch (+2/-2)
debian/patches/0075-smbios-Add-a-linux-argument-to-apply-linux-modalias-.patch (+2/-2)
debian/patches/0076-ubuntu-Make-the-linux-command-in-EFI-grub-always-try.patch (+3/-3)
debian/patches/0077-ubuntu-Update-the-linux-boot-protocol-version-check.patch (+2/-2)
debian/patches/0081-yylex-Make-lexer-fatal-errors-actually-be-fatal.patch (+2/-2)
debian/patches/0082-safemath-Add-some-arithmetic-primitives-that-check-f.patch (+4/-4)
debian/patches/0083-calloc-Make-sure-we-always-have-an-overflow-checking.patch (+8/-8)
debian/patches/0084-calloc-Use-calloc-at-most-places.patch (+87/-87)
debian/patches/0085-malloc-Use-overflow-checking-primitives-where-we-do-.patch (+24/-24)
debian/patches/0086-iso9660-Don-t-leak-memory-on-realloc-failures.patch (+2/-2)
debian/patches/0087-font-Do-not-load-more-than-one-NAME-section.patch (+2/-2)
debian/patches/0088-gfxmenu-Fix-double-free-in-load_image.patch (+2/-2)
debian/patches/0089-lzma-Make-sure-we-don-t-dereference-past-array.patch (+2/-2)
debian/patches/0090-tftp-Do-not-use-priority-queue.patch (+2/-2)
debian/patches/0091-script-Remove-unused-fields-from-grub_script_functio.patch (+2/-2)
debian/patches/0092-script-Avoid-a-use-after-free-when-redefining-a-func.patch (+5/-5)
debian/patches/0093-hfsplus-fix-two-more-overflows.patch (+2/-2)
debian/patches/0094-lvm-fix-two-more-potential-data-dependent-alloc-over.patch (+2/-2)
debian/patches/0095-efi-fix-some-malformed-device-path-arithmetic-errors.patch (+5/-5)
debian/patches/0096-linuxefi-fail-kernel-validation-without-shim-protoco.patch (+5/-5)
debian/patches/0097-Fix-a-regression-caused-by-efi-fix-some-malformed-de.patch (+2/-2)
debian/patches/0098-efi-Fix-use-after-free-in-halt-reboot-path.patch (+10/-10)
debian/patches/0099-chainloader-Avoid-a-double-free-when-validation-fail.patch (+2/-2)
debian/patches/0100-relocator-Protect-grub_relocator_alloc_chunk_addr-in.patch (+5/-5)
debian/patches/0101-relocator-Protect-grub_relocator_alloc_chunk_align-m.patch (+14/-14)
debian/patches/0102-relocator-Fix-grub_relocator_alloc_chunk_align-top-m.patch (+2/-2)
debian/patches/0103-linux-loader-avoid-overflow-on-initrd-size-calculati.patch (+2/-2)
debian/patches/0104-linux-Fix-integer-overflows-in-initrd-size-handling.patch (+2/-2)
debian/patches/0105-efilinux-Fix-integer-overflows-in-grub_cmd_initrd.patch (+2/-2)
debian/patches/at_keyboard-module-init.patch (+2/-2)
debian/patches/bash-completion-drop-have-checks.patch (+2/-2)
debian/patches/blacklist-1440x900x32.patch (+2/-2)
debian/patches/bootp-new-net_bootp6-command.patch (+4/-4)
debian/patches/bootp-process-dhcpack-http-boot.patch (+3/-3)
debian/patches/cherrypick-lsefisystab-define-smbios3.patch (+3/-3)
debian/patches/cherrypick-lsefisystab-show-dtb.patch (+2/-2)
debian/patches/cherrypick-smbios-module.patch (+8/-8)
debian/patches/core-in-fs.patch (+1/-1)
debian/patches/default-grub-d.patch (+3/-3)
debian/patches/disable-floppies.patch (+1/-1)
debian/patches/dpkg-version-comparison.patch (+1/-1)
debian/patches/efi-variable-storage-minimise-writes.patch (+9/-9)
debian/patches/efinet-set-dns-from-uefi-proto.patch (+3/-3)
debian/patches/efinet-set-network-from-uefi-devpath.patch (+3/-3)
debian/patches/efinet-uefi-ipv6-pxe-support.patch (+3/-3)
debian/patches/gettext-quiet.patch (+2/-2)
debian/patches/gfxpayload-dynamic.patch (+10/-10)
debian/patches/gfxpayload-keep-default.patch (+4/-4)
debian/patches/grub-install-pvxen-paths.patch (+2/-2)
debian/patches/grub-legacy-0-based-partitions.patch (+1/-1)
debian/patches/grub.cfg-400.patch (+1/-1)
debian/patches/ieee1275-clear-reset.patch (+2/-2)
debian/patches/ignore-grub_func_test-failures.patch (+2/-2)
debian/patches/insmod-xzio-and-lzopio-on-xen.patch (+4/-4)
debian/patches/install-efi-fallback.patch (+2/-2)
debian/patches/install-efi-ubuntu-flavours.patch (+2/-2)
debian/patches/install-locale-langpack.patch (+2/-2)
debian/patches/install-powerpc-machtypes.patch (+7/-7)
debian/patches/install-stage2-confusion.patch (+2/-2)
debian/patches/maybe-quiet.patch (+13/-13)
debian/patches/mkconfig-loopback.patch (+4/-4)
debian/patches/mkconfig-mid-upgrade.patch (+2/-2)
debian/patches/mkconfig-nonexistent-loopback.patch (+3/-3)
debian/patches/mkconfig-other-inits.patch (+3/-3)
debian/patches/mkconfig-recovery-title.patch (+12/-12)
debian/patches/mkconfig-signed-kernel.patch (+4/-4)
debian/patches/mkconfig-ubuntu-distributor.patch (+4/-4)
debian/patches/mkconfig-ubuntu-recovery.patch (+8/-8)
debian/patches/mkrescue-efi-modules.patch (+2/-2)
debian/patches/net-read-bracketed-ipv6-addr.patch (+5/-5)
debian/patches/no-devicetree-if-secure-boot.patch (+3/-3)
debian/patches/no-insmod-on-sb.patch (+4/-4)
debian/patches/olpc-prefix-hack.patch (+1/-1)
debian/patches/ppc64el-disable-vsx.patch (+2/-2)
debian/patches/probe-fusionio.patch (+3/-3)
debian/patches/quick-boot-lvm.patch (+2/-2)
debian/patches/quick-boot.patch (+10/-10)
debian/patches/restore-mkdevicemap.patch (+7/-7)
debian/patches/series (+32/-30)
debian/patches/skip-grub_cmd_set_date.patch (+2/-2)
debian/patches/sleep-shift.patch (+3/-3)
debian/patches/ubuntu-add-devicetree-command-support.patch (+4/-4)
debian/patches/ubuntu-add-initrd-less-boot-fallback.patch (+29/-16)
debian/patches/ubuntu-boot-from-multipath-dependent-symlink.patch (+2/-2)
debian/patches/ubuntu-dont-verify-loopback-images.patch (+37/-0)
debian/patches/ubuntu-efi-allow-loopmount-chainload.patch (+4/-4)
debian/patches/ubuntu-efi-console-set-text-mode-as-needed.patch (+2/-2)
debian/patches/ubuntu-fix-lzma-decompressor-objcopy.patch (+2/-2)
debian/patches/ubuntu-flavour-order.patch (+61/-0)
debian/patches/ubuntu-grub-install-extra-removable.patch (+2/-2)
debian/patches/ubuntu-install-signed.patch (+2/-2)
debian/patches/ubuntu-linuxefi.patch (+31/-31)
debian/patches/ubuntu-mkconfig-leave-breadcrumbs.patch (+2/-2)
debian/patches/ubuntu-recovery-dis_ucode_ldr.patch (+84/-0)
debian/patches/ubuntu-resilient-boot-boot-order.patch (+7/-7)
debian/patches/ubuntu-resilient-boot-ignore-alternative-esps.patch (+2/-2)
debian/patches/ubuntu-shorter-version-info.patch (+2/-2)
debian/patches/ubuntu-skip-disk-by-id-lvm-pvm-uuid-entries.patch (+2/-2)
debian/patches/ubuntu-speed-zsys-history.patch (+8/-8)
debian/patches/ubuntu-support-initrd-less-boot.patch (+5/-5)
debian/patches/ubuntu-temp-keep-auto-nvram.patch (+2/-2)
debian/patches/ubuntu-tpm-unknown-error-non-fatal.patch (+2/-2)
debian/patches/ubuntu-zfs-enhance-support.patch (+16/-13)
debian/patches/uefi-firmware-setup.patch (+3/-3)
debian/patches/uefi-secure-boot-cryptomount.patch (+2/-2)
debian/patches/vsnprintf-upper-case-hex.patch (+2/-2)
debian/patches/vt-handoff.patch (+7/-7)
debian/patches/wubi-no-windows.patch (+2/-2)
debian/patches/zpool-full-device-name.patch (+2/-2)
dev/null (+0/-27)
grub-core/disk/loopback.c (+2/-1)
util/grub-mkconfig.in (+2/-1)
util/grub-mkconfig_lib.in (+15/-0)
util/grub.d/10_linux.in (+22/-7)
util/grub.d/10_linux_zfs.in (+23/-14)
- Dimitri John Ledkov (community): Approve
-
Diff: 481 lines (+74/-77)26 files modifieddebian/.git-dpm (+2/-2)
debian/changelog (+1/-0)
debian/patches/0074-uefi-firmware-rename-fwsetup-menuentry-to-UEFI-Firmw.patch (+1/-1)
debian/patches/0075-smbios-Add-a-linux-argument-to-apply-linux-modalias-.patch (+1/-1)
debian/patches/0076-ubuntu-Make-the-linux-command-in-EFI-grub-always-try.patch (+1/-1)
debian/patches/0077-ubuntu-Update-the-linux-boot-protocol-version-check.patch (+1/-1)
debian/patches/cherrypick-lsefisystab-define-smbios3.patch (+1/-1)
debian/patches/cherrypick-lsefisystab-show-dtb.patch (+1/-1)
debian/patches/cherrypick-smbios-module.patch (+1/-1)
debian/patches/series (+4/-5)
debian/patches/ubuntu-add-devicetree-command-support.patch (+4/-4)
debian/patches/ubuntu-add-initrd-less-boot-fallback.patch (+25/-12)
debian/patches/ubuntu-boot-from-multipath-dependent-symlink.patch (+2/-2)
debian/patches/ubuntu-dont-verify-loopback-images.patch (+1/-1)
debian/patches/ubuntu-efi-allow-loopmount-chainload.patch (+1/-1)
debian/patches/ubuntu-fix-lzma-decompressor-objcopy.patch (+1/-1)
debian/patches/ubuntu-flavour-order.patch (+1/-1)
debian/patches/ubuntu-mkconfig-leave-breadcrumbs.patch (+1/-1)
debian/patches/ubuntu-resilient-boot-boot-order.patch (+1/-1)
debian/patches/ubuntu-resilient-boot-ignore-alternative-esps.patch (+1/-1)
debian/patches/ubuntu-skip-disk-by-id-lvm-pvm-uuid-entries.patch (+1/-1)
debian/patches/ubuntu-speed-zsys-history.patch (+1/-1)
debian/patches/ubuntu-temp-keep-auto-nvram.patch (+1/-1)
debian/patches/ubuntu-tpm-unknown-error-non-fatal.patch (+1/-1)
dev/null (+0/-27)
util/grub.d/10_linux.in (+18/-7)
Changed in grub2 (Ubuntu): | |
status: | New → In Progress |
information type: | Private → Public |
tags: | added: patch |
description: | updated |
tags: |
added: verification-done removed: verification-needed |
git-dpm tree at https:/ /code.launchpad .net/~xnox/ grub/+git/ grub/+ref/ xnox/fixup- multi-initrd