freebsd-update - 13.1 RELEASE → 13.2 RELEASE - 仮想環境で実験

 クラウディア
1. 概要
2. パッチをあてる
3. GENERIC boot を用意しておく
4. バージョンアップ
5. 再起動後

1. 概要

 「VirtualBox」上に、「FreeBSD 13.1 RELEASE」のマシンがありますので、これを「FreeBSD 13.2 RELEASE」にアップデートするところからやってみます。  アップデート前のマシンは、いくつかのサーバアプリケーションをインストールしたものです。

2. パッチをあてる

 仮想マシンの現在の状況を見てみます。

$ uname -a
FreeBSD ns.vm.sing.ne.jp 13.1-RELEASE-p1 FreeBSD 13.1-RELEASE-p1 GENERIC amd64
 パッチがあたっていないので、パッチをあてるところから・・・。  以下、「root」ユーザ権限で。

freebsd-update fetch
 メッセージは長々と出力されるので割愛します。

Fetching metadata signature for 13.1-RELEASE from update2.freebsd.org... done.
Fetching metadata index... done.
Fetching 2 metadata patches.. done.
Applying metadata patches... done.
Inspecting system... done.
Preparing to download files... done.
Fetching 325 patches.....10....20....30....40....50....60....70....80....90....100....110....120....130....140....150....160....170....180....190....200....210....220....230....240....250....260....270....280....290....300....310....320.. done.
Applying patches... done.
Fetching 11 files... ....10 done.
The following files will be removed as part of updating to
13.1-RELEASE-p7:
/usr/share/zoneinfo/SystemV
/usr/src/contrib/tzdata/pacificnew
/usr/src/contrib/tzdata/systemv
/usr/src/contrib/tzdata/yearistype.sh
/usr/src/contrib/tzdata/zoneinfo2tdf.pl
(END)
 Spaceq で進めていきます。  最後に、下記が出力されます。

WARNING: FreeBSD 13.1-RELEASE-p1 is approaching its End-of-Life date.
It is strongly recommended that you upgrade to a newer
release within the next 1 month.
 「FreeBSD 13.1-RELEASE」の残りの命は、あとわずかなので、早くアップグレードせろちゅうことですな。  アップデート。

freebsd-update install
 メッセージは、これだけ

Creating snapshot of existing boot environment... done.
Installing updates...Scanning //usr/share/certs/blacklisted for certificates...
Scanning //usr/share/certs/trusted for certificates...
Scanning //usr/local/share/certs for certificates...
 done.
 再起動。

shutdown -r now
 更新を確認。

uname -a

FreeBSD ns.vm.sing.ne.jp 13.1-RELEASE-p6 FreeBSD 13.1-RELEASE-p6 GENERIC amd64
 「FreeBSD 13.1-RELEASE-p1」から「FreeBSD 13.1-RELEASE-p6」へ変わっています。

3. GENERIC boot を用意しておく

 今回、マイナバージョンのアップグレードなので、「kernel」ファイルは必要ないかと思います。  もし必要になったら、以下の手順で用意します。  「.iso」ファイルをダウンロードして、それをマウントするのが手っ取り早い。  カーネルさえあればいいので、「DVD」メディアでなく、「CD」メディアで十分。  ダウンロード。

mkdir -pv /tmp/disk
cd /tmp/disk
curl https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/13.1/FreeBSD-13.1-RELEASE-amd64-disc1.iso --output FreeBSD-13.1-RELEASE-amd64-disc1.iso
 マウント。

cd /tmp/disk
mdconfig -a -t vnode -f FreeBSD-13.1-RELEASE-amd64-disc1.iso -u -0
mount -t cd9660 -o ro /dev/md0 /mnt
 「GENERIC boot」を抽出。

cd /mnt/usr/freebsd-dist/
tar -C/ -xvf kernel.txz boot/kernel/kernel
 アンマウント。

cd
umount /mnt
mdconfig -d -u 0

4. バージョンアップ

 バージョンアップ。  「root」ユーザ権限で。

freebsd-update -r 13.2-RELEASE upgrade

Looking up update.FreeBSD.org mirrors... 2 mirrors found.
Fetching metadata signature for 13.1-RELEASE from update2.freebsd.org... done.
Fetching metadata index... done.
Fetching 1 metadata files... done.
Inspecting system... done.

The following components of FreeBSD seem to be installed:
kernel/generic kernel/generic-dbg src/src world/base world/lib32

The following components of FreeBSD do not seem to be installed:
world/base-dbg world/lib32-dbg

Does this look reasonable (y/n)?
 yEnter で答えます。  以降、メッセージはなるべく省略して、入力が必要な個所のみ記述します。

The following file could not be merged automatically: /etc/motd.template
Press Enter to edit this file in vi and resolve the conflicts
manually...
 上記は、「/etc/motd.template」を書き換えているので、「これでええんかい?」ちゅなことです。  Enter を入力すれば、「vi」が起動しますので、よかように編集します。  同じようなことをしていきます。  以降、

Does this look reasonable (y/n)?
 と聞かれるのが

/etc/rc.d/ntpd
 nEnter で答えて、以降は

The following files are affected by updates. No changes have
been downloaded, however, because the files have been modified
locally:
/.cshrc
/root/.cshrc
(END)
 「.cshrc」が、変わっちゃってるのね。  q を連打して、進行します。  このまま、下記を表示して終わっちゃいます。

To install the downloaded upgrades, run "/usr/sbin/freebsd-update install".
 ってことで、インストール。

/usr/sbin/freebsd-update install
 なんか、少し、今までとメッセージが異なります。

Creating snapshot of existing boot environment... done.
Installing updates...
Kernel updates have been installed.  Please reboot and run
"/usr/sbin/freebsd-update install" again to finish installing updates.
 再起動。

shutdown -r now

5. 再起動後

 再起動後にログインしたときのログイン時のメッセージが

Last login: Tue May 30 18:08:19 2023 from 192.168.100.169
FreeBSD 13.2-RELEASE releng/13.2-n254617-525ecfdad597 GENERIC
 となっております。  再度。  「root」ユーザ権限で。

/usr/sbin/freebsd-update install
 この下のメッセージの途中は、えらく時間がかかるのです。  また、その間は、どういう仕掛けか、リモートログインできないことがわかりました。  そりゃそうだよね、この状態でリモートログインして、何かファイルを変更されちゃ困りますものね。

Creating snapshot of existing boot environment... done.
Installing updates...
Restarting sshd after upgrade
Performing sanity check on sshd configuration.
Stopping sshd.
Waiting for PIDS: 2205.
Performing sanity check on sshd configuration.
Starting sshd.
Scanning //usr/share/certs/blacklisted for certificates...
Scanning //usr/share/certs/trusted for certificates...
Scanning //usr/l
 メジャーバージョンのアップグレードとは違って、「pkg bootstrap -f」は、必要ないようですが。  一応、ここは、「ports」を更新して。

git -C /usr/ports pull
portsdb -Fu
 して。

pkg version -vl "<"
 で、見ると(結果は、いちいち記述しませんが)、結構な数、アップデートが発生しているようで。

portupgrade -rR パッケージ名
 で、アップグレードしておきます。  今回は、これで安定したけれども。  マイナーアップデートにしても

pkg bootstrap -f
 してから

/usr/sbin/freebsd-update install
 するのが、正なのかなぁ。  メッセージには、それっぽいのなかったけど。
ハイスピードプランU-NEXTJETBOY