diff --git a/diskimage_builder/elements/iscsi-boot/environment.d/open-iscsi-config b/diskimage_builder/elements/iscsi-boot/environment.d/open-iscsi-config
index 52b815c41..3036fd8e7 100644
--- a/diskimage_builder/elements/iscsi-boot/environment.d/open-iscsi-config
+++ b/diskimage_builder/elements/iscsi-boot/environment.d/open-iscsi-config
@@ -1,10 +1,4 @@
 if [[ $DISTRO_NAME = "centos7" ]]; then
-    eval declare -A image_elements=($(get_image_element_array))
-    found=0
-    for i in "${!image_elements[@]}"; do
-        [ "$i" = "dracut-regenerate" ] && found=1
-    done
-    [ "$found" = 0 ] && echo "The dracut-regenerate element is required!" && exit 1
 
     DIB_DRACUT_ENABLED_MODULES+="
 - name: network
diff --git a/diskimage_builder/elements/iscsi-boot/extra-data.d/50-check-dracut-regenerate b/diskimage_builder/elements/iscsi-boot/extra-data.d/50-check-dracut-regenerate
new file mode 100755
index 000000000..a079c81e7
--- /dev/null
+++ b/diskimage_builder/elements/iscsi-boot/extra-data.d/50-check-dracut-regenerate
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+if [ ${DIB_DEBUG_TRACE:-1} -gt 0 ]; then
+    set -x
+fi
+set -eu
+set -o pipefail
+
+if [[ $DISTRO_NAME = "centos7" ]]; then
+    eval declare -A image_elements=($(get_image_element_array))
+    found=0
+    for i in "${!image_elements[@]}"; do
+        [ "$i" = "dracut-regenerate" ] && found=1
+    done
+    [ "$found" = 0 ] && echo "The dracut-regenerate element is required!" && exit 1
+
+fi