Detect USB devices during boot in initrd

Have some feedback, questions, suggestions, or just fancy a chat? Pop it in here.
Post Reply
SirSkorpan
Posts: 3
Joined: Sun Oct 07, 2018 1:13 pm

Detect USB devices during boot in initrd

Post by SirSkorpan »

My goal is to set up a SBC with DietPi as a NAS/CloudServer with a USB drive (sdb) for storage. I'd like a partition (sdb1) of the USB drive to be encrypted and I want to decrypt the using a USB thumb drive (sdc) holding a key-file (on sdc1 in /test-key.key).

I'm trying to use a keyscript specified in grub's `cryptopt` in `/etc/default/grub` like this:

Code: Select all

cryptopt=target=cryptusb,source=/dev/disk/by-uuid=<uuid of sdb1>,keyscript=/lib/cryptsetup/scripts/passdev,key=/dev/disk/by-uuid/<uuid of sdc1>:/test-key.key:5,tries=2
I've added the `passdev` script to initramfs through a script in `/etc/initramfs-tools/hooks`, I also copied `cryptsetup` to initramfs the same way. I've confirmed that they are present in initramfs with `lsinitramfs`

But when I reboot the system with this config I get the message:

Code: Select all

cryptsetup (cryptusb): lvm is not avaliable
printed repeatedly before it boots into initrd (if that what the initramfs environment is called). At this point I also get a message:

Code: Select all

ALERT! /dev/disk/by-uuid/<uuid of sdb1> does not exist.
Check cryptopts=source= bootarg: cat/proc/cmdline
or missing modules, devices: cat /proc/modules: ls /dev
It seems to me that, for some reason, the USB drives are not detected in initrd. It doesn't seem to be a problem outside of initrd, since exiting gets me into the normal bash-terminal and here my devices turn up without trouble.

Do I need to manually load something into initrd in order for the USB drives to be detected?

I've also tried following this guide but I end up with the following error during `update-initramfs`:

Code: Select all

device-mapper: table ioctl on cryptusb failed: No such device or address
Command failed
cryptsetup: WARNING: failed to determine cipher modules to load for cryptusb
and then I get to the same point when I try to reboot the system. Any pointers how I can get the system to recognize my drives?
Post Reply