Last year I replaced, on the Raspberry Pi, the ArchLinux ARM with just Kodi installed with LibreELEC.
Today I plugged an external disk encrypted with dm-crypt, but to my full surprise this isn’t supported.
Luckily the project is open source and sky42 already provides a LibreELEC version with dm-crypt built-in support.
Once I flashed sky42’s version, I setup automated mount at startup via the autostart.sh script and the corresponding umount via shutdown.sh this way:
// copy your keyfile into /storage via SSH
$ cat /storage/.config/autostart.sh
cryptsetup luksOpen /dev/sda1 disk1 --key-file /storage/keyfile
mount /dev/mapper/disk1 /media
$ cat /storage/.config/shutdown.sh
umount /media
cryptsetup luksClose disk1
Reboot it and voilà!
Automount
If you want to automatically mount the disk whenever you plug it, then create the following udev rule:
// Find out ID_VENDOR_ID and ID_MODEL_ID for your drive by using `udevadm info`
$ cat /storage/.config/udev.rules.d/99-automount.rules
ACTION=="add", SUBSYSTEM=="usb", SUBSYSTEM=="block", ENV{ID_VENDOR_ID}=="0000", ENV{ID_MODEL_ID}=="9999", RUN+="cryptsetup luksOpen $env{DEVNAME} disk1 --key-file /storage/keyfile", RUN+="mount /dev/mapper/disk1 /media"
Tags: howto, floss