トップ 履歴 一覧 カテゴリ ソース 検索 ヘルプ RSS ログイン

OpenBSD/Upgrade/77-armv7

INDEX

OpenBSD のアップグレード (7.6 to 7.7 ARMv7 on BBB 版)

BeagleBone Black に入れた 7.6 (Released Oct 8, 2024) から 7.7 (Released Apr 28, 2025) にアップグレードした際のメモ書き。

お決まりなのだけど、重要なサーバや物理サーバでリモート接続している場合は、最初に同一のローカルシステムで試すことを推奨。まっ、そんな環境ないので、必要なファイルをバックアップした上で、えぃやぁかな。アップグレードでなきゃ、インストールし直しするつもりなので。

OpenBSD 6.6 からは、sysupgrade(8) でアップグレードができる。このアップグレードは一つ次のリリースへのみがサポートされる。諸注意や詳細は、 OpenBSD Upgrade Guide: 7.6 to 7.7 を参照。新機能などは、OpenBSD 7.7 を参照。

アップグレード方法は、sysupgrade(8) を使用した 無人アップグレード 以外に、各アーキテクチャ用のRAMディスクカーネル bsd.rd を取得して、このカーネルが起動したら (U)pgrade を選択して、プロンプトの指示に従って行う インタラクティブ アップグレード 、完全に手動でファイルを更新する マニュアル アップグレード がある。

 確認事項

アップグレード

 アップグレードする前に

bbb# uname -a
OpenBSD bbb.intranet 7.6 GENERIC#242 armv7

ダウンロードミラーサイトの設定

/etc/installurl に記載されたURLのサーバから取得される。インストール時に ftp や http を使用していれば、その時の設定が記載されている。

bbb# cat /etc/installurl
https://ftp.jaist.ac.jp/pub/OpenBSD

が、2025-05-17 は、ftp.jaist.ac.jp が年次の法定電気点検でシャットダウンされていた…。なので、 https://ftp.openbsd.org/pub/OpenBSD/ に変更する。

bbb# cat /etc/installurl
https://ftp.openbsd.org/pub/OpenBSD/

ディスク空き容量

sysupgrade(8) がダウンロードしたファイルを置く /home/_sysupgrade および、インストール先となる /usr の空き容量を確認する。足りないと失敗する。

/usr には、1.1G 必要とのこと。/home/_sysupgrade は、インストールセットの 500MB かな…。

bbb# df -h
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/sd0a     26.9G    3.5G   22.0G    14%    /

横着して、1パーティションで構成してた…

 アップグレード

sysupgrade コマンド自体は、ssh 上でも可能。ただし、アップグレードが完了して立ち上がるまではつなげないので、様子を確認できない。

X 関連を除くため、自動で再起動しないように -n を指定して、X 関連の インストール セット を除外してから、再起動する。

bbb# sysupgrade -n
Fetching from https://ftp.openbsd.org/pub/OpenBSD//7.7/armv7/
SHA256.sig   100% |*************************************|  1777       00:00
Signature Verified
BUILDINFO    100% |*************************************|    54       00:00
Verifying old sets.
INSTALL.armv7 100% |************************************| 36472       00:00
base77.tgz   100% |*************************************|   145 MB    01:44
bsd          100% |*************************************|  6848 KB    00:05
bsd.rd       100% |*************************************| 15119 KB    00:06
comp77.tgz   100% |*************************************| 44787 KB    00:34
game77.tgz   100% |*************************************|  2712 KB    00:02
man77.tgz    100% |*************************************|  8297 KB    00:04
xbase77.tgz  100% |*************************************| 45966 KB    00:26
xfont77.tgz  100% |*************************************| 23032 KB    00:13
xserv77.tgz  100% |*************************************|  8199 KB    00:06
xshare77.tgz 100% |*************************************|  4581 KB    00:03
Verifying sets.
Fetching updated firmware.
fw_update: add none; update none
Will upgrade on next reboot
bbb#

インストールセットが /home/_sysupgrade に取得される。

