summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xmkinitramfs18
1 files changed, 15 insertions, 3 deletions
diff --git a/mkinitramfs b/mkinitramfs
index 04eae42..baf69dd 100755
--- a/mkinitramfs
+++ b/mkinitramfs
@@ -164,6 +164,14 @@ fi
DESTDIR="$(mktemp -d ${TMPDIR:-/tmp}/mkinitramfs_XXXXXX)" || exit 1
chmod 755 "${DESTDIR}"
+
+# do not execute cache_run_scripts() if mounted with noexec
+NOEXEC=""
+fs=$(df $DESTDIR | tail -1 | awk '{print $6}')
+if [ -n "$fs" ] && mount | grep -q "on $fs .*noexec" ; then
+ NOEXEC=1
+fi
+
__TMPCPIOGZ="$(mktemp ${TMPDIR:-/tmp}/mkinitramfs-OL_XXXXXX)" || exit 1
DPKG_ARCH=`dpkg --print-architecture`
@@ -277,9 +285,13 @@ run_scripts /usr/share/initramfs-tools/hooks
run_scripts "${CONFDIR}"/hooks
# cache boot run order
-for b in $(cd "${DESTDIR}/scripts" && find . -mindepth 1 -type d); do
- cache_run_scripts "${DESTDIR}" "/scripts/${b#./}"
-done
+if [ -n "$NOEXEC" ]; then
+ echo "Warning: TMPDIR is mounted noexec, will not cache run scripts."
+else
+ for b in $(cd "${DESTDIR}/scripts" && find . -mindepth 1 -type d); do
+ cache_run_scripts "${DESTDIR}" "/scripts/${b#./}"
+ done
+fi
# generate module deps
depmod -a -b "${DESTDIR}" ${version}