!!! OpenBSD のアップグレード (7.7 to 7.8 ARMv7 on BBB 版) {{category OpenBSD,nolink}}BeagleBone Black に入れた 7.7 (Released Apr 28, 2025) から 7.8 (Released Oct 22, 2025.) にアップグレードした際のメモ書き。 お決まりなのだけど、重要なサーバや物理サーバでリモート接続している場合は、最初に同一のローカルシステムで試すことを推奨。 まっ、そんな環境ないので、必要なファイルをバックアップした上で、えぃやぁかな。アップグレードできなきゃ、インストールし直しするつもりなので。 OpenBSD 6.6 からは、[sysupgrade(8)|https://man.openbsd.org/sysupgrade.8] でアップグレードができる。 このアップグレードは一つ次のリリースへのみがサポートされる。 諸注意や詳細は、 [OpenBSD Upgrade Guide: 7.7 to 7.8|https://www.openbsd.org/faq/upgrade78.html] を参照。 新機能などは、[OpenBSD 7.8|https://www.openbsd.org/78.html] を参照。 アップグレード方法は、[sysupgrade(8)|https://man.openbsd.org/sysupgrade.8] を使用した ''無人アップグレード'' 以外に、 各アーキテクチャ用のRAMディスクカーネル '''bsd.rd''' を取得して、このカーネルが起動したら '''(U)pgrade''' を選択して、プロンプトの指示に従って行う ''インタラクティブ アップグレード'' 、 完全に手動でファイルを更新する ''マニュアル アップグレード'' がある。 * Install [[7.7|OpenBSD/Install/77-armv7]], Upgrade [[to 7.8|OpenBSD/Upgrade/78-armv7]] !!確認事項 !!メモ sysupgrade コマンドで、比較的簡単にできる。特に何もなければ、2,30分で完了できる。 ただ、全てのインストールセットがアップデート(インストール)されるので、不要なものがある場合は、 '''-n''' オプションを指定して、自動的に再起動しないようにし、'''/home/_sysupgrade''' に取得されたファイルから不要なものを削除するか、レスポンスファイル '''/auto_upgrade.conf''' インストールセットを外すようにしてから、再起動してアップデートをする。 あと、アップデート後に、起動出来なくなるものがある。 なので、該当プログラムのパッケージを更新するか、ビルドし直す。 ただ、armv7 用のパッケージが用意されるのが遅いので、リリース直後に(アップデートして)パッケージのインストールやアップデートしようとすると、パッケージが見つからない場合がある。 !!!アップグレード !!アップグレードする前に bbb# uname -a OpenBSD bbb.intranet 7.7 GENERIC#6 armv7 !ダウンロードミラーサイトの設定 '''/etc/installurl''' に記載されたURLのサーバから取得される。インストール時に ftp や http を使用していれば、その時の設定が記載されている。 bbb# cat /etc/installurl https://ftp.jaist.ac.jp/pub/OpenBSD が、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 989M 53.0M 886M 6% / /dev/sd0h 22.8G 634M 21.1G 3% /home /dev/sd0d 3.9G 4.4M 3.7G 1% /tmp /dev/sd0f 9.7G 640M 8.6G 7% /usr /dev/sd0g 9.7G 413M 8.8G 5% /usr/local /dev/sd0e 9.7G 80.1M 9.1G 1% /var !!アップグレード sysupgrade コマンド自体は、ssh 上でも可能。ただし、アップグレードが完了して立ち上がるまではつなげないので、様子を確認できない。 X 関連を除くため、自動で再起動しないように '''-n''' を指定して、X 関連の インストール セット を除外してから、再起動する。 !アップグレード準備 bbb# sysupgrade -n Fetching from https://ftp.openbsd.org/pub/OpenBSD//7.8/armv7/ SHA256.sig 100% |*************************************| 1777 00:00 Signature Verified Location of sets = disk BUILDINFO 100% |*************************************| 54 00:00 Verifying old sets. INSTALL.armv7 100% |************************************| 36472 00:00 base78.tgz 100% |*************************************| 156 MB 01:50 bsd 100% |*************************************| 6818 KB 00:06 bsd.rd 100% |*************************************| 15059 KB 00:18 comp78.tgz 100% |*************************************| 46242 KB 00:48 game78.tgz 100% |*************************************| 2697 KB 00:03 man78.tgz 100% |*************************************| 8318 KB 00:04 xbase78.tgz 100% |*************************************| 50948 KB 01:24 xfont78.tgz 100% |*************************************| 23029 KB 00:33 xserv78.tgz 100% |*************************************| 4732 KB 00:03 xshare78.tgz 100% |*************************************| 4578 KB 00:11 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 646960 -rw-r--r-- 1 root wheel 54 Oct 12 22:44 BUILDINFO -rw-r--r-- 1 root wheel 36472 Oct 12 22:44 INSTALL.armv7 -rw-r--r-- 1 root wheel 1625 Nov 3 12:42 SHA256 -rw-r--r-- 1 root wheel 164474096 Oct 12 21:51 base78.tgz -rw-r--r-- 1 root wheel 6982187 Oct 12 21:46 bsd -rw-r--r-- 1 root wheel 15421437 Oct 12 22:44 bsd.rd -rw-r--r-- 1 root wheel 47352378 Oct 12 21:52 comp78.tgz -rw-r--r-- 1 root wheel 2762587 Oct 12 21:53 game78.tgz -rw-r--r-- 1 root wheel 8518007 Oct 12 21:53 man78.tgz -rw-r--r-- 1 root wheel 52170827 Oct 13 05:08 xbase78.tgz -rw-r--r-- 1 root wheel 23581980 Oct 13 05:08 xfont78.tgz -rw-r--r-- 1 root wheel 4845726 Oct 13 05:08 xserv78.tgz -rw-r--r-- 1 root wheel 4688015 Oct 13 05:09 xshare78.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# !再起動(アップグレード) 準備ができたら、再起動する(ここまでは、SSH で操作可)。 bbb# reboot !アップグレード 再起動後、アップグレードが開始され、終われば再度再起動されて、アップグレードされたバージョンで起動する。 以下、シリアル コンソール のアップデートログ  :≪前略≫ OpenBSD/armv7 (bbb.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: 2356072+769292+11504016+483852 [184900+107+387168+211281]=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.8 (RAMDISK) #16: Sun Oct 12 07:43:23 MDT 2025 deraadt@armv7.openbsd.org:/usr/src/sys/arch/armv7/compile/RAMDISK real mem = 484102144 (461MB) avail mem = 456343552 (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.8 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 fsck -p 00b82786d1ef69c3.h... OK. fsck -p 00b82786d1ef69c3.d... OK. fsck -p 00b82786d1ef69c3.f... OK. fsck -p 00b82786d1ef69c3.g... OK. fsck -p 00b82786d1ef69c3.e... OK. /dev/sd0a (00b82786d1ef69c3.a) on /mnt type ffs (rw, local, noatime) /dev/sd0h (00b82786d1ef69c3.h) on /mnt/home type ffs (rw, local, noatime, nodev, nosuid) /dev/sd0d (00b82786d1ef69c3.d) on /mnt/tmp type ffs (rw, local, noatime, nodev, nosuid) /dev/sd0f (00b82786d1ef69c3.f) on /mnt/usr type ffs (rw, local, noatime, nodev) /dev/sd0g (00b82786d1ef69c3.g) on /mnt/usr/local type ffs (rw, local, noatime, nodev, wxallowed) /dev/sd0e (00b82786d1ef69c3.e) on /mnt/var type ffs (rw, local, noatime, nodev, nosuid) 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.8/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] comp78.tgz [X] xbase78.tgz [X] xserv78.tgz [X] bsd.rd [X] man78.tgz [X] xshare78.tgz [X] base78.tgz [X] game78.tgz [X] xfont78.tgz Set name(s)? (or 'abort' or 'done') [done] -x* [X] bsd [X] comp78.tgz [ ] xbase78.tgz [ ] xserv78.tgz [X] bsd.rd [X] man78.tgz [ ] xshare78.tgz [X] base78.tgz [X] game78.tgz [ ] xfont78.tgz Set name(s)? (or 'abort' or 'done') [done] done Directory does not contain SHA256.sig. Continue without verification? [no] yes Installing bsd 100% |**************************| 6818 KB 00:02 Installing bsd.rd 100% |**************************| 15059 KB 00:05 Installing base78.tgz 100% |**************************| 156 MB 03:46 Installing comp78.tgz 100% |**************************| 46242 KB 01:54 Installing man78.tgz 100% |**************************| 8318 KB 01:12 Installing game78.tgz 100% |**************************| 2697 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: 4872636+1013444+140588+602628 [286933+107+347792+308075]=0x0 OpenBSD/armv7 booting ...  :≪中略≫ pmap [ using 943444 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.8 (GENERIC) #17: Sun Oct 12 06:45:46 MDT 2025 deraadt@armv7.openbsd.org:/usr/src/sys/arch/armv7/compile/GENERIC real mem = 484102144 (461MB) avail mem = 464519168 (443MB)  :≪中略≫ bootfile: sd0a:/bsd boot device: sd0 root on sd0a (00b82786d1ef69c3.a) swap on sd0b dump on sd0b WARNING: CHECK AND RESET THE DATE! Automatic boot in progress: starting file system checks. /dev/sd0a (00b82786d1ef69c3.a): file system is clean; not checking /dev/sd0h (00b82786d1ef69c3.h): file system is clean; not checking /dev/sd0d (00b82786d1ef69c3.d): file system is clean; not checking /dev/sd0f (00b82786d1ef69c3.f): file system is clean; not checking /dev/sd0g (00b82786d1ef69c3.g): file system is clean; not checking /dev/sd0e (00b82786d1ef69c3.e): file system is clean; not checking pf enabled starting network 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 ===> Adding the _fc-cache group ===> Adding the _lldpd group ===> Adding the _fc-cache user ===> Adding the _lldpd user chown: /var/cache/fontconfig: No such file or directory ===> Updating /etc/changelist ===> Updating /etc/login.conf ===> Updating /etc/ssh/ssh_config ===> Updating /etc/ssl/cert.pem ===> Updating /etc/mail/aliases 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. Mon Nov 3 13:11:23 JST 2025 OpenBSD/armv7 (bbb.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.8 GENERIC#17 armv7 !設定ファイルの更新 アップデートの中で実行されるので、基本は不要。マージ出来なかった場合は、保留されたままになる。 保留されたファイルがある場合は、新しいファイルを 削除(d)、上書き(i)、マージ(m)、再度差分を表示する(v) を選ぶ。 bbb# sysmerge chown: /var/cache/fontconfig: No such file or directory !ファームウェアの更新 アップデートの中で実行されるので、基本は不要(下記コマンドは確認のみ)。 bbb# fw_update -v -n fw_update: add none; update none !バイナリパッチのアップデート リリース直後であればほどんとないと思う(下記コマンドは適用可能なパッチ一覧のみ)。 ただし、バイナリパッチが提供されるのは i386, amd64 および arm64 のアーキテクチャのみっぽい。 bbb# syspatch -c syspatch: Error retrieving https://ftp.openbsd.org/pub/OpenBSD//syspatch/7.8/armv7/SHA256.sig: 404 Not Found !設定ファイルと構文の変更 [Configuration and syntax changes|https://www.openbsd.org/faq/upgrade78.html#ConfigChanges] を参考に、設定ファイルを更新する。 LLVM 19 をビルドするために、build ユーザは、デフォルトのクラスではなく、独自のクラスが必要となる。 sysmerge で login.conf に追加するが、build ユーザに手動で追加する必要がある。 # user mod -L build build !古いファイルの削除 [Files to remove|https://www.openbsd.org/faq/upgrade78.html#RmFiles] を参考に、古いファイルを削除する。 7.8 のリリースで変わったものはない。 !パッケージ変更!rc.firsttime output [Special packages|https://www.openbsd.org/faq/upgrade78.html#SpecialPackages] を参考に、パッケージ更新する。 !プログラムの変更 アップデートにより、追加で入れたパッケージおよび自身でビルドしたプログラムが動かない場合がある。 パッケージで入れたものは、パッケージの更新を行う。ビルドしたものは、リビルドし直す。 !!アップグレードログ root 宛にアップグレードのログが送られる。 !upgrade response file !upgrade log !sysmerge output