fix #4440: cherry-pick patch for mountpoint=legacy on /
As reported having set 'mountpoint=legacy' on the root dataset (for a default install this would be 'rpool/ROOT/pve-1') for mounting through e.g. /etc/fstab breaks booting in initramfs The cherry-picked patch is already applied to zfs-2.1.8-staging upstream so will be included in the next zfs point release. reproduced the issue on a VM with ZFS on root by: * booting into a PVE 7.3 iso (to have zfs and an inactive rpool/ROOT/pve-1) * `zpool import -ocachefile=none -N -f rpool * `zfs set mountpoint=legacy rpool/ROOT/pve-1` * `mount -t zfs rpool/ROOT/pve-1 /mnt * `echo "rpool/ROOT/pve-1 / zfs defaults 0 0" >> /mnt/etc/fstab` * `zpool export rpool` * reboot - the boot breaks with zfs-initramfs 2.1.7-pve1 but works with this patch applied Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
This commit is contained in:
parent
796e3f981f
commit
d0e8c24e02
58
debian/patches/0012-initramfs-Fix-legacy-mountpoint-rootfs.patch
vendored
Normal file
58
debian/patches/0012-initramfs-Fix-legacy-mountpoint-rootfs.patch
vendored
Normal file
@ -0,0 +1,58 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Ryan Moeller <ryan@iXsystems.com>
|
||||
Date: Mon, 12 Dec 2022 13:23:06 -0500
|
||||
Subject: [PATCH] initramfs: Fix legacy mountpoint rootfs
|
||||
|
||||
Legacy mountpoint datasets should not pass `-o zfsutil` to `mount.zfs`.
|
||||
Fix the logic in `mount_fs()` to not forget we have a legacy mountpoint
|
||||
when checking for an `org.zol:mountpoint` userprop.
|
||||
|
||||
Reviewed-by: Richard Yao <ryao@gentoo.org>
|
||||
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
|
||||
Signed-off-by: Ryan Moeller <ryan@iXsystems.com>
|
||||
Closes #14274
|
||||
(cherry picked from commit 786ff6a6cb33226b4f4292c7569b9093286f74d9)
|
||||
(cherry picked from commit f28c7302cb77a8cb6112690d0eed0bf4adeeae15)
|
||||
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
|
||||
---
|
||||
contrib/initramfs/scripts/zfs | 20 ++++++++------------
|
||||
1 file changed, 8 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/contrib/initramfs/scripts/zfs b/contrib/initramfs/scripts/zfs
|
||||
index 9169adf5f..c7548fa07 100644
|
||||
--- a/contrib/initramfs/scripts/zfs
|
||||
+++ b/contrib/initramfs/scripts/zfs
|
||||
@@ -331,25 +331,21 @@ mount_fs()
|
||||
# Can't use the mountpoint property. Might be one of our
|
||||
# clones. Check the 'org.zol:mountpoint' property set in
|
||||
# clone_snap() if that's usable.
|
||||
- mountpoint=$(get_fs_value "$fs" org.zol:mountpoint)
|
||||
- if [ "$mountpoint" = "legacy" ] ||
|
||||
- [ "$mountpoint" = "none" ] ||
|
||||
- [ "$mountpoint" = "-" ]
|
||||
+ mountpoint1=$(get_fs_value "$fs" org.zol:mountpoint)
|
||||
+ if [ "$mountpoint1" = "legacy" ] ||
|
||||
+ [ "$mountpoint1" = "none" ] ||
|
||||
+ [ "$mountpoint1" = "-" ]
|
||||
then
|
||||
if [ "$fs" != "${ZFS_BOOTFS}" ]; then
|
||||
# We don't have a proper mountpoint and this
|
||||
# isn't the root fs.
|
||||
return 0
|
||||
- else
|
||||
- # Last hail-mary: Hope 'rootmnt' is set!
|
||||
- mountpoint=""
|
||||
fi
|
||||
- fi
|
||||
-
|
||||
- # If it's not a legacy filesystem, it can only be a
|
||||
- # native one...
|
||||
- if [ "$mountpoint" = "legacy" ]; then
|
||||
ZFS_CMD="mount.zfs"
|
||||
+ # Last hail-mary: Hope 'rootmnt' is set!
|
||||
+ mountpoint=""
|
||||
+ else
|
||||
+ mountpoint="$mountpoint1"
|
||||
fi
|
||||
fi
|
||||
|
1
debian/patches/series
vendored
1
debian/patches/series
vendored
@ -9,3 +9,4 @@
|
||||
0009-Patch-move-manpage-arcstat-1-to-arcstat-8.patch
|
||||
0010-arcstat-Fix-integer-division-with-python3.patch
|
||||
0011-arc-stat-summary-guard-access-to-l2arc-MFU-MRU-stats.patch
|
||||
0012-initramfs-Fix-legacy-mountpoint-rootfs.patch
|
||||
|
Loading…
Reference in New Issue
Block a user