Title: How to mount ISO or file disk images on OpenBSD | |
Author: Solène | |
Date: 15 June 2024 | |
Tags: openbsd | |
Description: In this article, you will learn how to mount ISO files on | |
OpenBSD or how to make an encrypted disk from a flat file. | |
# Introduction | |
If you ever happen to mount a .iso file on OpenBSD, you may wonder how | |
to proceed as the command `mount_cd9660` requires a device name. | |
While the solution is entirely documented into man pages and in the | |
official FAQ, it may not be easy to find it at first glance, especially | |
since most operating system allow to mount an iso file in a single step | |
where as OpenBSD requires an extra step. | |
OpenBSD FAQ: Mounting disk images | |
OpenBSD manual page: vnconfig(8) EXAMPLES section | |
Note that this method does also work for disk images, not only .iso | |
files. | |
# Exposing a file as a device | |
On OpenBSD you need to use the command `vnconfig` to map a file to a | |
device node, allowing interesting actions such as using a file as a | |
storage disk (which you can encrypt) or mounting a .iso file. | |
This command must be used as root as it manipulates files in /dev. | |
# Mounting an ISO file | |
Now, let's see how to mount a .iso file, which is a dump of a CD9660 | |
file (most of the time): | |
``` | |
vnconfig vnd0 /path/to/file.iso | |
``` | |
This will create a new device `/dev/vnd0`, now you can mount it on your | |
file-system with: | |
``` | |
mount -t cd9660 /dev/vnd0c /mnt | |
``` | |
You should be able to browser your iso file content in /mnt at this | |
point. | |
# Unmounting | |
If you are done with the file, you have to umount it with `umount /mnt` | |
and destroy the vnd device using `vnconfig -u vnd0`. | |
# Going further: Using a file as an encrypted disk | |
If you want to use a single file as a file system, you have to | |
provision the file with disk space using the command `dd`, you can fill | |
it with zeroes but if you plan to use encryption on top of it, it's | |
better to use random data. In the following example, you will create a | |
file `my-disk.img` of a size of 10 GB (1000 x 10 MB): | |
``` | |
dd if=/dev/random of=my-disk.img bs=10M count=1000 | |
``` | |
Now you can use vnconfig to expose it as a device: | |
``` | |
vnconfig vnd0 my-disk.img | |
``` | |
Finally, the command `bioctl` can be used to configure encryption on | |
the disk, `disklabel` to partition it and `newfs` to format the | |
partitions. You can follow OpenBSD FAQ guides, make sure use the the | |
device name `/dev/vnd0` instead of wd0 or sd0 from the examples. | |
OpenBSD FAQ: Encrypting external disk |