Free and open source disk encryption software.

# To create a new volume through a text user interface and use '/dev/urandom' as a source of random data:
veracrypt --text --create --random-source=</dev/urandom>

# To decrypt a volume interactively through a text user interface and mount it to a directory:
veracrypt --text <path/to/volume> <path/to/mount_point>

# To decrypt a partition using a keyfile and mount it to a directory:
veracrypt --keyfiles=<path/to/keyfile> </dev/sdXN> <path/to/mount_point>

# To dismount a volume on the directory it is mounted to:
veracrypt --dismount <path/to/mounted_point>