1. 概要
「VirtualBox」上に、「FreeBSD 13.2 RELEASE」のマシンがありますので、これを「FreeBSD 13.3 RELEASE」にアップデートするところからやってみます。
アップデート前のマシンは、いくつかのサーバアプリケーションをインストールしたものです。
2. ports の更新
放置しておいたので、アップデートの発生している、「ports」が山ほどあります。
全部更新しておきます。
3. パッチをあてる
仮想マシンの現在の状況を見てみます。
$ uname -a
FreeBSD ns.vm.sing.ne.jp 13.2-RELEASE FreeBSD 13.2-RELEASE MYKERNEL amd64
パッチがあたっていないので、パッチをあてるところから・・・。
以下、「root」ユーザ権限で。
freebsd-update fetch
メッセージは長々と出力されるので割愛します。
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching public key from update1.freebsd.org... done.
Fetching metadata signature for 13.2-RELEASE from update1.freebsd.org... done.
Fetching metadata index... done.
Fetching 2 metadata files... done.
Inspecting system... done.
Preparing to download files... done.
Fetching 302 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. done.
Applying patches... done.
Fetching 96 files... ....10....20....30....40....50....60....70....80....90... done.
The following files will be added as part of updating to
13.2-RELEASE-p11:
/etc/ssl/certs/0179095f.0
/etc/ssl/certs/08063a00.0
・・・ 略 ・・・
/usr/share/certs/trusted/HARICA_TLS_ECC_Root_CA_2021.pem
/usr/share/certs/trusted/HARICA_TLS_RSA_Root_CA_2021.pem
:
Space と q で進めていきます。
最後に、下記が出力されます。
WARNING: FreeBSD 13.2-RELEASE is approaching its End-of-Life date.
It is strongly recommended that you upgrade to a newer
release within the next 2 months.
「FreeBSD 13.2-RELEASE」の残りの命は、あとわずかなので、早くアップグレードせろちゅうことですな。
アップデート。
freebsd-update install
メッセージは、これだけ。
これでも、「sshd」やらで出力されている分、いつもより長いです。
Creating snapshot of existing boot environment... done.
Installing updates...
Restarting sshd after upgrade
Performing sanity check on sshd configuration.
Stopping sshd.
Waiting for PIDS: 903.
Performing sanity check on sshd configuration.
Starting sshd.
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.2-RELEASE-p11 FreeBSD 13.2-RELEASE-p11 GENERIC amd64
「FreeBSD 13.2-RELEASE」から「FreeBSD 13.2-RELEASE-p11」へ変わっています。
4. 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.2/FreeBSD-13.2-RELEASE-amd64-disc1.iso --output FreeBSD-13.2-RELEASE-amd64-disc1.iso
マウント。
cd /tmp/disk
mdconfig -a -t vnode -f FreeBSD-13.2-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
5. バージョンアップ
バージョンアップ。
「root」ユーザ権限で。
freebsd-update -r 13.3-RELEASE upgrade
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching metadata signature for 13.2-RELEASE from update1.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/group
Press Enter to edit this file in vi and resolve the conflicts
manually...
上記は、「/etc/group」を書き換えているので、「これでええんかい?」ちゅなことです。
Enter を入力すれば、「vi」が起動しますので、よかように編集します。
同じようなことをしていきます。
以降、同様のものが、以下のように続きます。
The following file could not be merged automatically: /etc/mail/mailer.conf
Press Enter to edit this file in vi and resolve the conflicts
manually...
The following file could not be merged automatically: /etc/master.passwd
Press Enter to edit this file in vi and resolve the conflicts
manually..
The following file could not be merged automatically: /etc/ntp.conf
Press Enter to edit this file in vi and resolve the conflicts
manually...
「/etc/group」は、なんかしくったかな?
こんな風に表示されました。
The following changes, which occurred between FreeBSD 13.2-RELEASE and
FreeBSD 13.3-RELEASE have been merged into /etc/group:
--- current version
+++ new version
@@ -1,7 +1,5 @@
-# $FreeBSD$
-#
wheel:*:0:root,hogehoge
daemon:*:1:
kmem:*:2:
sys:*:3:
tty:*:4:
@@ -29,10 +27,11 @@
uucp:*:66:
dialer:*:68:
network:*:69:
audit:*:77:
www:*:80:
+u2f:*:116:
ntpd:*:123:
_ypldap:*:160:
hast:*:845:
tests:*:977:
nogroup:*:65533:
Does this look reasonable (y/n)?
なんか、増えたり減ったりしています。
最悪、再起動後に編集するつもりで。
y Enter。
似たようなものが、下記のファイルにも出力されましたが。
/etc/hosts
/etc/ntp.conf
/etc/rc.conf
/etc/rc.d/ntpd
/etc/shells
/etc/sysctl.conf
同様に進めていきます。
この後、変更分のファイルがずらずらと表示されますが、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
6. 再起動後
再起動後にログインしたときのログイン時のメッセージが
Last login: Mon Apr 1 12:42:00 2024 from 172.20.10.3
FreeBSD 13.3-RELEASE-p1 GENERIC
となっております。
再度。
「root」ユーザ権限で。
/usr/sbin/freebsd-update install
この下のメッセージの途中は、えらく時間がかかるのです。
Creating snapshot of existing boot environment... done.
Installing updates...rm: ///usr/src/contrib/llvm-project/libcxx/include/__tuple: is a directory
rm: ///usr/src/contrib/llvm-project/libcxx/include/__string: is a directory
rm: ///usr/include/c++/v1/__tuple: is a directory
rm: ///usr/include/c++/v1/__string: is a directory
Restarting sshd after upgrade
Performing sanity check on sshd configuration.
Stopping sshd.
Waiting for PIDS: 899.
Performing sanity check on sshd configuration.
Starting sshd.
Scanning //usr/share/certs/blacklisted for certificates...
Scanning //usr/share/certs/trusted for certificates...
Scanning //usr/local/share/certs for certificates...
done.
なんか、いつもと違うメッセージが出力されて、いささか気がかりではありますが、一応、アップグレードできた模様。
メジャーバージョンのアップグレードとは違って、「pkg bootstrap -f」は、必要ないようですが。
一応、ここは、「ports」を更新して。
git -C /usr/ports pull
portsdb -Fu
して。
portversion -v | grep '<'
で、見ると、アップデートは、発生していませんでした。
今回は、これで安定しました。