gnu: grub: Ignore metadata-csum-seed feature of ext4.
* gnu/packages/patches/grub-ignore-metadata-csum-seed.patch: New file. * gnu/local.mk: Register it. * gnu/packages/bootloaders.scm (grub): Use it. Change-Id: I3bfed24b38ecf31b85ed4ac654399fca2d2e12f6master
parent
ed5bf620ea
commit
00384aedbc
|
@ -1415,6 +1415,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/groovy-add-exceptionutilsgenerator.patch \
|
%D%/packages/patches/groovy-add-exceptionutilsgenerator.patch \
|
||||||
%D%/packages/patches/grub-efi-fat-serial-number.patch \
|
%D%/packages/patches/grub-efi-fat-serial-number.patch \
|
||||||
%D%/packages/patches/grub-setup-root.patch \
|
%D%/packages/patches/grub-setup-root.patch \
|
||||||
|
%D%/packages/patches/grub-ignore-metadata-csum-seed.patch \
|
||||||
%D%/packages/patches/guile-1.8-cpp-4.5.patch \
|
%D%/packages/patches/guile-1.8-cpp-4.5.patch \
|
||||||
%D%/packages/patches/guile-2.2-skip-oom-test.patch \
|
%D%/packages/patches/guile-2.2-skip-oom-test.patch \
|
||||||
%D%/packages/patches/guile-2.2-skip-so-test.patch \
|
%D%/packages/patches/guile-2.2-skip-so-test.patch \
|
||||||
|
|
|
@ -113,7 +113,8 @@
|
||||||
"1qbycnxkx07arj9f2nlsi9kp0dyldspbv07ysdyd34qvz55a97mp"))
|
"1qbycnxkx07arj9f2nlsi9kp0dyldspbv07ysdyd34qvz55a97mp"))
|
||||||
(patches (search-patches
|
(patches (search-patches
|
||||||
"grub-efi-fat-serial-number.patch"
|
"grub-efi-fat-serial-number.patch"
|
||||||
"grub-setup-root.patch"))
|
"grub-setup-root.patch"
|
||||||
|
"grub-ignore-metadata-csum-seed.patch"))
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
'(begin
|
'(begin
|
||||||
|
|
|
@ -0,0 +1,54 @@
|
||||||
|
commit 7fd5feff97c4b1f446f8fcf6d37aca0c64e7c763
|
||||||
|
Author: Javier Martinez Canillas <javierm@redhat.com>
|
||||||
|
Date: Fri Jun 11 21:36:16 2021 +0200
|
||||||
|
|
||||||
|
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>
|
||||||
|
|
||||||
|
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
|
||||||
|
|
Reference in New Issue