aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUmer Saleem <[email protected]>2024-09-20 22:19:57 +0500
committerBrian Behlendorf <[email protected]>2024-09-21 10:29:27 -0700
commit2aafc2ea1f887458fe84cf4e8042fb5891e176bf (patch)
tree3435643f79dbe5309575c3bfe560d0a1f6dcc581
parentaeb79f2b292f91784fd2813ebfffed58420255d7 (diff)
Add compatibility file for GRUB versions up to v2.06
GRUB is not able to detect ZFS pool if snaphsot of top level boot pool is created. This issue is observed with GRUB versions up to v2.06 if extensible_dataset feature is enabled on ZFS boot pool. compatibility=grub2-2.06 would enable all read-only compatible zpool features except extensible_dataset and other features that depend on it. The existing grub2 compatibility file is now renamed to grub2-2.12 to reflect the appropriate grub2 version. grub2-2.12 lists all read-only features that can be enabled on boot pool for grub2 with version 2.12 onwards. A new symlink grub2 is created that currently points to the grub2-2.12 compatibility file. Reviewed-by: Brian Behlendorf <[email protected]> Reviewed-by: Alexander Motin <[email protected]> Signed-off-by: Umer Saleem <[email protected]> Closes #13873 Closes #15261 Closes #15909
-rw-r--r--cmd/zpool/Makefile.am4
-rw-r--r--cmd/zpool/compatibility.d/grub2-2.0623
-rw-r--r--cmd/zpool/compatibility.d/grub2-2.12 (renamed from cmd/zpool/compatibility.d/grub2)2
-rw-r--r--man/man7/zpool-features.729
4 files changed, 54 insertions, 4 deletions
diff --git a/cmd/zpool/Makefile.am b/cmd/zpool/Makefile.am
index d08b8e179..8a218d365 100644
--- a/cmd/zpool/Makefile.am
+++ b/cmd/zpool/Makefile.am
@@ -140,7 +140,8 @@ dist_zpoolcompat_DATA = \
%D%/compatibility.d/freebsd-11.2 \
%D%/compatibility.d/freebsd-11.3 \
%D%/compatibility.d/freenas-9.10.2 \
- %D%/compatibility.d/grub2 \
+ %D%/compatibility.d/grub2-2.06 \
+ %D%/compatibility.d/grub2-2.12 \
%D%/compatibility.d/openzfs-2.0-freebsd \
%D%/compatibility.d/openzfs-2.0-linux \
%D%/compatibility.d/openzfs-2.1-freebsd \
@@ -171,6 +172,7 @@ zpoolcompatlinks = \
"freebsd-11.3 freebsd-12.2" \
"freebsd-11.3 freebsd-12.3" \
"freebsd-11.3 freebsd-12.4" \
+ "grub2-2.12 grub2" \
"openzfs-2.1-freebsd freebsd-13.0" \
"openzfs-2.1-freebsd freebsd-13.1" \
"openzfs-2.1-freebsd freebsd-13.2" \
diff --git a/cmd/zpool/compatibility.d/grub2-2.06 b/cmd/zpool/compatibility.d/grub2-2.06
new file mode 100644
index 000000000..ea7468dbc
--- /dev/null
+++ b/cmd/zpool/compatibility.d/grub2-2.06
@@ -0,0 +1,23 @@
+# Features which are supported by GRUB2 versions prior to v2.12.
+#
+# GRUB is not able to detect ZFS pool if snaphsot of top level boot pool
+# is created. This issue is observed with GRUB versions before v2.12 if
+# extensible_dataset feature is enabled on ZFS boot pool.
+#
+# This file lists all read-only comaptible features except
+# extensible_dataset and any other feature that depends on it.
+#
+allocation_classes
+async_destroy
+block_cloning
+device_rebuild
+embedded_data
+empty_bpobj
+enabled_txg
+hole_birth
+log_spacemap
+lz4_compress
+resilver_defer
+spacemap_histogram
+spacemap_v2
+zpool_checkpoint
diff --git a/cmd/zpool/compatibility.d/grub2 b/cmd/zpool/compatibility.d/grub2-2.12
index 6d60e6435..86cce6338 100644
--- a/cmd/zpool/compatibility.d/grub2
+++ b/cmd/zpool/compatibility.d/grub2-2.12
@@ -1,4 +1,4 @@
-# Features which are supported by GRUB2
+# Features which are supported by GRUB2 versions from v2.12 onwards.
allocation_classes
async_destroy
block_cloning
diff --git a/man/man7/zpool-features.7 b/man/man7/zpool-features.7
index ff6e485a4..fe7715496 100644
--- a/man/man7/zpool-features.7
+++ b/man/man7/zpool-features.7
@@ -219,7 +219,7 @@ to the end of the line is ignored.
.Sy Example :
.Bd -literal -compact -offset 4n
.No example# Nm cat Pa /usr/share/zfs/compatibility.d/grub2
-# Features which are supported by GRUB2
+# Features which are supported by GRUB2 versions from v2.12 onwards.
allocation_classes
async_destroy
block_cloning
@@ -243,6 +243,31 @@ userobj_accounting
zilsaxattr
zpool_checkpoint
+.No example# Nm cat Pa /usr/share/zfs/compatibility.d/grub2-2.06
+# Features which are supported by GRUB2 versions prior to v2.12.
+#
+# GRUB is not able to detect ZFS pool if snaphsot of top level boot pool
+# is created. This issue is observed with GRUB versions before v2.12 if
+# extensible_dataset feature is enabled on ZFS boot pool.
+#
+# This file lists all read-only comaptible features except
+# extensible_dataset and any other feature that depends on it.
+#
+allocation_classes
+async_destroy
+block_cloning
+device_rebuild
+embedded_data
+empty_bpobj
+enabled_txg
+hole_birth
+log_spacemap
+lz4_compress
+resilver_defer
+spacemap_histogram
+spacemap_v2
+zpool_checkpoint
+
.No example# Nm zpool Cm create Fl o Sy compatibility Ns = Ns Ar grub2 Ar bootpool Ar vdev
.Ed
.Pp
@@ -681,7 +706,7 @@ are destroyed.
Large dnodes allow more data to be stored in the bonus buffer,
thus potentially improving performance by avoiding the use of spill blocks.
.
-.feature com.delphix livelist yes
+.feature com.delphix livelist yes extensible_dataset
This feature allows clones to be deleted faster than the traditional method
when a large number of random/sparse writes have been made to the clone.
All blocks allocated and freed after a clone is created are tracked by the