9c25f1b51e
With bump of package/e2fsprogs to 1.47.0 [1] a freshly generated ext4 fs has unfortunately different default features enabled (e.g. metadata_csum_seed). This and some other newer fs features (e.g. large_dir) are however not supported by our grub2. Thus, newly generated ext-based rootfs won't be recognized by grub2 and are therefore not bootable/usable from grub2 anymore. This is an issue already known to other Linux derivates [2],[3],[4]. This commit introduces two additional upstream patches to package/grub2 which adds EXT4_FEATURE_INCOMPAT_CSUM_SEED and EXT4_FEATURE_INCOMPAT_LARGEDIR to the EXT2_DRIVER_IGNORED_INCOMPAT list of ignored incompatible ext features, allowing grub2 to use ext filesystems with these newer default feature sets. [1] https://git.buildroot.net/buildroot/commit/?id=6a21733f839478d902f3eab287a82b456e55f708 [2] https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1844012 [3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1031325 [4] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1030939 Signed-off-by: Jens Maus <mail@jens-maus.de> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
62 lines
2.7 KiB
Diff
62 lines
2.7 KiB
Diff
From 7fd5feff97c4b1f446f8fcf6d37aca0c64e7c763 Mon Sep 17 00:00:00 2001
|
|
From: Javier Martinez Canillas <javierm@redhat.com>
|
|
Date: Fri, 11 Jun 2021 21:36:16 +0200
|
|
Subject: [PATCH] fs/ext2: Ignore checksum seed incompat feature
|
|
|
|
This incompat feature is used to denote that the filesystem stored its
|
|
metadata checksum seed in the superblock. This is used to allow tune2fs
|
|
changing the UUID on a mounted metdata_csum filesystem without having
|
|
to rewrite all the disk metadata. However, the GRUB doesn't use the
|
|
metadata checksum at all. So, it can just ignore this feature if it
|
|
is enabled. This is consistent with the GRUB filesystem code in general
|
|
which just does a best effort to access the filesystem's data.
|
|
|
|
The checksum seed incompat feature has to be removed from the ignore
|
|
list if the support for metadata checksum verification is added to the
|
|
GRUB ext2 driver later.
|
|
|
|
Suggested-by: Eric Sandeen <esandeen@redhat.com>
|
|
Suggested-by: Lukas Czerner <lczerner@redhat.com>
|
|
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
|
|
Reviewed-by: Lukas Czerner <lczerner@redhat.com>
|
|
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
|
|
Upstream: 7fd5feff97c4b1f446f8fcf6d37aca0c64e7c763
|
|
Signed-off-by: Jens Maus <mail@jens-maus.de>
|
|
---
|
|
grub-core/fs/ext2.c | 10 ++++++++--
|
|
1 file changed, 8 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/grub-core/fs/ext2.c b/grub-core/fs/ext2.c
|
|
index e7dd78e66..4953a1591 100644
|
|
--- a/grub-core/fs/ext2.c
|
|
+++ b/grub-core/fs/ext2.c
|
|
@@ -103,6 +103,7 @@ GRUB_MOD_LICENSE ("GPLv3+");
|
|
#define EXT4_FEATURE_INCOMPAT_64BIT 0x0080
|
|
#define EXT4_FEATURE_INCOMPAT_MMP 0x0100
|
|
#define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200
|
|
+#define EXT4_FEATURE_INCOMPAT_CSUM_SEED 0x2000
|
|
#define EXT4_FEATURE_INCOMPAT_ENCRYPT 0x10000
|
|
|
|
/* The set of back-incompatible features this driver DOES support. Add (OR)
|
|
@@ -123,10 +124,15 @@ GRUB_MOD_LICENSE ("GPLv3+");
|
|
* mmp: Not really back-incompatible - was added as such to
|
|
* avoid multiple read-write mounts. Safe to ignore for this
|
|
* RO driver.
|
|
+ * checksum seed: Not really back-incompatible - was added to allow tools
|
|
+ * such as tune2fs to change the UUID on a mounted metadata
|
|
+ * checksummed filesystem. Safe to ignore for now since the
|
|
+ * driver doesn't support checksum verification. However, it
|
|
+ * has to be removed from this list if the support is added later.
|
|
*/
|
|
#define EXT2_DRIVER_IGNORED_INCOMPAT ( EXT3_FEATURE_INCOMPAT_RECOVER \
|
|
- | EXT4_FEATURE_INCOMPAT_MMP)
|
|
-
|
|
+ | EXT4_FEATURE_INCOMPAT_MMP \
|
|
+ | EXT4_FEATURE_INCOMPAT_CSUM_SEED)
|
|
|
|
#define EXT3_JOURNAL_MAGIC_NUMBER 0xc03b3998U
|
|
|
|
--
|
|
2.34.1
|
|
|