OpenBSD Amsterdam Logo
477 VMs deployed 🐡

Upgrade your VM

OpenBSD 6.9 is released! There are two ways you can upgrade your VM.

Either use sysupgrade(8) or do a manual upgrade.


The ntpd options -s and -S are going to be removed soon and at startup with print:

-s option no longer works and will be removed soon. Please reconfigure to use constraints or trusted servers.

Make sure you remove -s from ntpd_flags from /etc/rc.conf.local. For more information


vm03$ doas sysupgrade

SHA256.sig   100% |*************************************|  2144       00:00
Signature Verified
INSTALL.amd64 100% |************************************| 43523       00:00
base69.tgz   100% |*************************************|   291 MB    00:14
bsd          100% |*************************************| 20423 KB    00:01       100% |*************************************| 20515 KB    00:01
bsd.rd       100% |*************************************|  4107 KB    00:00
comp69.tgz   100% |*************************************| 85958 KB    00:04
game69.tgz   100% |*************************************|  2741 KB    00:00
man69.tgz    100% |*************************************|  7560 KB    00:00
xbase69.tgz  100% |*************************************| 29789 KB    00:01
xfont69.tgz  100% |*************************************| 39342 KB    00:02
xserv69.tgz  100% |*************************************| 18351 KB    00:01
xshare69.tgz 100% |*************************************|  4502 KB    00:00
Verifying sets.
Fetching updated firmware.

Your VM will reboot and start the upgrade process. You can follow this via the console if you want.


Check 6.9 errata and apply available patches.

vm03$ doas syspatch
Relinking to create unique kernel... done; reboot to load the new kernel
Errata can be reviewed under /var/syspatch
vm03# reboot
Connection to XXX.XXX.XXX.XXX closed by remote host.

Connect to the console

To get connected to the console you need to have access to the host your VM is running on. The same username and public SSH key, as provided for the VM, are used to create a local user on the host.

When this is done you can use vmctl(8) to manage your VM.
The options you have are:

server10$ vmctl console id
server10$ vmctl start [-c] id
server10$ vmctl stop [-fw] id

-f Forcefully stop the VM without attempting a graceful shutdown.
-w Wait until the VM has been terminated.
-c Automatically connect to the VM console.

Note: id can also be your VM name.

Manual Upgrade

Upgrade your VM by downloading bsd.rd and moving it to /

vm03$ ftp -V{bsd.rd,SHA256,SHA256.sig}
bsd.rd       100% |**********************************| 10149 KB    00:01    
SHA256       100% |**********************************|  1992       00:00    
SHA256.sig   100% |**********************************|  2144       00:00    
vm03$ signify -Cp /etc/signify/ -x SHA256.sig bsd.rd
Signature Verified
bsd.rd: OK
vm03$ doas install -g wheel -o root -m 700 bsd.rd /

When that is done you can reboot your VM and make sure you boot the new bsd.rd. You will be prompted for what do to. Select either (U)pgrade or (A)utoinstall.

After selecting (U)pgrade can pretty much enter your way through. The one exception might be the install sets.

You can also use (A)utoinstall, your VM will look for upgrade.conf. The one we are providing is:

Server directory? = pub/OpenBSD/6.9/amd64

The below install example will be very similar between (U)pgrade and (A)utoinstall.

SeaBIOS (version 1.11.0p0-OpenBSD-vmm)
Using drive 0, partition 3.
probing: pc0 com0 mem[638K 510M a20=on]
disk: hd0+
>> OpenBSD/amd64 BOOT 3.37
switching console to com0
>> OpenBSD/amd64 BOOT 3.47
boot> bsd.rd

Welcome to the OpenBSD/amd64 6.9 installation program.
(I)nstall, (U)pgrade, (A)utoinstall or (S)hell? u
At any prompt except password prompts you can escape to a shell by
typing '!'. Default answers are shown in []'s and are selected by
pressing RETURN.  You can exit this program at any time by pressing
Control-C, but this can leave your system in an inconsistent state.