bbb# ls -lA /home/_sysupgrade
total 618544
-rw-r--r--  1 root  wheel         54 Apr 17 01:46 BUILDINFO
-rw-r--r--  1 root  wheel      36472 Apr 17 01:46 INSTALL.armv7
-rw-r--r--  1 root  wheel       1625 May 17 11:20 SHA256
-rw-r--r--  1 root  wheel  152883376 Apr 17 00:53 base77.tgz
-rw-r--r--  1 root  wheel    7012642 Apr 17 00:48 bsd
-rw-r--r--  1 root  wheel   15482720 Apr 17 01:46 bsd.rd
-rw-r--r--  1 root  wheel   45862430 Apr 17 00:55 comp77.tgz
-rw-r--r--  1 root  wheel    2777273 Apr 17 00:55 game77.tgz
-rw-r--r--  1 root  wheel    8496358 Apr 17 00:55 man77.tgz
-rw-r--r--  1 root  wheel   47069975 Apr 17 08:24 xbase77.tgz
-rw-r--r--  1 root  wheel   23585766 Apr 17 08:24 xfont77.tgz
-rw-r--r--  1 root  wheel    8396591 Apr 17 08:25 xserv77.tgz
-rw-r--r--  1 root  wheel    4691266 Apr 17 08:25 xshare77.tgz
bbb#

また、レスポンスファイル /auto_upgrade.conf が作成される。

bbb# cat /auto_upgrade.conf
Location of sets = disk
Pathname to the sets = /home/_sysupgrade/
Directory does not contain SHA256.sig. Continue without verification = yes
bbb#

アップグレード前の再起動まできたら、取得したインストールセットから不用な X 関連のファイルを削除する。レスポンスファイル /auto_upgrade.conf を修正して、不用な X 関連の インストールセットを外すように修正する。

「Set name(s) = -x*」を追加して、X 一式をインストールセットの選択から外すようにする。

bbb# vi /auto_upgrade.conf
bbb# cat /auto_upgrade.conf
Location of sets = disk
Pathname to the sets = /home/_sysupgrade/
Set name(s) = -x*
Directory does not contain SHA256.sig. Continue without verification = yes
bbb#

準備ができたら、再起動する。

bbb# reboot

ということで、↑はSSH、↓はCOMコンソール

 :≪前略≫
OpenBSD/armv7 (diana.intranet) (console)

login: 
stopping package daemons: popa3d.
syncing disks... done
rebooting...

U-Boot SPL 2018.09-00002-g0b54a51eee (Sep 10 2018 - 19:41:39 -0500)
Trying to boot from MMC2
Loading Environment from EXT4...
 :≪中略≫
## Starting EFI application at 82000000 ...
disks: sd0* sd1
>> OpenBSD/armv7 BOOTARM 1.23
upgrade detected: switching to /bsd.upgrade
boot>
booting sd0a:/bsd.upgrade: 2410704+769692+11504544+483212  [188357+107+388448+214048]=0x0 
\ 
OpenBSD/armv7 booting ...
 :≪中略≫
pmap Copyright (c) 1982, 1986, 1989, 1991, 1993
        The Regents of the University of California.  All rights reserved.
Copyright (c) 1995-2025 OpenBSD. All rights reserved.  https://www.OpenBSD.org

OpenBSD 7.7 (RAMDISK) #6: Wed Apr 16 10:45:46 MDT 2025
    deraadt@armv7.openbsd.org:/usr/src/sys/arch/armv7/compile/RAMDISK
real mem  = 484102144 (461MB)
avail mem = 456286208 (435MB)
 :≪中略≫
bootfile: sd0a:/bsd.upgrade
boot device: sd0
root on rd0a swap on rd0b dump on rd0b
WARNING: CHECK AND RESET THE DATE!
erase ^?, werase ^W, kill ^U, intr ^C, status ^T

Welcome to the OpenBSD/armv7 7.7 installation program.
Performing non-interactive upgrade...
Terminal type? [vt220] vt220
Available disks are: sd0.
Which disk is the root disk? ('?' for details) [sd0] sd0
Checking root filesystem (fsck -fp /dev/sd0a)... OK.
Mounting root filesystem (mount -o ro /dev/sd0a /mnt)... OK.
Force checking of clean non-root filesystems? [no] no
/dev/sd0a (56eca8534bce27d7.a) on /mnt type ffs (rw, local, noatime, wxallowed)

