[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.rd
SHA256.sig
Verify 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.spIf 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/orebootor, 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/orebootNote 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]