1 diff -urpa dracut-056.orig/modules.d/90crypt/cryptroot-ask.sh dracut-056/modules.d/90crypt/cryptroot-ask.sh
2 --- dracut-056.orig/modules.d/90crypt/cryptroot-ask.sh 2022-02-18 12:32:53.000000000 +0100
3 +++ dracut-056/modules.d/90crypt/cryptroot-ask.sh 2022-08-28 19:27:11.079536407 +0200
4 @@ -112,6 +112,9 @@ while [ $# -gt 0 ]; do
6 cryptsetupopts="${cryptsetupopts} --${1}"
9 + keyscript=${1##keyscript=}
14 @@ -174,6 +177,15 @@ else
18 +if [ ! -z "$keyscript" -a -x "$keyscript" ]; then
19 + info "Executing keyscript $keyscript"
20 + eval $keyscript "$luksfile" | cryptsetup -d - $cryptsetupopts luksOpen "$device" "$luksname"
21 + cryptsetup status "$luksname" > /dev/null 2>&1
22 + if [ $? -eq 0 ]; then
27 if [ $ask_passphrase -ne 0 ]; then
28 luks_open="$(command -v cryptsetup) $cryptsetupopts luksOpen"
29 _timeout=$(getargs "rd.luks.timeout")
30 diff -urpa dracut-056.orig/modules.d/90crypt/module-setup.sh dracut-056/modules.d/90crypt/module-setup.sh
31 --- dracut-056.orig/modules.d/90crypt/module-setup.sh 2022-02-18 12:32:53.000000000 +0100
32 +++ dracut-056/modules.d/90crypt/module-setup.sh 2022-08-28 19:27:11.079536407 +0200
33 @@ -136,10 +136,26 @@ install() {
38 + keyscript=${1##keyscript=}
45 + if [ ! -z "${keyscript}" ]; then
46 + if [ -x "${keyscript}" ]; then
47 + if [ ! -d "${initdir}/etc/keyscripts" ]; then
48 + mkdir "${initdir}/etc/keyscripts" 2>/dev/null
50 + inst_script "${keyscript}" /etc/keyscripts/${keyscript##*/}
51 + _luksoptions=${_luksoptions/${keyscript%%=*}/\/etc\/keyscripts\/${keyscript##*/}}
53 + dwarning "Missing keyscript referenced in crypttab: ${keyscript}"
57 # include the entry regardless
58 if [ "${forceentry}" = "yes" ]; then
59 echo "$_mapper $_dev $_luksfile $_luksoptions"