diff options
Diffstat (limited to 'abs/core/cryptsetup/encrypt_install')
-rw-r--r-- | abs/core/cryptsetup/encrypt_install | 56 |
1 files changed, 37 insertions, 19 deletions
diff --git a/abs/core/cryptsetup/encrypt_install b/abs/core/cryptsetup/encrypt_install index 9446e68..38e5ddc 100644 --- a/abs/core/cryptsetup/encrypt_install +++ b/abs/core/cryptsetup/encrypt_install @@ -1,26 +1,44 @@ -# vim: set ft=sh: +#!/bin/bash -install () -{ - if [ -z "${CRYPTO_MODULES}" ]; then - MODULES=" dm-crypt $(all_modules "/crypto/") " +build() { + local mod + + add_module dm-crypt + if [[ $CRYPTO_MODULES ]]; then + for mod in $CRYPTO_MODULES; do + add_module "$mod" + done else - MODULES=" dm-crypt ${CRYPTO_MODULES} " + add_all_modules '/crypto/' fi - FILES="" - SCRIPT="encrypt" - add_dir "/dev/mapper" - [ -f "/sbin/cryptsetup" ] && add_binary "/sbin/cryptsetup" "/sbin/cryptsetup" - [ -f "/usr/sbin/cryptsetup" ] && add_binary "/usr/sbin/cryptsetup" "/sbin/cryptsetup" - add_binary "/sbin/dmsetup" - add_file "/lib/udev/rules.d/10-dm.rules" - add_file "/lib/udev/rules.d/13-dm-disk.rules" - add_file "/lib/udev/rules.d/95-dm-notify.rules" + + add_binary "cryptsetup" + add_binary "dmsetup" + add_file "/usr/lib/udev/rules.d/10-dm.rules" + add_file "/usr/lib/udev/rules.d/13-dm-disk.rules" + add_file "/usr/lib/udev/rules.d/95-dm-notify.rules" + add_file "/usr/lib/initcpio/udev/11-dm-initramfs.rules" "/usr/lib/udev/rules.d/11-dm-initramfs.rules" + + add_runscript } -help () -{ -cat<<HELPEOF - This hook allows for an encrypted root device. +help() { + cat <<HELPEOF +This hook allows for an encrypted root device. Users should specify the device +to be unlocked using 'cryptdevice=device:dmname' on the kernel command line, +where 'device' is the path to the raw device, and 'dmname' is the name given to +the device after unlocking, and will be available as /dev/mapper/dmname. + +For unlocking via keyfile, 'cryptkey=device:fstype:path' should be specified on +the kernel cmdline, where 'device' represents the raw block device where the key +exists, 'fstype' is the filesystem type of 'device' (or auto), and 'path' is +the absolute path of the keyfile within the device. + +Without specifying a keyfile, you will be prompted for the password at runtime. +This means you must have a keyboard available to input it, and you may need +the keymap hook as well to ensure that the keyboard is using the layout you +expect. HELPEOF } + +# vim: set ft=sh ts=4 sw=4 et: |