[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]