[BACK]Return to upgrade63.html CVS log [TXT][DIR] Up to [local] / www / faq

File: [local] / www / faq / upgrade63.html (download) (as text)

Revision 1.16, Fri Oct 4 10:15:36 2019 UTC (4 years, 7 months ago) by fcambus
Branch: MAIN
CVS Tags: HEAD
Changes since 1.15: +2 -2 lines

Fix a few spelling errors in upgrade notes.

<!doctype html>
<html lang=en id=faq>

<title>OpenBSD Upgrade Guide: 6.2 to 6.3</title>
<meta charset=utf-8>
<meta name="description"   content="OpenBSD Upgrade Process for 6.2 -> 6.3">
<meta name="viewport"      content="width=device-width, initial-scale=1">
<link rel="stylesheet"     type="text/css" href="../openbsd.css">
<link rel="canonical"      href="https://www.openbsd.org/faq/upgrade63.html">
<style>
  ul { list-style: none; }
  dt { margin-left: 40px; float: left; }
  dd { margin: 0 0 0 8em; }
</style>

<h2 id=OpenBSD>
<a href="../index.html">
<i>Open</i><b>BSD</b></a>
Upgrade Guide: 6.2 to 6.3
</h2>
<hr>
<p>
<a href="index.html">[FAQ Index]</a> |
<a href="upgrade62.html">[6.1 -> 6.2]</a>
<a href="upgrade64.html">[6.3 -> 6.4]</a>
<p>

<blockquote><i>
Upgrades 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.
</i></blockquote>

Start by performing the <a href="#BeforeUpdate">pre-upgrade steps</a>.
Next, boot from the install kernel, <a href="faq4.html#bsd.rd">bsd.rd</a>:
use <a href="faq4.html#MkInsMedia">bootable install media</a>, or place the 6.3
version of <code>bsd.rd</code> in the root of your filesystem and instruct the boot
loader to boot this kernel.
Once this kernel is booted, choose the <code>(U)pgrade</code> option and follow the
prompts.
Apply the <a href="#ConfigChanges">configuration changes</a> and
<!-- <a href="#RmFiles">remove the old files</a>. -->
finish up by upgrading the packages: <code><b>pkg_add -u</b></code>.

<p>
Alternatively, you can use the <a href="#NoInstKern">manual upgrade process</a>.

<p>
You may wish to check the <a href="../errata63.html">errata page</a> or upgrade
to the <a href="../stable.html">stable branch</a> to get any post-release fixes.

<hr>


<h3 id="BeforeUpdate">Before rebooting into the install kernel</h3>

