From: Victor Lowther Date: Fri, 13 Feb 2009 12:42:48 +0000 (-0800) Subject: [PATCH 32/50] Created pre-mount hook directory X-Git-Tag: 0.1~446 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=cd20f1f6ebed3c50d69db35d22519d57ae846ecc;p=thirdparty%2Fdracut.git [PATCH 32/50] Created pre-mount hook directory This is for tasks that should run after device discovery, but before mounting the new rootfs. Things like cryptoroot and resume from hibernate should go here. Hooks are sourced, not executed as separate scripts. --- diff --git a/init b/init index b12743c88..0b158dc26 100755 --- a/init +++ b/init @@ -14,9 +14,17 @@ emergency_shell() } getarg() { + local o; for o in $(< /proc/cmdline); do [[ $o == $1 ]] && { echo $o; break; } done + return 1 +} + +source_all() { + local f + [[ -d $1 ]] || return + for f in "$d"/*; do; . "$f"; done } echo "Starting initrd..." @@ -67,12 +75,8 @@ esac tries=0 echo "Waiting up to 30 seconds for $root to become available" udevadm settle --timeout=30 -[[ -f /cryptroot ]] && { - echo "Encrypted root detected." - cryptopts=$(< /cryptroot) - /sbin/cryptsetup luksOpen $cryptopts || emergency_shell - udevadm settle --timeout=30 -} +source_all /pre-mount + echo "Trying to mount rootfs $root" [[ -e $root ]] || emergency_shell ln -s "$root" /dev/root diff --git a/pre-mount/50cryptroot b/pre-mount/50cryptroot new file mode 100644 index 000000000..39e6e6ec3 --- /dev/null +++ b/pre-mount/50cryptroot @@ -0,0 +1,6 @@ +#!/bin/bash +[[ -f /cryptroot ]] || return +echo "Encrypted root detected." +cryptopts=$(< /cryptroot) +/sbin/cryptsetup luksOpen $cryptopts || emergency_shell +udevadm settle --timeout=30 diff --git a/pre-mount/99resume b/pre-mount/99resume new file mode 100644 index 000000000..7eacd387f --- /dev/null +++ b/pre-mount/99resume @@ -0,0 +1,7 @@ +#!/bin/bash +resume=$(getarg 'resume=*') || return +resume=${resume#resume=} +[[ -b $resume ]] || return +# parsing the output of ls is Bad, but until there is a better way... +read x x x x maj min x < <(ls -lH "$resume") +echo "${maj/,/}:$min"> /sys/power/resume