From 047803e9062facbd38d54113f86f8cb782806ff2 Mon Sep 17 00:00:00 2001 From: Friedrich Weber <56110206+frwbr@users.noreply.github.com> Date: Wed, 2 Apr 2025 01:07:46 +0200 Subject: [PATCH] contrib/initramfs: use LVM autoactivation for activating VGs (#17125) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently, the zfs initramfs-tools boot script under local-top calls `vgchange -ay`, which unconditionally activates all logical volumes (LVs) in all discovered volume groups (VGs). This causes all LVs to be active after boot. However, users may prefer to not activate certain VGs/LVs on boot. They might normally use the `--setautoactivation n` VG/LV flag or the `auto_activation_volume_list` LVM config option to achieve this, but since the script unconditionally activates all LVs, neither has an effect. To fix this, call `vgchange -aay` instead. This triggers LVM autoactivation, which honors autoactivation settings such as the `--setautoactivation` flag. It is also more in line with the LVM documentation, which says autoactivation is "meant to be used by activation commands that are run automatically by the system" [1]. Note that this change might break misconfigured setups that have ZFS on top of an LV for which autoactivation is disabled. [1] https://gitlab.com/lvmteam/lvm2/-/blob/cff93e4d/conf/example.conf.in#L1579 Reviewed-by: Fabian Grünbichler Signed-off-by: Friedrich Weber Reviewed-by: Tony Hutter --- contrib/initramfs/scripts/local-top/zfs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contrib/initramfs/scripts/local-top/zfs b/contrib/initramfs/scripts/local-top/zfs index 6b80e9f43..fc455077e 100755 --- a/contrib/initramfs/scripts/local-top/zfs +++ b/contrib/initramfs/scripts/local-top/zfs @@ -41,9 +41,9 @@ activate_vg() return 1 fi - # Detect and activate available volume groups + # Detect and auto-activate available volume groups /sbin/lvm vgscan - /sbin/lvm vgchange -a y --sysinit + /sbin/lvm vgchange -aay --sysinit return $? }