Skip to content


Created on Dec 4, ’22 ・ Updated on Mar 5, ’23



  • Choose (I)nstall
  • Keyboard layout: en (or sf)
  • System hostname
  • Network interfaces to be configured
  • DNS domain name: my.domain
  • DNS nameservers: none
  • Password for root account
  • Start sshd by default: yes
  • Start X Window System by xenodm: no
  • Setup a user: yes
  • Allow root ssh login: no
  • Which disk is the root disk?
    • wd
    • sd
    • Disk setup: MBR, GPT, OpenBSD area, Edit
  • Disk layout
  • Location of sets: disk, is mounted: no
  • Timezone: Europe/Paris


  • Check for missing firmware with fw_update -vi.
  • Install or update firmware for all drivers with fw_update -a (Internet connection required).
  • Or download non-free firmware here and install them with fw_update -p <dir>, the .tgz firmware must be in the directory specified, no need to extract.

Creating a bootable USB from macOS

  1. Download installXX.fs (includes file sets, unlike minirootXX.fs)
  2. Insert USB key
  3. Get USB key device node diskutil list (e.g. /dev/disk2)
  4. Unmount key: diskutil unmountDisk /dev/diskX
  5. Write installer to key: sudo dd if=installXX.fs of=/dev/rdiskX bs=1m
  6. macOS will say the key can’t be read but that’s okay.

Partition layout

One partition layout

  1. Use (C)ustom layout
  2. Delete all partitions with d *
  3. Create swap with a b and with size e.g. 512M
  4. Create main partition with a with mount point /

Info: partion b is swap, partition c is whole disk

Bigger /usr for ports

  1. To use whole disk: W for MBR, G for GPT
  2. (E)dit auto layout
  3. p g prints all partitions
  4. R f resize auto allocated partition (f = /usr)
  5. Input new size, e.g. 25g
  6. q save & quit


  • Daemon is relayd, control is relayctl
  • Conf is at /etc/relayd.conf.
  • Interesting command is relayctl show summary.
  • /etc/rc.conf.local must be modified to start relayd at startup.
  • anchor "relayd/*” must be added in /etc/pf.conf.
  • The forward IPv6 address is the local IPv4 address converted to IPv6 address:
    relay tcp6to4 {
        listen on <ipv6 address> port 80
        forward to 0:0:0:0:0:ffff:c0a8:65 port 8080 inet

Cron jobs

  • Edit cron jobs with crontab -e.
  • List them with crontab -l.
    */5 * * * * /home/user/


Config for DHCP and IPv6

inet6 autoconf
inet6 alias <ipv6>


Config for IPv6?


Mounting a USB drive

Get the list of disks:

$ sysctl hw.disknames

Find out which partition to mount:

$ disklabel sd0
# /dev/rsd0c
type: SCSI

16 partitions:
# …
  i:    <size>    <offset>    <fstype>

Create the mount folder:

$ mkdir /mnt/folder

Mount the drive:

$ mount -t <fstype> /dev/sd0i /mnt/folder