!!! OpenBSD のアップグレード (7.6 to 7.7 ARMv7 on BBB 版) {{category OpenBSD,nolink}}BeagleBone Black に入れた 7.6 (Released Oct 8, 2024) から 7.7 (Released Apr 28, 2025) にアップグレードした際のメモ書き。 お決まりなのだけど、重要なサーバや物理サーバでリモート接続している場合は、最初に同一のローカルシステムで試すことを推奨。 まっ、そんな環境ないので、必要なファイルをバックアップした上で、えぃやぁかな。アップグレードでなきゃ、インストールし直しするつもりなので。 OpenBSD 6.6 からは、[sysupgrade(8)|https://man.openbsd.org/sysupgrade.8] でアップグレードができる。 このアップグレードは一つ次のリリースへのみがサポートされる。 諸注意や詳細は、 [OpenBSD Upgrade Guide: 7.6 to 7.7|https://www.openbsd.org/faq/upgrade77.html] を参照。 新機能などは、[OpenBSD 7.7|https://www.openbsd.org/77.html] を参照。 アップグレード方法は、[sysupgrade(8)|https://man.openbsd.org/sysupgrade.8] を使用した ''無人アップグレード'' 以外に、 各アーキテクチャ用のRAMディスクカーネル '''bsd.rd''' を取得して、このカーネルが起動したら '''(U)pgrade''' を選択して、プロンプトの指示に従って行う ''インタラクティブ アップグレード'' 、 完全に手動でファイルを更新する ''マニュアル アップグレード'' がある。 * Install [[7.1|OpenBSD/Install/71-armv7]], Upgrade [[to 7.2|OpenBSD/Upgrade/72-armv7]] [[to 7.3|OpenBSD/Upgrade/73-armv7]] [[to 7.4|OpenBSD/Upgrade/74-armv7]] [[to 7.5|OpenBSD/Upgrade/75-armv7]] [[to 7.6|OpenBSD/Upgrade/76-armv7]] [[to 7.7|OpenBSD/Upgrade/77-armv7]] !!確認事項 !!!アップグレード !!アップグレードする前に 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)|https://man.openbsd.org/sysmerge] と [fw_update(1)|https://man.openbsd.org/fw_update] が実行される。 !!アップグレード後 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|https://www.openbsd.org/faq/upgrade77.html#ConfigChanges] を参考に、設定ファイルを更新する。 7.7 のリリースで変わったものはない。 !古いファイルの削除 [Files to remove|https://www.openbsd.org/faq/upgrade77.html#RmFiles] を参考に、古いファイルを削除する。 # rm -rf /usr/libdata/perl5/*/PerlIO/scalar.pm \ /usr/libdata/perl5/*/auto/PerlIO/scalar !パッケージ変更 [Special packages|https://www.openbsd.org/faq/upgrade77.html#SpecialPackages] を参考に、パッケージ更新する。 !プログラムの変更 アップデートにより、追加で入れたパッケージおよび自身でビルドしたプログラムが動かない場合がある。 パッケージで入れたものは、パッケージの更新を行う。ビルドしたものは、リビルドし直す。 !!アップグレードログ root 宛にアップグレードのログが送られる。 !upgrade response file From: Charlie Root 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 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 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 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''' インストールセットを外すようにしてから、再起動する。 あと、アップデート後に、起動出来なくなるものがある。 なので、該当プログラムのパッケージを更新するか、ビルドし直す。