Let's upgrade the sets!
Location of sets? (disk http nfs or 'done') [http] disk
Is the disk partition already mounted? [yes] yes
Pathname to the sets? (or 'done') [7.7/armv7] /home/_sysupgrade/

Select sets by entering a set name, a file name pattern or 'all'. De-select
sets by prepending a '-', e.g.: '-game*'. Selected sets are labelled '[X]'.
    [X] bsd           [X] comp77.tgz    [X] xbase77.tgz   [X] xserv77.tgz
    [X] bsd.rd        [X] man77.tgz     [X] xshare77.tgz
    [X] base77.tgz    [X] game77.tgz    [X] xfont77.tgz
Set name(s)? (or 'abort' or 'done') [done] -x*
    [X] bsd           [X] comp77.tgz    [ ] xbase77.tgz   [ ] xserv77.tgz
    [X] bsd.rd        [X] man77.tgz     [ ] xshare77.tgz
    [X] base77.tgz    [X] game77.tgz    [ ] xfont77.tgz
Set name(s)? (or 'abort' or 'done') [done] done
Directory does not contain SHA256.sig. Continue without verification? [no] yes
Installing bsd          100% |**************************|  6848 KB    00:03
Installing bsd.rd       100% |**************************| 15119 KB    00:06
Installing base77.tgz   100% |**************************|   145 MB    02:35
Installing comp77.tgz   100% |**************************| 44787 KB    01:52
Installing man77.tgz    100% |**************************|  8297 KB    00:46
Installing game77.tgz   100% |**************************|  2712 KB    00:03
Installing BUILDINFO    100% |**************************|    54       00:00
Location of sets? (disk http nfs or 'done') [done] done
Making all device nodes... done.
fw_update: add none; update none
Relinking to create unique kernel... done.

CONGRATULATIONS! Your OpenBSD upgrade has been successfully completed!

syncing disks... done
rebooting...

U-Boot SPL 2018.09-00002-g0b54a51eee (Sep 10 2018 - 19:41:39 -0500)
Trying to boot from MMC2
Loading Environment from EXT4...
 :≪中略≫
## Starting EFI application at 82000000 ...
disks: sd0* sd1
>> OpenBSD/armv7 BOOTARM 1.23
boot>
booting sd0a:/bsd: 4904044+1015736+139444+609828 [288097+107+346112+308270]=0x0

OpenBSD/armv7 booting ...
 :≪中略≫
pmap [ using 943124 bytes of bsd ELF symbol table ]
Copyright (c) 1982, 1986, 1989, 1991, 1993
        The Regents of the University of California.  All rights reserved.
Copyright (c) 1995-2025 OpenBSD. All rights reserved.  https://www.OpenBSD.org

OpenBSD 7.7 (GENERIC) #6: Wed Apr 16 09:48:17 MDT 2025
    deraadt@armv7.openbsd.org:/usr/src/sys/arch/armv7/compile/GENERIC
real mem  = 484102144 (461MB)
avail mem = 464482304 (442MB)
 :≪中略≫
bootfile: sd0a:/bsd
boot device: sd0
root on sd0a (56eca8534bce27d7.a) swap on sd0b dump on sd0b
WARNING: CHECK AND RESET THE DATE!
Automatic boot in progress: starting file system checks.
/dev/sd0a (56eca8534bce27d7.a): file system is clean; not checking
pf enabled
net.inet.esp.enable: 1 -> 0
net.inet.ah.enable: 1 -> 0
starting network
ifconfig: net: bad value
reordering: ld.so libc libcrypto sshd sshd-session sshd-auth ssh-agent.
starting early daemons: syslogd pflogd ntpd.
starting RPC daemons:.
savecore: no core dump
checking quotas: done.
clearing /tmp
pin 21: caps: in out pu pd, flags: -> out
pin 22: caps: in out pu pd, flags: -> out
pin 23: caps: in out pu pd, flags: -> out
pin 24: caps: in out pu pd, flags: -> out
kern.securelevel: 0 -> 1
creating runtime link editor directory cache.
preserving editor files.
running rc.sysmerge
===> Updating /etc/changelist
===> Updating /etc/login.conf
===> Updating /etc/ssl/cert.pem
---- /etc/ssh/sshd_config unhandled, re-run sysmerge to merge the new version
starting network daemons: sshd smtpd slowcgi httpd sndiod.
running rc.firsttime
fw_update: add none; update none
starting package daemons: popa3d.
starting SoftEther VPN Server
The SoftEther VPN Server service has been started.
starting SoftEther VPN Client
The SoftEther VPN Client service has been started.
starting rdgw
starting http-relayd
starting local daemons: cron.
Sat May 17 11:47:52 JST 2025

