このドキュメントは、FreeBSDホストOSおよびその上で動作するJail環境のメジャーバージョンアップ(例: 13.2 → 14.1)の手順を規定する。
作業前に必ず現在の状態を保存する。
# zfs snapshot -r zroot@before_major_upgrade
まずは土台となるホストOSを更新する。
新しいリリースのバイナリを取得し、インストールする。
# freebsd-update -r 14.1-RELEASE upgrade # freebsd-update install
新しいカーネルを適用するため、一度再起動を行う。
# shutdown -r now
再起動後、残りのコンポーネントを適用する。
# freebsd-update install
OSのメジャーバージョン(ABI)変更に伴い、全パッケージを強制的に再インストールする。
# pkg update # pkg upgrade -f
各Jailに対しても、ホストと同様の処理を行う。
Jailのルートパスを指定して実行する。
# freebsd-update -b /usr/jails/myjail -r 14.1-RELEASE upgrade # freebsd-update -b /usr/jails/myjail install
設定を反映させるため、Jailを再起動する。
# service jail restart myjail
# freebsd-update -b /usr/jails/myjail install
Jail内部にログインし、パッケージをABIに適合させる。
# jexec myjail (jail)# pkg update (jail)# pkg upgrade -f (jail)# exit
全ての更新と動作確認が完了したら、システムに残っている古いバージョンのゴミ(共有ライブラリ等)を削除する。
# freebsd-update install
# freebsd-update -b /usr/jails/myjail install
| 工程 | 内容 | 確認項目 |
|---|---|---|
| 1 | ホストOS更新 | `freebsd-version` が新バージョンか |
| 2 | ホストPKG更新 | `pkg upgrade -f` がエラーなく完了するか |
| 3 | Jail OS更新 | 各Jailのベースシステムが更新されたか |
| 4 | Jail PKG更新 | Jail内のサービスが正常に起動するか |
* メジャーアップデート中はネットワーク断やサービス停止が発生するため、メンテナンスウィンドウを確保すること。
* カスタムカーネルを使用している場合は、事前に新しいソースでの再構築が必要。