A step-by-step guide to installing OpenBSD through the installer, understanding file set choices, and managing disks with fdisk (GPT), disklabel, the FFS2 filesystem, and swap so partitions are secure and production-ready.

In episode 2 you understood the OpenBSD architecture and the difference between the base system and packages. Now comes the most practical moment: installing OpenBSD. This installation is the gateway — once the system is running, all the following episodes (users, services, networking, firewall) live on top of this foundation.
The OpenBSD installer is known as one of the most honest installers: pure text, no GUI, no assumptions. Every question can be answered with a sensible default, or customized. The same philosophy applies here: if you're unsure, follow the defaults — OpenBSD's defaults are designed to be safe.
Make sure your VM or hardware has the installer image ready (episode 0). Boot from the installer media and you'll reach the installation prompt. Installation is done as user root directly in the installer kernel (bsd.rd — the RAMDISK kernel).
When downloading a release, you'll see several files in the amd64/ directory:
| File | Function |
|---|---|
install74.iso | Full ISO for booting and installing |
bsd | The main generic kernel |
bsd.rd | The RAMDISK kernel for installation and repair |
base74.tgz | Base system: all core utilities |
comp74.tgz | Compiler, headers, and build tools |
game74.tgz, xbase74.tgz, etc. | Optional additional sets |
For a basic server, base and comp (if you want to build from source) are enough. Games and X are not required for a server.
The installer asks the following questions in sequence. Answer according to your lab:
us or de.obsd1. This will be stored in /etc/myname.yes — but remember, sshd will only accept logins according to the sshd_config configuration that will be hardened in episode 14.After the file sets are extracted, the installer offers to save the installation configuration (/root/install.site) and performs the final configuration before reboot.
"PC"-level partitions are managed with fdisk. OpenBSD supports both the MBR and GPT partition schemes. It's recommended to use GPT for modern disks, especially above 2 TB and with bootloaders that support it. The installer steps display:
Use (W)hole disk MBR, (w)hole disk GPT, (C)ustom layout or (A)bort? [a] wAnswering w uses the whole disk with a GPT partition table. This gives one large partition for OpenBSD, which is then further divided by disklabel.
Above the OpenBSD partition, disklabel manages internal partitions with letters (a, b, d, etc.). This is the second layer that distinguishes OpenBSD from Linux distributions: OpenBSD uses disklabel, not just a partition table. The default layout proposed by the installer is usually already good:
a: root filesystem (/)b: swapd: other filesystems (if the disk is expanded)OpenBSD's default filesystem is FFS2 (Fast File System 2), an improved UFS derivative: it supports large files, filesystem snapshots, soft updates, and optional journaling (softdep). Mount and maintenance details are in episode 7.
For those of you who want to customize the layout, here's an example split for a 20 GB disk on a lab system:
part size mount
a 512M /
b 1G swap
d 1G /tmp
e 8G /var
f 9.4G /home/tmp is separate and small because on OpenBSD it's mounted with the restricted wxallowed option, and /var is given room for logs and mail. This structure isn't the only answer — what matters is that you understand why separating swap (b) and giving space to /var makes sense.
Warning
Swap on OpenBSD is a partition (b) inside disklabel, not a file on the filesystem. Although a swap file can be added (see episode 7), having a swap partition since installation is the standard and most reliable practice.
After the sets are extracted and the final configuration is done, the installer offers to reboot. On the first reboot, check that the system works well:
uname -a
dmesg | head -20
df -h
pkg_infodmesg shows the devices detected; df -h shows the filesystem layout that was created; pkg_info should be empty for a pure base system. This is the clean ground zero of OpenBSD.
An administrator who doesn't understand partitions will struggle when a disk fills up, when /var needs to be expanded, or when recovering a system. OpenBSD deliberately makes this process transparent: you see exactly what happens to the disk, not hidden behind a GUI. This investment of understanding will pay off in episodes 7 and 11.
In episode 3 you installed OpenBSD step by step: understanding file sets, running the text installer, choosing the GPT scheme with fdisk, dividing the disk with disklabel, using FFS2 as the filesystem, and setting up the swap partition. The result is a pure base system ready to be shaped.
Key takeaways:
bsd, bsd.rd, and base74.tgz; X and games are optional for servers.fdisk manages GPT, disklabel manages lettered partitions (a = root, b = swap).In the next episode, episode 4, we'll manage packages with pkg_add — installing third-party software, inspecting with pkg_info, removing with pkg_delete, understanding PKG_PATH, and getting to know ports and the parallel build tool dpb. Your base system is clean; now it's time to learn how to extend it safely!