Encrypt a USB flash drive on OpenBSD.
2019-08-24
This are some notes to encrypt a USB flash drive on OpenBSD, is taken from the OpenBSD FAQ just with a bit more explanation so I can remember what's all about.
Of course, you should not trust anything I say here and check bioctl(8) man page and the already mentioned FAQ.
On this example we assume the USB drive is sd3
. All commands have to be
executed by root
(hence the #
) or using doas(1)
.
The first time, to create the encrypted drive, it is recommended to write random data to the disk.
# dd if=/dev/urandom of=/dev/rsd3c bs=1m
Then partition the disk (-i
reinitializes the partition table and -y
answers yes to all prompts).
# fdisk -iy sd3
After that create a partition of type RAID
with disklabel(8)
. This command
is interactive, check the man page for that. Is quite easy.
# disklabel -E sd3
Now you can create the encrypted volume. The parameter -c
specifies the
RAID
level for our volume, C
is a CRYPTO
volume. -l sd3
specifies the
chunk device to use. And softraid0
is the softraid(4)
device.
# bioctl -c C -l sd3a softraid0
That will ask for password twice and it will respond with the new created device:
softraid0: CRYPTO volume attached as sd4
We can "clear" the new device filling it with zeros, initialize the device and
create a partition (i
in this case, usually reserved to partitions outside
the disklabel, like MS-DOS partitions).
# dd if=/dev/zero of=/dev/rsd4c bs=1m count=1
# fdisk -iy sd4
# disklabel -E sd4
Create now the file system on the new partition and mount it:
# newfs sd4i
# mount /dev/sd4i /mnt/secretstuff
To remove the device, unmount it and then detach the crypto device:
# umount /mnt/secretstuff
# bioctl -d sd4
In order to mount the device again, you have to attach it again with the same command you used to create the crypto device, and then mount it:
# bioctl -c C -l sd3a softraid0
# mount /dev/sd4i /mnt/secretstuff
Remember to unmount and detach before removing it.
Have any comments ? Send an email to the comments address.