Terminal type? [vt220]
Available disks are: sd0.
Which disk is the root disk? ('?' for details) [sd0]
Checking root filesystem (fsck -fp /dev/sd0a)...OK.
Mounting root filesystem (mount -o ro /dev/sd0a /mnt)...OK.
vio0: bound to from (0c:c4:7a:6b:f8:62)
Force checking of clean non-root filesystems? [no]
fsck -p 2e01de5f119ea24b.k...OK.
fsck -p 2e01de5f119ea24b.d...OK.
fsck -p 2e01de5f119ea24b.f...OK.
fsck -p 2e01de5f119ea24b.g...OK.
fsck -p 2e01de5f119ea24b.h...OK.
fsck -p 2e01de5f119ea24b.j...OK.
fsck -p 2e01de5f119ea24b.i...OK.
fsck -p 2e01de5f119ea24b.e...OK.
/dev/sd0a (2e01...a) on /mnt type ffs (rw, local)
/dev/sd0k (2e01...k) on /mnt/home type ffs (rw, local, nodev, nosuid)
/dev/sd0d (2e01...d) on /mnt/tmp type ffs (rw, local, nodev, nosuid)
/dev/sd0f (2e01...f) on /mnt/usr type ffs (rw, local, nodev)
/dev/sd0g (2e01...g) on /mnt/usr/X11R6 type ffs (rw, local, nodev)
/dev/sd0h (2e01...h) on /mnt/usr/local type ffs (rw, local, nodev, wxallowed)
/dev/sd0j (2e01...j) on /mnt/usr/obj type ffs (rw, local, nodev, nosuid)
/dev/sd0i (2e01...i) on /mnt/usr/src type ffs (rw, local, nodev, nosuid)
/dev/sd0e (2e01...e) on /mnt/var type ffs (rw, local, nodev, nosuid)

Let's upgrade the sets!
Location of sets? (disk http or 'done') [http]
HTTP proxy URL? (e.g. 'http://proxy:8080', or 'none') [none]
HTTP Server? (hostname, list#, 'done' or '?') []
Server directory? [pub/OpenBSD/6.9/amd64]

Select sets by entering a set name, a file name pattern or 'all'. De-select
sets by prepending a '-', e.g.: '-game*'. Selected sets are labelled '[X]'.
    [X] bsd          [X] comp69.tgz   [X] xbase69.tgz   [X] xserv69.tgz
    [X] bsd.rd       [X] man69.tgz    [X] xshare69.tgz
    [X] base69.tgz   [X] game69.tgz   [X] xfont69.tgz
Set name(s)? (or 'abort' or 'done') [done]
Get/Verify SHA256.sig   100% |************************|  2141       00:00    
Signature Verified
Get/Verify bsd          100% |************************| 18117 KB    00:02    
Get/Verify bsd.rd       100% |************************| 10109 KB    00:01    
Get/Verify base69.tgz   100% |************************|   238 MB    00:26    
Get/Verify comp69.tgz   100% |************************| 74451 KB    00:08    
Get/Verify man69.tgz    100% |************************|  7464 KB    00:00    
Get/Verify game69.tgz   100% |************************|  2745 KB    00:00    
Get/Verify xbase69.tgz  100% |************************| 22912 KB    00:02    
Get/Verify xshare69.tgz 100% |************************|  4499 KB    00:00    
Get/Verify xfont69.tgz  100% |************************| 39342 KB    00:04    
Get/Verify xserv69.tgz  100% |************************| 16969 KB    00:01    
Installing bsd          100% |************************| 20375 KB    00:00
Installing bsd.rd       100% |************************| 10149 KB    00:00
Installing base69.tgz   100% |************************|   289 MB    00:37
Installing comp69.tgz   100% |************************| 74305 KB    00:21
Installing man69.tgz    100% |************************|  7484 KB    00:04
Installing game69.tgz   100% |************************|  2739 KB    00:00
Installing xbase69.tgz  100% |************************| 28866 KB    00:06
Installing xshare69.tgz 100% |************************|  4499 KB    00:06
Installing xfont69.tgz  100% |************************| 39342 KB    00:09
Installing xserv69.tgz  100% |************************| 18333 KB    00:03
Location of sets? (disk http or 'done') [done]
Making all device nodes...done.
Relinking to create unique kernel...done.

CONGRATULATIONS! Your OpenBSD upgrade has been successfully completed!

Exit to (S)hell, (H)alt or (R)eboot? [reboot]


vm03# syspatch
vm03# pkg_add -u
vm03# sysmerge -d

When on current update your packages with:

vm03# pkg_add -Dsnap -u