While trying to encrypt a hard drive with certain ciphers like aes-xts-plain, serpent, and twofish I got thrown back by an error each time.

root@bt:/dev# cryptsetup -y -v -c aes-xts-plain -h sha256 luksFormat /dev/sda

WARNING!
========
This will overwrite data on /dev/sda irrevocably.

Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase:
Verify passphrase:
Command failed: Failed to setup dm-crypt key mapping.
Check kernel for support for the aes-xts-plain cipher spec and verify that /dev/sda contains at least 133 sectors
root@bt:/dev#
Solution: The default key length for cryptsetup is 128 bits, which is unavailable for the xts mode according to this article. The solution is to add a -s 256 parameter to the command.

root@bt:/dev# cryptsetup -y -v -c aes-xts-plain -h sha256 -s 256 luksFormat /dev/sda

WARNING!
========
This will overwrite data on /dev/sda irrevocably.

Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase:
Verify passphrase:
Command successful.
root@bt:/dev#