--- a/features/luks/config.mk +++ a/features/luks/config.mk @@ -1,6 +1,7 @@ CRYPTSETUP_BIN ?= /usr/sbin/cryptsetup +CRYPTTAB_FILE ?= /etc/crypttab LUKS_DATADIR ?= $(FEATURESDIR)/luks/data LUKS_CIPHERS ?= aes LUKS_BLOCKCIPHERS ?= cbc LUKS_HASHES ?= sha256 -LUKS_MODULES = dm-crypt $(LUKS_CIPHERS) $(LUKS_BLOCKCIPHERS) $(LUKS_HASHES) +LUKS_MODULES = dm-crypt $(LUKS_CIPHERS) $(LUKS_BLOCKCIPHERS) $(LUKS_HASHES) --- a/features/luks/data/lib/handlers/050-luks +++ a/features/luks/data/lib/handlers/050-luks @@ -55,6 +55,16 @@ readkey() { handler() { nameluks="${LUKS_ROOT##*/}-luks" + if [ -r /etc/crypttab ]; then + LUKS_ROOT_UUID=$(blkid -o value -s UUID "$LUKS_ROOT") + while read crypttab_name crypttab_block crypttab_specifies crypttab_options; do + if [ x"$crypttab_block" = x"$LUKS_ROOT" ] || [ x"$crypttab_block" = x"UUID=$LUKS_ROOT_UUID" ]; then + nameluks=$crypttab_name + break + fi + done < /etc/crypttab + fi + # skip if $nameluks has already exist ! dmsetup info "$nameluks" >/dev/null 2>&1 || exit 0 --- a/features/luks/rules.mk +++ a/features/luks/rules.mk @@ -5,6 +5,7 @@ $(call require,devmapper,depmod-image) luks: devmapper @echo "Adding LUKS support ..." @put-file "$(ROOTDIR)" $(CRYPTSETUP_BIN) + @put-file "$(ROOTDIR)" $(CRYPTTAB_FILE) @put-tree "$(ROOTDIR)" $(LUKS_DATADIR) depmod-image: luks