Hi Guys,

I think this is more of a debian problem, however I'm still yet to find a fix, only a general workaround. I figured if others are having this problem, posting here may help others in the future.

I have a set-up where, my USB drive acts as a new SATA drive (I assume this problem extends to general SATA drives). I have two LVM volumes, both encrypted. One contains the Kali root. For computers with AHCI set for SATA, on boot Kali does not detect the LVM partitions (however in initramfs I can load the volumes). The problem seems that on boot, the initramfs doesn't contain or have the AHCI module. I've tried adding AHCI and libAHCI to /etc/initramfs-tools/modules however still no dice. Seems that even if initramfs has AHCI modules, I can't detect my drive.

I think I need to recompile the kernel on a computer specifically with AHCI enabled, or to somehow manually recompile with this module (however I don't know how to do it). Any advice?

For those who have this problem:
Error: No Volumes Found (and simply running
lvm vgchange -ay
doesn't fix it)
You will have a config in your initramfs, /etc/initramfs-tools/conf.d/cryptroot which contains target=name,source=/dev/disk/by-uuid/<UUID-Unencrypted-Volume>,lvm=<name-of-lvm-volume>. This enabled the initramfs crypthook to look for lvm volumes, then decrypt them on boot and load root (which is specified in your boot loader). You can manually add the hooks so that they are built in initramfs by copying them from /usr/share/initramfs-tools/hooks/{lvm2,cryptroot} to /etc/initramfs-tools/hooks/ . If these aren't there, add them and then run:
update-initramfs -u -k all
This will rebuild your initramfs with lvm support, and you should be able to boot by configuring your SATA controller in the BIOS to run in compatibility (IDE) instead of AHCI.