[FAQ Index] | [6.5 -> 6.6] [6.7 -> 6.8]
Start by performing the pre-upgrade steps. Next, boot from the install kernel, bsd.rd: use bootable install media, or place the 6.7 version ofUpgrades are only supported from one release to the release immediately following it.
Read through and understand this process before attempting it. For critical or physically remote machines, test it on an identical, local system first.
bsd.rd in the root of your filesystem and 
instruct the boot loader to boot this kernel.
Once this kernel is booted, choose the (U)pgrade option and 
follow the prompts.
An unattended upgrade method was introduced in version 6.6 which provides the 
simplest method for performing this upgrade. The 
sysupgrade(8)
program will download all install sets, verify their signatures, and reboot 
to do the upgrade. Using this method means sysupgrade does the 
download and verification of bsd.rd for you.
Another option is using the manual upgrade process (although this is not recommended and is the most error-prone method).
After upgrading the sets, apply the configuration
changes and remove the old files.
Finish up by upgrading the packages: pkg_add -u.
You may wish to check the errata page for any post-release fixes.
_rpki-client user recycles the user and group ids
  of the "named" daemon user (named, uid/gid 70) which was
  removed in 2014.  If you have kept upgrading your system from that time
  and never deleted the user and group, delete them and the
  /var/named directory:
  # userdel named # groupdel named # rm -rf /var/named # backup the data if still neededIf you do not delete them before upgrading, sysmerge(8) will fail and will need to be re-run manually after deleting them.
bsd.rd.
  Download the ramdisk kernel and the cryptographically signed checksum file
  for your architecture. (This may be skipped if using sysupgrade(8) since it
  verifies downloaded files).
  
bsd.rdSHA256.sigVerify them using signify(1):
$ signify -C -p /etc/signify/openbsd-67-base.pub -x SHA256.sig bsd.rd Signature Verified bsd.rd: OK
/dev/audio* and
  /dev/rmidi* devices any longer.
  Regular users must use the
  sndioctl(1)
  utility in place of
  mixerctl(8)
  to adjust the volume, for instance:
  $ sndioctl output.level=0.5As access to MIDI devices is now provided by sndiod(8), programs must use
midi/N instead of rmidi/N
  as MIDI port names.
  Note that audio devices continue to be configured with mixerctl(8) as sndioctl(1) doesn't expose all audio device controls. Furthermore, sndioctl(1) is not intended to be run as root.
  Accordingly, the /dev/mixer* devices are no longer used.
  
  /etc/ipsec.conf
  
  (not iked.conf):
  flow esp out from ::/0 to ::/0 type denyand enable loading it with:
# rcctl enable ipsec # to load at boot # ipsecctl -f /etc/ipsec.conf # to load immediatelyIf you previously used iked(8)'s
-6 flag to disable this feature, it is no longer needed and 
  should be removed from
  
  
  /etc/rc.conf.local if used.
  
  
net.inet.ip.forwarding=1 net.inet6.ip6.forwarding=1Note that when forwarding is enabled, all local IP addresses can be reached from outside unless explicitly filtered with pf(4).
_whatdb directive is no longer supported.
  If you have an /etc/man.conf file, change lines of the form:
  _whatdb /usr/share/man/whatis.dbto this form:
manpath /usr/share/manThe
_whatdb directive has been obsolete since 2015.
  
asr has been renamed to stub in
  
  unwind.conf(5)
  
  unwind(8)
  no longer uses http to detect captive portals. Existing 
  captive portal sections must be removed from
  
  unwind.conf(5)
  
  Access to FIDO/U2F security keys is now provided by the
  fido(4)
  driver instead of
  uhid(4).
  Programs must use /dev/fido/N instead of
  /dev/uhidN for U2F/FIDO.
  
TMPDIR is no longer propagated for locate.updatedb
  in weekly(8).
  Custom TMPDIR values for locate.updatedb set in
  root crontab or /etc/weekly.local should be moved into
  /etc/locate.rc.