OpenBSD/armv7 (diana.intranet) (console)

login:

CPUの性能とかにもよるだろうけど、完了するまで10分くらい。

アップデートの中で、 sysmerge(8)fw_update(1) が実行される。

 アップグレード後

bbb# uname -a
OpenBSD bbb.intranet 7.7 GENERIC#6 armv7

設定ファイルの更新

アップデートの中で実行されるので、基本は不要。マージ出来なかった場合は、保留されたままになる。

今回 sshd_config が変更されたようで、sysmerge でマージされずに保留にされている。

bbb# sysmerge
========================================================================
===> Displaying differences between ./etc/ssh/sshd_config and installed version:
--- /etc/ssh/sshd_config        Sun May 29 20:45:48 2022
+++ ./etc/ssh/sshd_config       Wed Apr 16 23:43:18 2025
@@ -1,4 +1,4 @@
-#      $OpenBSD: sshd_config,v 1.104 2021/07/02 05:11:21 dtucker Exp $
+#      $OpenBSD: sshd_config,v 1.105 2024/12/03 14:12:47 dtucker Exp $
 :中略

  Use 'd' to delete the temporary ./etc/ssh/sshd_config
  Use 'i' to install the temporary ./etc/ssh/sshd_config
  Use 'm' to merge the temporary and installed versions
  Use 'v' to view the diff results again

  Default is to leave the temporary file to deal with by hand

How should I deal with this? [Leave it for later]

新しいファイルを 削除(d)、上書き(i)、マージ(m)、再度差分を表示する(v) を選ぶ。

今回は、新しいのに更新して、再度変更点を修正する。

How should I deal with this? [Leave it for later] i
===> Updating /etc/ssh/sshd_config
bbb# 

ファームウェアの更新

アップデートの中で実行されるので、基本は不要(下記コマンドは確認のみ)。

bbb# fw_update -v -n
fw_update: add none; update none

バイナリパッチのアップデート

リリース直後であればほどんとないと思う(下記コマンドは適用可能なパッチ一覧のみ)。ただし、バイナリパッチが提供されるのは i386, amd64 および arm64 のアーキテクチャのみっぽい。

bbb# syspatch -c
003_zoneinfo
bbb#

今回 003_zoneinfo については、すべてのアーキテクチャで提供されているっぽい。

bbb# syspatch
Get/Verify syspatch77-003_zoneinf... 100% |*************| 74310       00:00
Installing patch 003_zoneinfo
Errata can be reviewed under /var/syspatch
bbb#

設定ファイルと構文の変更

Configuration and syntax changes を参考に、設定ファイルを更新する。

7.7 のリリースで変わったものはない。

古いファイルの削除

Files to remove を参考に、古いファイルを削除する。

