Você pode configurar isso usando um script crypttab, exemplo de entrada crypttab:
# target,sourcedev,keyfile,options
cdisk3 /dev/sda3 none cipher=twofish,hash=ripemd160,size=256,keyscript=/path/to/script
O script será executado com keyfile (neste caso, "none") como o único argumento, e a saída do script será usada como a chave.
Ele obtém o restante da entrada como variáveis de ambiente:
CRYPTTAB_NAME
The target name
CRYPTTAB_SOURCE
The source device
CRYPTTAB_KEY
The key file
CRYPTTAB_OPTIONS
A list of exported crypttab options
CRYPTTAB_OPTION_<option>
The value of the appropriate crypttab option, with value set to 'yes'
in case the option is merely a flag.
Eu obtive a maior parte do Manual da página crypttab (5), é melhor escrito do que o que eu posso fornecer.
Naturalmente, uma configuração como essa será difícil de garantir e depende muito do que você coloca no script.