# rm -rf /usr/libdata/perl5/*/Storable \
       /usr/libdata/perl5/*/arybase.pm \
       /usr/libdata/perl5/*/auto/arybase \
       /usr/libdata/perl5/B/Debug.pm \
       /usr/libdata/perl5/Locale/{Codes,Country,Currency,Language,Script}* \
       /usr/libdata/perl5/Math/BigInt/CalcEmu.pm \
       /usr/libdata/perl5/unicore/To/_PerlWB.pl \
       /usr/libdata/perl5/unicore/lib/GCB/EB.pl \
       /usr/libdata/perl5/unicore/lib/GCB/GAZ.pl \
       /usr/share/man/man3p/B::Debug.3p \
       /usr/share/man/man3p/Locale::{Codes*,Country,Currency,Language,Script}.3p \
       /usr/share/man/man3p/Math::BigInt::CalcEmu.3p \
       /usr/share/man/man3p/arybase.3p
  
/usr/bin so the old binaries
  should be removed.
  
  # rm -f /usr/sbin/{dig,host,nslookup}
pg_upgrade as described in the
  pkg-readme file or do a dump/restore.
  
/usr/local/bin/ipython-3 has
  been renamed to /usr/local/bin/ipython.
  
directory "/tmp";
  to the options section of named.conf.
  If you use relative paths in your configuration they will also need
  updating as directory is used as the base for these.
  All paths in named.conf are relative to the chroot directory,
  /var/named.
  
/usr/local/share/doc/pdns.
  
jupyter-notebook-3 has been renamed to
  jupyter-notebook.
  
/etc/firefox as explained in 
  the pkg-readme file, /usr/local/share/doc/pkg-readmes/firefox.
  Unveil has been added to firefox to restrict filesystem access by default.
  To grant access to additional paths or disable unveil, see the pkg-readme 
  file.
Sometimes, you need to do an upgrade of a machine for which the normal upgrade process is not possible. The most common case is a machine in a remote location where there is no easy access to the system console.
softdep mount option in
    /etc/fstab and rebooting before undertaking a manual upgrade.
    Having at least 500MB free on /usr would be recommended.
  
sd0 is your boot disk:
    
    installboot sd0
If using the multiprocessor kernel:
    cd /usr/rel    # where you put the release files
    ln -f /bsd /obsd && cp bsd.mp /nbsd && mv /nbsd /bsd
    cp bsd.rd /
    cp bsd /bsd.sp
    If using the single processor kernel:
    
    cd /usr/rel    # where you put the release files
    ln -f /bsd /obsd && cp bsd /nbsd && mv /nbsd /bsd
    cp bsd.rd bsd.mp /    # may give a harmless warning
  
    sha256 -h /var/db/kernel.SHA256 /bsd 
  base67.tgz last, because the new base system,
    in particular tar(1),
    gzip(1) and
    reboot(8),
    will not work with the old kernel.
    Either untar the needed filesets manually:
    
    cp /sbin/reboot /sbin/oreboot
    tar -C / -xzphf xshare67.tgz
    tar -C / -xzphf xserv67.tgz
    tar -C / -xzphf xfont67.tgz
    tar -C / -xzphf xbase67.tgz
    tar -C / -xzphf man67.tgz
    tar -C / -xzphf game67.tgz
    tar -C / -xzphf comp67.tgz
    tar -C / -xzphf base67.tgz    # Install last!
    /sbin/oreboot
    or, if you use
    ksh(1), you can do:
    
    cp /sbin/reboot /sbin/oreboot
    for _f in [!b]*67.tgz base67.tgz; do tar -C / -xzphf "$_f" || break; done
    /sbin/oreboot
    Note that tar(1)
    can expand only one archive per invocation, so a simple glob won't work.
  
/dev.
    Run
    MAKEDEV(8):
    
    cd /dev
    ./MAKEDEV all
  sd0 is your boot disk:
    
    installboot sd0
  
    sysmerge
  
    fw_update
  dmesg -s)
    and correct any failures as necessary.
    All the steps following configuration changes
    above also apply to manual upgrades.
    Finally, remove /sbin/oreboot and update packages:
    pkg_add -u.
    Reboot once more to make sure you run on your own kernel generated by KARL.
[FAQ Index] | [6.5 -> 6.6] [6.7 -> 6.8]