# rm -rf /usr/libdata/perl5/*/PerlIO/scalar.pm \
         /usr/libdata/perl5/*/auto/PerlIO/scalar

パッケージ変更

Special packages を参考に、パッケージ更新する。

プログラムの変更

アップデートにより、追加で入れたパッケージおよび自身でビルドしたプログラムが動かない場合がある。

パッケージで入れたものは、パッケージの更新を行う。ビルドしたものは、リビルドし直す。

 アップグレードログ

root 宛にアップグレードのログが送られる。

upgrade response file

From: Charlie Root <root@diana.intranet>
Date: Sat, 17 May 2025 11:47:38 +0900 (JST)
To: root@diana.intranet
Subject: diana.intranet upgrade response file
Message-ID: <59b6d3ed670a22d2@diana.intranet>

Which disk is the root disk = sd0
Force checking of clean non-root filesystems = no
Location of sets = disk
Is the disk partition already mounted = yes
Pathname to the sets = /home/_sysupgrade/
Set name(s) = -x*
Set name(s) = done
Directory does not contain SHA256.sig. Continue without verification = yes
Location of sets = done

upgrade log

From: Charlie Root <root@diana.intranet>
Date: Sat, 17 May 2025 11:47:38 +0900 (JST)
To: root@diana.intranet
Subject: diana.intranet upgrade log
Message-ID: <59b6d3e5d6d5ecc8@diana.intranet>

Terminal type? [vt220] vt220
Available disks are: sd0.
Which disk is the root disk? ('?' for details) [sd0] sd0
Checking root filesystem (fsck -fp /dev/sd0a)... OK.
Mounting root filesystem (mount -o ro /dev/sd0a /mnt)... OK.
Force checking of clean non-root filesystems? [no] no
/dev/sd0a (56eca8534bce27d7.a) on /mnt type ffs (rw, local, noatime, wxallowed)

Let's upgrade the sets!
Location of sets? (disk http nfs or 'done') [http] disk
Is the disk partition already mounted? [yes] yes
Pathname to the sets? (or 'done') [7.7/armv7] /home/_sysupgrade/

Select sets by entering a set name, a file name pattern or 'all'. De-select
sets by prepending a '-', e.g.: '-game*'. Selected sets are labelled '[X]'.
    [X] bsd           [X] comp77.tgz    [X] xbase77.tgz   [X] xserv77.tgz
    [X] bsd.rd        [X] man77.tgz     [X] xshare77.tgz
    [X] base77.tgz    [X] game77.tgz    [X] xfont77.tgz
Set name(s)? (or 'abort' or 'done') [done] -x*
    [X] bsd           [X] comp77.tgz    [ ] xbase77.tgz   [ ] xserv77.tgz
    [X] bsd.rd        [X] man77.tgz     [ ] xshare77.tgz
    [X] base77.tgz    [X] game77.tgz    [ ] xfont77.tgz
Set name(s)? (or 'abort' or 'done') [done] done
Directory does not contain SHA256.sig. Continue without verification? [no] yes
Installing bsd          100% |**************************|  6848 KB    00:03    
Installing bsd.rd       100% |**************************| 15119 KB    00:06    
Installing base77.tgz   100% |**************************|   145 MB    02:35    
Installing comp77.tgz   100% |**************************| 44787 KB    01:52    
Installing man77.tgz    100% |**************************|  8297 KB    00:46    
Installing game77.tgz   100% |**************************|  2712 KB    00:03    
Installing BUILDINFO    100% |**************************|    54       00:00    
Location of sets? (disk http nfs or 'done') [done] done
Making all device nodes... done.
fw_update: add none; update none
Relinking to create unique kernel... done.

CONGRATULATIONS! Your OpenBSD upgrade has been successfully completed!

sysmerge output

From: Charlie Root <root@diana.intranet>
Date: Sat, 17 May 2025 11:47:34 +0900 (JST)
To: root@diana.intranet
Subject: diana.intranet rc.sysmerge output
Message-ID: <59b6d3e1bf6c4de5@diana.intranet>

===> Updating /etc/changelist
===> Updating /etc/login.conf
===> Updating /etc/ssl/cert.pem
---- /etc/ssh/sshd_config unhandled, re-run sysmerge to merge the new version

rc.firsttime output

From: Charlie Root <root@diana.intranet>
Date: Sat, 17 May 2025 11:47:38 +0900 (JST)
To: root@diana.intranet
Subject: diana.intranet rc.firsttime output
Message-ID: <59b6d3e9b82e8027@diana.intranet>

fw_update: add none; update none

メモ

sysupgrade コマンドで、比較的簡単にできる。特に何もなければ、2,30分で完了できる。

全てのインストールセットがアップデート(インストール)されるので、不要なものがある場合は、 -n オプションを指定して、自動的に再起動しないようにして、/home/_sysupgrade に取得されたファイルから不要なものを削除するか、レスポンスファイル /auto_upgrade.conf インストールセットを外すようにしてから、再起動する。

あと、アップデート後に、起動出来なくなるものがある。なので、該当プログラムのパッケージを更新するか、ビルドし直す。

最終更新時間:2025年05月17日 13時31分32秒 指摘や意見などあればSandBoxのBBSへ。