<ul>
  <li><b>Get and verify <code>bsd.rd</code>.</b>
  Download the ramdisk kernel and the cryptographically signed checksum file
  for your architecture.

  <p>
  <ul>
    <li><code>  bsd.rd     </code>
    [<a href="https://cdn.openbsd.org/pub/OpenBSD/6.3/alpha/bsd.rd">alpha</a>]
    [<a href="https://cdn.openbsd.org/pub/OpenBSD/6.3/amd64/bsd.rd">amd64</a>]
    [<a href="https://cdn.openbsd.org/pub/OpenBSD/6.3/arm64/bsd.rd">arm64</a>]
    [<a href="https://cdn.openbsd.org/pub/OpenBSD/6.3/armv7/bsd.rd">armv7</a>]
    [<a href="https://cdn.openbsd.org/pub/OpenBSD/6.3/i386/bsd.rd">i386</a>]
    [<a href="https://cdn.openbsd.org/pub/OpenBSD/6.3/landisk/bsd.rd">landisk</a>]
    [<a href="https://cdn.openbsd.org/pub/OpenBSD/6.3/loongson/bsd.rd">loongson</a>]
    [<a href="https://cdn.openbsd.org/pub/OpenBSD/6.3/luna88k/bsd.rd">luna88k</a>]
    [<a href="https://cdn.openbsd.org/pub/OpenBSD/6.3/macppc/bsd.rd">macppc</a>]
    [<a href="https://cdn.openbsd.org/pub/OpenBSD/6.3/octeon/bsd.rd">octeon</a>]
    [<a href="https://cdn.openbsd.org/pub/OpenBSD/6.3/sparc64/bsd.rd">sparc64</a>]
    <li><code>  SHA256.sig </code>
    [<a href="https://cdn.openbsd.org/pub/OpenBSD/6.3/alpha/SHA256.sig">alpha</a>]
    [<a href="https://cdn.openbsd.org/pub/OpenBSD/6.3/amd64/SHA256.sig">amd64</a>]
    [<a href="https://cdn.openbsd.org/pub/OpenBSD/6.3/arm64/SHA256.sig">arm64</a>]
    [<a href="https://cdn.openbsd.org/pub/OpenBSD/6.3/armv7/SHA256.sig">armv7</a>]
    [<a href="https://cdn.openbsd.org/pub/OpenBSD/6.3/i386/SHA256.sig">i386</a>]
    [<a href="https://cdn.openbsd.org/pub/OpenBSD/6.3/landisk/SHA256.sig">landisk</a>]
    [<a href="https://cdn.openbsd.org/pub/OpenBSD/6.3/loongson/SHA256.sig">loongson</a>]
    [<a href="https://cdn.openbsd.org/pub/OpenBSD/6.3/luna88k/SHA256.sig">luna88k</a>]
    [<a href="https://cdn.openbsd.org/pub/OpenBSD/6.3/macppc/SHA256.sig">macppc</a>]
    [<a href="https://cdn.openbsd.org/pub/OpenBSD/6.3/octeon/SHA256.sig">octeon</a>]
    [<a href="https://cdn.openbsd.org/pub/OpenBSD/6.3/sparc64/SHA256.sig">sparc64</a>]
  </ul>

  <p>
  Verify them using
  <a href="https://man.openbsd.org/OpenBSD-6.3/signify">signify(1)</a>:

  <blockquote><pre>
  $ <b>signify -C -p /etc/signify/openbsd-63-base.pub -x SHA256.sig bsd.rd</b>
  Signature Verified
  bsd.rd: OK<!--
  --></pre></blockquote>

  <li><b>Spring cleaning in <code>/usr/share</code>.</b>
  Remove all outdated manuals.
  Moreover, the relinking of libraries and kernels at boot time now
  happens in <code>/usr/share/relink</code>.
  The old relinking directory is no longer used and can be removed.

  <blockquote><pre>
  # <b>rm -r /usr/share/man</b>
  # <b>rm -r /usr/share/compile</b><!--
  --></pre></blockquote>

  <p>
  <li><b>RFC 7217 style IPv6 addresses enabled by default.</b>
  Stateless address autoconfiguration and link local IPv6 addresses
  historically embedded the layer 2 (ethernet mac) address in the lower
  64 bits of the IPv6 address.
  This has various downsides and RFC 7217 specifies an alternative scheme
  of how to generate autoconfiguration addresses that are stable between
  reboots.
  This is enabled per default and IPv6 link local addresses will change
  if IPv6 is enabled on an interface.
  Furthermore, stateless autoconfiguration IPv6 addresses will change if
  autoconfiguration is enabled on an interface.

  <p>
  If you need the old style stateless address calculated from the layer
  2 address (i.e. ethernet mac address) put <code>-soii</code> into the
  <code>/etc/hostname.if</code> file.
  See also
  <a href="https://man.openbsd.org/OpenBSD-6.3/ifconfig#soii">ifconfig(8)</a>.
</ul>


<h3 id="ConfigChanges">Configuration and syntax changes</h3>

