summaryrefslogtreecommitdiffstats
path: root/etc/init.d/zfs-import.in
diff options
context:
space:
mode:
Diffstat (limited to 'etc/init.d/zfs-import.in')
-rwxr-xr-xetc/init.d/zfs-import.in24
1 files changed, 16 insertions, 8 deletions
diff --git a/etc/init.d/zfs-import.in b/etc/init.d/zfs-import.in
index 1bc3ebe9a..dc674c49e 100755
--- a/etc/init.d/zfs-import.in
+++ b/etc/init.d/zfs-import.in
@@ -88,13 +88,13 @@ do_import()
# make sure we're able to actually import it/them later.
USE_DISK_BY_ID='yes'
- # Filter out duplicates (pools found with the simpl
- # "zpool import" but which is also found with the
- # "zpool import -d ...").
- npools=$(echo "$npools" | sed "s,$available_pools,,")
-
if [ -n "$available_pools" ]
then
+ # Filter out duplicates (pools found with the simpl
+ # "zpool import" but which is also found with the
+ # "zpool import -d ...").
+ npools=$(echo "$npools" | sed "s,$available_pools,,")
+
# Add the list to the existing list of
# available pools
available_pools="$available_pools;$npools"
@@ -141,14 +141,22 @@ do_import()
if [ -n "$USE_DISK_BY_ID" -a -z "$ZPOOL_IMPORT_PATH" ]
then
local dirs
- dirs="$(find /dev/disk/by-* -maxdepth 0 -type d | \
- grep -v by-vdev)"
- dirs="$(echo "$dirs" | sed 's, ,:,g')"
+ dirs="$(for dir in $(echo /dev/disk/by-*)
+ do
+ # Ignore by-vdev here - we wan't it first!
+ echo "$dir" | grep -q /by-vdev && continue
+ [ ! -d "$dir" ] && continue
+
+ echo -n "$dir:"
+ done | sed 's,:$,,g')"
+
if [ -d "/dev/disk/by-vdev" ]
then
# Add by-vdev at the beginning.
ZPOOL_IMPORT_PATH="/dev/disk/by-vdev:"
fi
+
+ # ... and /dev at the very end, just for good measure.
ZPOOL_IMPORT_PATH="$ZPOOL_IMPORT_PATH$dirs:/dev"
fi