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)
Space と q で進めていきます。
最後に、下記が出力されます。
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
するのが、正なのかなぁ。
メッセージには、それっぽいのなかったけど。