forked from pool/grub2
8ee92f5194
- Implement NV index mode for TPM 2.0 key protector 0001-protectors-Implement-NV-index.patch - Fall back to passphrase mode when the key protector fails to unlock the disk 0002-cryptodisk-Fallback-to-passphrase.patch - Wipe out the cached key cleanly 0003-cryptodisk-wipe-out-the-cached-keys-from-protectors.patch - Make diskfiler to look up cryptodisk devices first 0004-diskfilter-look-up-cryptodisk-devices-first.patch - Version bump to 2.12~rc1 * Added: - grub-2.12~rc1.tar.xz * Removed: - grub-2.06.tar.xz * Patch dropped merged by new version: - grub2-GRUB_CMDLINE_LINUX_RECOVERY-for-recovery-mode.patch - grub2-s390x-02-kexec-module-added-to-emu.patch - grub2-efi-chainloader-root.patch - grub2-Fix-incorrect-netmask-on-ppc64.patch - 0001-osdep-Introduce-include-grub-osdep-major.h-and-use-i.patch - 0002-osdep-linux-hostdisk-Use-stat-instead-of-udevadm-for.patch - 0002-net-read-bracketed-ipv6-addrs-and-port-numbers.patch - grub2-s390x-10-keep-network-at-kexec.patch - 0001-Fix-build-error-in-binutils-2.36.patch - 0001-emu-fix-executable-stack-marking.patch - 0046-squash-verifiers-Move-verifiers-API-to-kernel-image.patch - 0001-30_uefi-firmware-fix-printf-format-with-null-byte.patch - 0001-tpm-Pass-unknown-error-as-non-fatal-but-debug-print-.patch - 0001-Filter-out-POSIX-locale-for-translation.patch OBS-URL: https://build.opensuse.org/request/show/1105405 OBS-URL: https://build.opensuse.org/package/show/Base:System/grub2?expand=0&rev=458
58 lines
2.0 KiB
Diff
58 lines
2.0 KiB
Diff
From f01314a822dbe9ad39b2f7d0f3717ef6e4c24f4a Mon Sep 17 00:00:00 2001
|
|
From: Michael Chang <mchang@suse.com>
|
|
Date: Fri, 15 Apr 2022 21:45:04 +0800
|
|
Subject: [PATCH 2/2] Mark environmet blocks as used for image embedding.
|
|
|
|
Now that grub will attempt to use full btrfs bootloader area, the
|
|
embedded image could have overlapped with environment blocks if it's
|
|
size grows too much. Let's define a dedicated area for environment
|
|
blocks to the used block mappings for the embedding process so it can be
|
|
skipped.
|
|
|
|
Signed-off-by: Michael Chang <mchang@suse.com>
|
|
---
|
|
grub-core/fs/btrfs.c | 3 ++-
|
|
include/grub/fs.h | 2 ++
|
|
util/grub-editenv.c | 2 +-
|
|
3 files changed, 5 insertions(+), 2 deletions(-)
|
|
|
|
--- a/grub-core/fs/btrfs.c
|
|
+++ b/grub-core/fs/btrfs.c
|
|
@@ -2637,7 +2637,7 @@
|
|
|
|
static const struct {
|
|
struct embed_region available;
|
|
- struct embed_region used[6];
|
|
+ struct embed_region used[7];
|
|
} btrfs_head = {
|
|
.available = {0, GRUB_DISK_KiB_TO_SECTORS (1024)}, /* The first 1 MiB. */
|
|
.used = {
|
|
@@ -2645,6 +2645,7 @@
|
|
{GRUB_DISK_KiB_TO_SECTORS (64) - 1, 1}, /* Overflow guard. */
|
|
{GRUB_DISK_KiB_TO_SECTORS (64), GRUB_DISK_KiB_TO_SECTORS (4)}, /* 4 KiB superblock. */
|
|
{GRUB_DISK_KiB_TO_SECTORS (68), 1}, /* Overflow guard. */
|
|
+ {GRUB_DISK_KiB_TO_SECTORS (ENV_BTRFS_OFFSET) - 1, 3}, /* Environment Block. */
|
|
{GRUB_DISK_KiB_TO_SECTORS (1024) - 1, 1}, /* Overflow guard. */
|
|
{0, 0} /* Array terminator. */
|
|
}
|
|
--- a/include/grub/fs.h
|
|
+++ b/include/grub/fs.h
|
|
@@ -128,4 +128,6 @@
|
|
|
|
grub_fs_t EXPORT_FUNC(grub_fs_probe) (grub_device_t device);
|
|
|
|
+#define ENV_BTRFS_OFFSET (256)
|
|
+
|
|
#endif /* ! GRUB_FS_HEADER */
|
|
--- a/util/grub-editenv.c
|
|
+++ b/util/grub-editenv.c
|
|
@@ -128,7 +128,7 @@
|
|
int offset;
|
|
int size;
|
|
} fs_envblk_spec[] = {
|
|
- { "btrfs", 256 * 1024, GRUB_DISK_SECTOR_SIZE },
|
|
+ { "btrfs", ENV_BTRFS_OFFSET * 1024, GRUB_DISK_SECTOR_SIZE },
|
|
{ NULL, 0, 0 }
|
|
};
|
|
|