You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
887 B
33 lines
887 B
#!/bin/sh |
|
# -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*- |
|
# ex: ts=8 sw=4 sts=4 et filetype=sh |
|
|
|
. /lib/dracut-lib.sh |
|
type crypttab_contains >/dev/null 2>&1 || . /lib/dracut-crypt-lib.sh |
|
|
|
dev=$1 |
|
luks=$2 |
|
|
|
crypttab_contains "$luks" && exit 0 |
|
|
|
allowdiscards="-" |
|
|
|
# parse for allow-discards |
|
if strstr "$(cryptsetup --help)" "allow-discards"; then |
|
if discarduuids=$(getargs "rd.luks.allow-discards"); then |
|
discarduuids=$(str_replace "$discarduuids" 'luks-' '') |
|
if strstr " $discarduuids " " ${luks##luks-}"; then |
|
allowdiscards="allow-discards" |
|
fi |
|
elif getargbool 0 rd.luks.allow-discards; then |
|
allowdiscards="allow-discards" |
|
fi |
|
fi |
|
|
|
echo "$luks $dev - timeout=0,$allowdiscards" >> /etc/crypttab |
|
|
|
if command -v systemctl >/dev/null; then |
|
systemctl daemon-reload |
|
systemctl start cryptsetup.target |
|
fi |
|
exit 0
|
|
|