From 050be02c02f166b12fa80e4db998818b077c41e9 Mon Sep 17 00:00:00 2001 From: q66 Date: Tue, 7 Mar 2023 02:07:01 +0100 Subject: [PATCH] initramfs: fix zpool get argument order When using the zfs initramfs scripts on my system, I get various errors at initramfs stage, such as: cannot open '-o': name must begin with a letter My zfs binaries are compiled with musl libc, which may be why this happens. In any case, fix the argument order to make the zpool binary happy, and to match its --help output. Reviewed-by: Brian Behlendorf Reviewed-by: Richard Yao Signed-off-by: Daniel Kolesa Closes #14572 --- contrib/initramfs/scripts/zfs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/contrib/initramfs/scripts/zfs b/contrib/initramfs/scripts/zfs index 19b5e4a57a..f0ea20ddc1 100644 --- a/contrib/initramfs/scripts/zfs +++ b/contrib/initramfs/scripts/zfs @@ -192,7 +192,7 @@ import_pool() # Verify that the pool isn't already imported # Make as sure as we can to not require '-f' to import. - "${ZPOOL}" get name,guid -o value -H 2>/dev/null | grep -Fxq "$pool" && return 0 + "${ZPOOL}" get -H -o value name,guid 2>/dev/null | grep -Fxq "$pool" && return 0 # For backwards compatibility, make sure that ZPOOL_IMPORT_PATH is set # to something we can use later with the real import(s). We want to @@ -882,12 +882,12 @@ mountroot() fi # In case the pool was specified as guid, resolve guid to name - pool="$("${ZPOOL}" get name,guid -o name,value -H | \ + pool="$("${ZPOOL}" get -H -o name,value name,guid | \ awk -v pool="${ZFS_RPOOL}" '$2 == pool { print $1 }')" if [ -n "$pool" ]; then # If $ZFS_BOOTFS contains guid, replace the guid portion with $pool ZFS_BOOTFS=$(echo "$ZFS_BOOTFS" | \ - sed -e "s/$("${ZPOOL}" get guid -o value "$pool" -H)/$pool/g") + sed -e "s/$("${ZPOOL}" get -H -o value guid "$pool")/$pool/g") ZFS_RPOOL="${pool}" fi