OpenBSD Update Procedure


OpenBSD Update Procedure

This is a brief overview of how I upgrade to the latest OpenBSD release. Mostly for my own documentation purposes.

Prepare

  1. Backup existing configuration files to avoid things like sshd host key changes

    tar -czf /home/whistler-20250620.tar.gz /etc /home/rpaisley /root /var
    
  2. Make a note of which ethernet interfaces map to which devices

    $ ifconfig -a
    re0: flags=808843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,AUTOCONF4> mtu 1500
      lladdr 88:c9:b3:bf:0d:16
      index 1 priority 0 llprio 3
      groups: outside egress
      media: Ethernet autoselect (1000baseT full-duplex,rxpause,txpause)
      status: active
      inet 192.168.1.2 netmask 0xffffff00 broadcast 192.168.1.255
    re1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
      lladdr 88:c9:b3:bf:0d:17
      index 2 priority 0 llprio 3
      media: Ethernet autoselect (1000baseT full-duplex,rxpause,txpause)
      status: active
      inet 10.1.1.254 netmask 0xffffff00 broadcast 10.1.1.255
    re2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
      lladdr 88:c9:b3:bf:0d:18
      index 3 priority 0 llprio 3
      media: Ethernet autoselect (1000baseT full-duplex)
      status: active
      inet 10.1.3.254 netmask 0xffffff00 broadcast 10.1.3.255
    re3: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
      lladdr 88:c9:b3:bf:0d:19
      index 4 priority 0 llprio 3
      media: Ethernet autoselect (1000baseT full-duplex)
      status: active
      inet 10.1.2.254 netmask 0xffffff00 broadcast 10.1.2.255
    re4: flags=808843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,AUTOCONF4> mtu 1500
      lladdr 00:e0:4c:68:14:f7
      index 5 priority 0 llprio 3
      groups: outside
      media: Ethernet autoselect (1000baseT full-duplex)
      status: active
      inet 67.241.21.20 netmask 0xfffffc00 broadcast 67.241.23.255
    re5: flags=808843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,AUTOCONF4> mtu 1500
      lladdr 00:e0:4c:68:14:f8
      index 6 priority 0 llprio 3
      media: Ethernet autoselect (none)
      status: no carrier
    
  3. Save list of installed packages

    pkginfo | sort
    
  4. Download bsd.rd from latest release and boot into environment

    boot bsd77.rd
    

Install

1. `I` for Install
1. Return to accept default keyboard
1. `whistler` for system hostname
1. `re0` for network
1. return for `autoconf` IPV4
1. return for `none` IPV6
1. return to finish network interfaces
1. `root` password
1. return to start sshd by default
1. return to not use X
1. `rpaisley` to setup user
1. `Rob Paisley` as full name
1. `rpaisley` password
1. return to deny `root` login via sshd
1. return to accept [US/Eastern] as time zone
1. return to accept `sd0` as root disk
1. return to disable ecryption
1. `G` to use Whole Disk GPT
1. return to accept auto layout
1. return to accept `http` as install sets
1. return to use no proxy
1. return to use cdn.openbsd.org as http server
1. return to use default server directory
1. `-c*` to skip installation of compiler
1. return to start downloading sets
1. return to state done with sets
1. return to reboot
1. Login as `root`

   ```console
   # syspatch
   # reboot

Restore

  1. scp original backup back to /root
  2. Extract /root over exiting /root
  3. Update configuration using check.sh update
  4. Reboot