summary refs log tree commit diff
path: root/nixos/modules/tasks/filesystems
diff options
context:
space:
mode:
authorSvein Ove Aas <sveina@gmail.com>2016-07-13 01:18:48 +0100
committerSvein Ove Aas <sveina@gmail.com>2016-08-16 01:45:02 +0100
commit98b213a11041af39b39473906b595290e2a4e2f9 (patch)
tree7d97a3e3b62f82f67a897cc92ee0663495496524 /nixos/modules/tasks/filesystems
parent52a875fb2329c55070e86e3f85f1d788df10c2c5 (diff)
downloadnixlib-98b213a11041af39b39473906b595290e2a4e2f9.tar
nixlib-98b213a11041af39b39473906b595290e2a4e2f9.tar.gz
nixlib-98b213a11041af39b39473906b595290e2a4e2f9.tar.bz2
nixlib-98b213a11041af39b39473906b595290e2a4e2f9.tar.lz
nixlib-98b213a11041af39b39473906b595290e2a4e2f9.tar.xz
nixlib-98b213a11041af39b39473906b595290e2a4e2f9.tar.zst
nixlib-98b213a11041af39b39473906b595290e2a4e2f9.zip
zfs: Keep trying root import until it works
Works around #11003.
Diffstat (limited to 'nixos/modules/tasks/filesystems')
-rw-r--r--nixos/modules/tasks/filesystems/zfs.nix15
1 files changed, 13 insertions, 2 deletions
diff --git a/nixos/modules/tasks/filesystems/zfs.nix b/nixos/modules/tasks/filesystems/zfs.nix
index 05fd160f20b7..3149c860f301 100644
--- a/nixos/modules/tasks/filesystems/zfs.nix
+++ b/nixos/modules/tasks/filesystems/zfs.nix
@@ -247,8 +247,19 @@ in
               esac
             done
             ''] ++ (map (pool: ''
-            echo "importing root ZFS pool \"${pool}\"..."
-            zpool import -d ${cfgZfs.devNodes} -N $ZFS_FORCE "${pool}"
+            echo -n "importing root ZFS pool \"${pool}\"..."
+            trial=0
+            until msg="$(zpool import -d ${cfgZfs.devNodes} -N $ZFS_FORCE '${pool}' 2>&1)"; do
+              sleep 0.25
+              echo -n .
+              trial=$(($trial + 1))
+              if [[ $trial -eq 60 ]]; then
+                echo
+                echo "$msg"
+                break
+              fi
+            done
+            echo
         '') rootPools));
       };