<ul>
  <li><b><code>ifconfig &lt;if&gt; deletetunnel</code> option deprecated.</b>
  The <a href="https://man.openbsd.org/OpenBSD-6.3/ifconfig">ifconfig(8)</a>
  <code>deletetunnel</code> option was replaced with <code>-tunnel</code>.
  Adjust your
  <a href="https://man.openbsd.org/OpenBSD-6.3/hostname.if">hostname.if(5)</a>
  configuration and scripts accordingly.

  <p>
  <li><b>iked(8) and isakmpd(8): ECP group incompatibility.</b>
  In the final RFC 5903, the computation for the DH shared secret changed.
  The <a href="https://man.openbsd.org/OpenBSD-6.3/iked">iked(8)</a> and
  <a href="https://man.openbsd.org/OpenBSD-6.3/isakmpd">isakmpd(8)</a>
  programs were modified to follow the RFC.
  These changes are not backwards compatible, so if you are using ECP groups,
  please make sure to upgrade all peers at the same time.

  <p>
  <li><b>New default setup for touchpads.</b>
  X selects <a href="https://man.openbsd.org/OpenBSD-6.3/ws">ws(4)</a>
  as default driver for touchpads now.
  In the setup with ws, touchpad-specific input processing is done by
  <a href="https://man.openbsd.org/OpenBSD-6.3/wsmouse">wsmouse(4)</a>.
  Touchpad configuration parameters are made available in
  <a href="https://man.openbsd.org/OpenBSD-6.3/wsconsctl">wsconsctl(8)</a>.
  Using the
  <a href="https://man.openbsd.org/OpenBSD-6.3/synaptics">synaptics(4)</a>
  input driver is still possible with a custom <code>xorg.conf</code> file.

  <p>
  <li><b>vmd(8): switch configuration.</b>
  <a href="https://man.openbsd.org/OpenBSD-6.3/vmd">vmd(8)</a> no longer
  automatically creates an underlying bridge interface for virtual switches
  defined in
  <a href="https://man.openbsd.org/OpenBSD-6.3/vm.conf">vm.conf(5)</a>.
  This will require users to create their bridges ahead of time, e.g.
  using <code>/etc/hostname.bridge0</code>.
  This also requires users to modify their
  <a href="https://man.openbsd.org/OpenBSD-6.3/vm.conf">vm.conf(5)</a>
  files to add an interface line to the switch definition, for example:

  <blockquote><pre>
  switch "uplink" {
      interface bridge0
  }<!--
  --></pre></blockquote>
</ul>


<h3 id="RmFiles">Files to remove</h3>

<ul>
  <li>
  <b>Remove libpthread-stubs.</b>
  With the integration of the pthread stub functions in libc,
  <code>libpthread-stubs</code> is no longer needed in xenocara.
  After upgrading base and packages, users may want to remove the old
  installed library, either via the sysclean package or by running the
  following commands:

  <blockquote><pre>
  # <b>cd /usr/X11R6/lib</b>
  # <b>rm libpthread-stubs.a \
       libpthread-stubs.so.2.0 \
       pkgconfig/pthread-stubs.pc</b><!--
  --></pre></blockquote>
</ul>


<h3 id="SpecPkg">Special packages</h3>

<ul>
  <li><b>Buildbot major update.</b>
  There was a major update to Buildbot 0.9.
  While the buildslave (renamed to buildworker) workdir is compatible between 0.8
  and 0.9, this is not the case for the buildmaster.
  On top of this, a 0.9 buildworker
  <a href="http://docs.buildbot.net/latest/manual/worker-transition.html#buildbot-worker">won't work</a>
  with a 0.8 buildmaster.

  <p>
  Refer to
  <a href="http://docs.buildbot.net/current/manual/installation/nine-upgrade.html">the upgrade guide</a>
  for information on how to migrate your configuration.
  If you want to keep running a 0.8 buildmaster to keep access to your old build
  logs/history, it's advised to install the 0.8 branch from <code>pip</code> and run
  it outside of packages.

  <p>
  <li><b>memcached defaults to localhost only.</b>
  memcached's documentation says, "you must not expose memcached directly
  to the internet, or otherwise any untrusted users".
  In order to provide sane defaults, the normal command line in memcached's
  rc script has been changed to listen on localhost only.
  See the pkg-readme file for information about changing this to listen to
  external network traffic if this is required.

  <p>
  <li><b>neomutt binary renamed.</b>
  In neomutt releases since 20171013, binaries and other files have been renamed
  so that they can coexist with mutt.
  Users may wish to add a shell alias or a symlink for <code>mutt -> neomutt</code>.


  <p>
  <li><b>newsbeuter replaced with newsboat.</b>
  Upgrading newsbeuter using <code>pkg_add</code> will result in newsboat being
  installed.
  Upon running <code>newsboat</code> for the first time it will prompt
  if it should import an existing newsbeuter configuration.

  <p>
  <li><b>PostgreSQL major update.</b>
  There was a major update to PostgreSQL 10.1.
  Use <code>pg_upgrade</code> as described in the
  <a href="https://cvsweb.openbsd.org/ports/databases/postgresql/pkg/README-server?rev=1.23">postgresql-server pkg-readme</a>
  or do a dump/restore.
