[FAQ Index] | [6.7 -> 6.8] [6.9 -> 7.0]
Upgrades are only supported from one release to the release immediately following.
Read through and understand this process before attempting it. For critical or physically remote machines, test it on an identical, local system first.
/usr
partition has a size of at least 1.1G.
With less space the upgrade may fail and you should consider reinstalling
the system instead.
The following show incorrect port ranges that were previously accepted:
port 2004:2000 port 2004 >< 2000 port 2004 <> 2000 # range should be low-high port 2000 >< 2000 # range should not be a single port
If upgrading without console access, check and correct ranges before upgrading.
bsd.rd
.
Download the ramdisk kernel and the cryptographically-signed checksum file
for your architecture.
bsd.rd
SHA256.sig
Verify bsd.rd
and SHA256.sig
using
signify(1):
$ signify -C -p /etc/signify/openbsd-69-base.pub -x SHA256.sig bsd.rd Signature Verified bsd.rd: OK
bsd.rd
, retrieved
in the previous step. Place it 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.
After upgrading the sets, the system will reboot with the upgraded kernel and run sysmerge(8) during boot. In some cases, configuration files cannot be modified automatically. Run
# sysmergeto check and perform these configuration changes.
Next remove the old files.
Finish up by upgrading the packages using pkg_add -u
.
You may wish to check the errata page for any post-release fixes.
Sometimes, you need to perform an upgrade of a machine for which the normal unattended or interactive upgrade process is not possible.
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
base69.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 xshare69.tgz # tar -C / -xzphf xserv69.tgz # tar -C / -xzphf xfont69.tgz # tar -C / -xzphf xbase69.tgz # tar -C / -xzphf man69.tgz # tar -C / -xzphf game69.tgz # tar -C / -xzphf comp69.tgz # tar -C / -xzphf base69.tgz # Install last! # /sbin/orebootor, if you use ksh(1), you can do:
# cp /sbin/reboot /sbin/oreboot # for _f in [!b]*69.tgz base69.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
below also apply to manual upgrades.
Finally, remove /sbin/oreboot
and update packages:
pkg_add -u
.
Reboot once more to make sure you use the newest firmware files
and run on your own kernel generated by KARL.
autoconfprivacy
in hostname.if(5) files should be changed to
temporary
.
Previously, when either "to 0.0.0.0
" or
"to 0.0.0.0/0
" were used, they would be replaced with the
peer's assigned address when creating flows.
"to dynamic
" has been introduced to make the configuration
syntax clearer.
"to 0.0.0.0
" works as before but can be updated to the new
syntax if wanted.
"to 0.0.0.0/0
" will now be treated literally;
if the old behaviour is desired one must change to "to dynamic
".
# sysctl net.inet.ip.forwarding=1 # sysctl net.inet6.ip6.forwarding=1
These options previously accepted an IP address and network interface, for example:
# address is directly reachable via the interfaces (showing both accepted formats) pass out proto tcp to port {80 443} route-to 192.0.2.1@ix0 pass out proto udp to port 53 dup-to (em2 192.168.2.99) # using placeholder address to signify remote address on a point-to-point link pass in on pppoe1 reply-to 0.0.0.1@pppoe1They now take only an IP address, and perform a route lookup to determine the interface. The above examples can now be written like so:
# address is directly reachable via the interfaces pass out proto tcp to port {80 443} route-to 192.0.2.1 pass out proto udp to port 53 dup-to 192.168.2.99 # using :peer to use the remote address on a point-to-point link # using (...) to track changes dynamically pass in on pppoe1 reply-to (pppoe1:peer)
Alternatively, for some configurations using these features, it may be simpler to use multiple route tables instead (using ifconfig's rdomain and pf.conf's rtable features).
The set of certificates for a tls listener must be explicitly
defined by using the pki
listener option multiple times:
pki "mail.example.com" cert "/etc/ssl/mail.example.com.crt" pki "mail.example.com" key "/etc/ssl/private/mail.example.com.key" pki "mail.example.org" cert "/etc/ssl/mail.example.org.crt" pki "mail.example.org" key "/etc/ssl/private/mail.example.org.key" listen on egress tls pki "mail.example.com" \ pki "mail.example.org"
The certificate to use is now selected by looking at the names
contained in the certificates defined for the listener.
The label of the pki
entry itself is not relevant anymore.
Configurations that use only a single certificate do not need updating.
listen on 127.0.0.1must become
listen on 127.0.0.1 listen on 127.0.0.1 notify
-N
now prints
iso.org.dod.internet.mgmt.mib-2.system.sysUpTime.0
(first varbind) in accordance with its internal MIB definitions
(iso.org.dod.internet.mgmt.mib_2.system.sysUpTime.0
).
-N
now prints
iso.org.dod.internet.mgmt.mib-2.system.sysUpTime.0
(first varbind) numerically (.1.3.6.1.2.1.1.3.0
).
-N
now prints
iso.org.dod.internet.snmpV2.snmpModules.snmpMIB.snmpMIBObjects.snmpTrap.snmpTrapOID.0
(second varbind) numerically (1.3.6.1.6.3.1.1.4.1.0
).
# sysctl kern.video.record=1 # enable at runtime # echo kern.video.record=1 >> /etc/sysctl.conf # set at boot
# rm -rf /usr/bin/podselect \ /usr/lib/libperl.so.20.0 \ /usr/libdata/perl5/*/CORE/dquote_inline.h \ /usr/libdata/perl5/*/Tie \ /usr/libdata/perl5/*/auto/Tie \ /usr/libdata/perl5/Pod/Find.pm \ /usr/libdata/perl5/Pod/InputObjects.pm \ /usr/libdata/perl5/Pod/ParseUtils.pm \ /usr/libdata/perl5/Pod/Parser.pm \ /usr/libdata/perl5/Pod/PlainText.pm \ /usr/libdata/perl5/Pod/Select.pm \ /usr/libdata/perl5/pod/perlce.pod \ /usr/libdata/perl5/unicore/Heavy.pl \ /usr/libdata/perl5/unicore/lib/Lb/EB.pl \ /usr/libdata/perl5/unicore/lib/Perl/_PerlNon.pl \ /usr/libdata/perl5/unicore/lib/Sc/Armn.pl \ /usr/libdata/perl5/utf8_heavy.pl \ /usr/share/man/man1/podselect.1 \ /usr/share/man/man3p/Pod::Find.3p \ /usr/share/man/man3p/Pod::InputObjects.3p \ /usr/share/man/man3p/Pod::ParseUtils.3p \ /usr/share/man/man3p/Pod::Parser.3p \ /usr/share/man/man3p/Pod::PlainText.3p \ /usr/share/man/man3p/Pod::Select.3p
pg_upgrade
as described in the
postgresql-server pkg-readme or do a dump/restore.
/etc/rt3
to /etc/rt
.
Make sure to move all the modified configuration files to the new path.
[FAQ Index] | [6.7 -> 6.8] [6.9 -> 7.0]