</ul>


<hr>
<h2 id="NoInstKern">Upgrade without the install kernel</h2>

<b style="color:#e00000">This is NOT the recommended process.
Use the install kernel method if at all possible!</b>

<p>
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 and there is no easy
access to the system console.

<h3>Preparation</h3>

<ul>
  <li><b>Place install files in a good location.</b>
    Make sure you have sufficient space!
    Running out of space on a remote upgrade could be...unfortunate.
    Note that using softdeps can exaggerate the situation as deleted and
    overwritten files do not release their space immediately.
    Consider disabling the <code>softdep</code> mount option in <code>/etc/fstab</code>
    and rebooting before undertaking a manual upgrade.
    Having at least 500MB free on <code>/usr</code> would be recommended.

  <p>
  <li><b>Become root.</b>
    While using
    <a href="https://man.openbsd.org/OpenBSD-6.3/doas">doas(1)</a>
    before each command is generally a good practice, the command will likely
    be broken by the last steps, so you should become root before starting
    this process.
    It might be good to verify your access to root using a method other than
    doas at this point, i.e., direct login or using
    <a href="https://man.openbsd.org/OpenBSD-6.3/su">su(1)</a>.

  <p>
  <li><b>Stop and/or disable any appropriate applications.</b>
    During this process, all the userland applications will be replaced but
    may not be runnable, and strange things may happen as a result.
    You may also have issues with DNS resolution during the first reboot, so
    PF rules and NFS mounts dependent upon DNS may cause boot-up problems.
    There may be other applications which you wish to keep from running
    immediately after the upgrade, stop and disable them as well.

  <p>
  <li><b>Install new boot blocks.</b>
    This should actually be done at the end of any upgrade.
    If this has been neglected, then failure to do this now may break serial
    console or other things, depending on your platform.
    Use <a href="https://man.openbsd.org/OpenBSD-6.3/amd64/installboot">
    installboot(8)</a>, assuming <code>sd0</code> is your boot disk:
    <blockquote><pre>
    <b>installboot sd0</b><!--
    --></pre></blockquote>
</ul>

<h3>Upgrading manually</h3>

<ul>
  <li><b>Install new kernels.</b>
    The extra steps for copying over the primary kernel are done
    to ensure that there is always a valid kernel on the disk.
    <p>
    If using the multiprocessor kernel:
    <blockquote><pre>
    <b>cd /usr/rel</b>    # where you put the release files
    <b>ln -f /bsd /obsd && cp bsd.mp /nbsd && mv /nbsd /bsd</b>
    <b>cp bsd.rd /</b>
    <b>cp bsd /bsd.sp</b></pre>
    </blockquote>
    If using the single processor kernel:
    <blockquote><pre>
    <b>cd /usr/rel</b>    # where you put the release files
    <b>ln -f /bsd /obsd && cp bsd /nbsd && mv /nbsd /bsd</b>
    <b>cp bsd.rd bsd.mp /</b>    # may give a harmless warning<!--
    --></pre></blockquote>

  <li><b>Enable KARL.</b>
    Store the kernel's checksum:
    <blockquote><pre>
    <b>sha256 -h /var/db/kernel.SHA256 /bsd</b> <!--
    --></pre></blockquote>

  <li><b>Install new userland.</b>
    Save a copy of reboot(8), extract and install the release tarballs, reboot.
    Install <code>base63.tgz</code> last, because the new base system, in particular
    <a href="https://man.openbsd.org/OpenBSD-6.3/tar">tar(1)</a>,
    <a href="https://man.openbsd.org/OpenBSD-6.3/gzip">gzip(1)</a> and
    <a href="https://man.openbsd.org/OpenBSD-6.3/reboot">reboot(8)</a>,
    will not work with the old kernel.
    Either untar the needed filesets manually
    <blockquote><pre>
    <b>cp /sbin/reboot /sbin/oreboot</b>
    <b>tar -C / -xzphf xshare63.tgz</b>
    <b>tar -C / -xzphf xserv63.tgz</b>
    <b>tar -C / -xzphf xfont63.tgz</b>
    <b>tar -C / -xzphf xbase63.tgz</b>
    <b>tar -C / -xzphf man63.tgz</b>
    <b>tar -C / -xzphf game63.tgz</b>
    <b>tar -C / -xzphf comp63.tgz</b>
    <b>tar -C / -xzphf base63.tgz</b>    # Install last!
    <b>/sbin/oreboot</b><!--
    --></pre></blockquote>
    or, if you use
    <a href="https://man.openbsd.org/OpenBSD-6.3/ksh">ksh(1)</a>, you can do
    <blockquote><pre>
    <b>cp /sbin/reboot /sbin/oreboot</b>
    <b>for _f in [!b]*63.tgz base63.tgz; do tar -C / -xzphf "$_f" || break; done</b>
    <b>/sbin/oreboot</b><!--
    --></pre></blockquote>
    Note that <a href="https://man.openbsd.org/OpenBSD-6.3/tar">tar(1)</a>
    can expand only one archive per invocation, so a simple glob won't work.

  <p>
  <li><b>After reboot, update <code>/dev</code>.</b>
    Run
    <a href="https://man.openbsd.org/OpenBSD-6.3/amd64/MAKEDEV">MAKEDEV(8)</a>:
    <blockquote><pre>
    <b>cd /dev</b>
    <b>./MAKEDEV all</b><!--
    --></pre></blockquote>

  <li><b>Update boot loader.</b>
    Still assuming <code>sd0</code> is your boot disk:
    <blockquote><pre>
    <b>installboot sd0</b><!--
    --></pre></blockquote>

  <li><b>Update system configuration files.</b>
    Run <a href="https://man.openbsd.org/OpenBSD-6.3/sysmerge">sysmerge(8)</a>:
    <blockquote><pre>
    <b>sysmerge</b><!--
    --></pre></blockquote>

  <li><b>Update firmware.</b>
    There may be new firmware for your system.
    Update it with
    <a href="https://man.openbsd.org/OpenBSD-6.3/fw_update">fw_update(1)</a>:
    <blockquote><pre>
    <b>fw_update</b><!--
    --></pre></blockquote>

  <li><b>Finish up.</b>
    Review the console output from boot (using <code><b>dmesg -s</b></code>)
    and correct any failures as necessary.
    All the steps following <a href="#ConfigChanges">configuration changes</a>
    above also apply to manual upgrades.
    Finally, remove <code><b>/sbin/oreboot</b></code> and update packages:
    <code><b>pkg_add -u</b></code>.
    Reboot once more to make sure you run on your own kernel generated by KARL.
</ul>

<p>
<a href="index.html">[FAQ Index]</a> |
<a href="upgrade62.html">[6.1 -> 6.2]</a>
<a href="upgrade64.html">[6.3 -> 6.4]</a>

<hr>
<small>$OpenBSD: upgrade63.html,v 1.16 2019/10/04 10:15:36 fcambus Exp $</small>