Fullmoon System

Rocky Linux 8.10へのアップグレード:8.8から安全に移行する手順

EdwardMoon

Rocky Linux 8.10へのアップグレードでは、8.xのリポジトリを最新の状態に同期し、再起動後にサービスの動作まで確認します。Rocky Linux 8.8はすでにサポートが終了したマイナーリリースで、8.10はRocky Linux 8系の最終マイナーリリースです。本番サーバーでは、更新コマンドを実行する前にバックアップ、コンソールへのアクセス、外部リポジトリの確認、復旧の判断基準を整えてください。

この記事の対象は、同じメジャーバージョン内での8.8から8.10への更新です。メジャーバージョンのアップグレードやCentOSからの移行とは手順が異なります。アプリケーションとデータベースの対応バージョンを確認し、本番環境の更新前に複製環境やステージング環境で手順を再現してください。

Rocky Linux 8.10への安全な更新手順:バックアップ、DNFの確認、更新、再起動、検証
バックアップとコンソールの確保から、再起動後のサービス検証までの流れ

更新前にサポート期間を確認する

公式のサポート方針では、8.10がRocky Linux 8系の最終マイナーリリースで、メジャーバージョンとしてのサポート終了日は2029年5月31日です。新しいマイナーリリースの公開後、以前のマイナーリリースはサポート対象外となり、パッケージはVaultへ移されます。8.8に固定しても、セキュリティ更新を受け続けられるわけではありません。

確認項目実施できる条件中止する条件
ホストの役割サービス、ポート、依存関係の一覧がある管理責任者または許容停止時間が不明
復旧手段検証済みのバックアップとコンソールアクセスがあるスナップショットだけで復元試験をしていない
リポジトリRocky公式のBaseOSとAppStreamを中心に構成されている署名の確認できない外部リポジトリが有効
空き容量ルート、/var、/bootとinodeに余裕があるカーネルをインストールする容量が不足
アプリケーション8.10との組み合わせがサポートされているドライバーやエージェントの互換性が不明

手順1:変更前の状態と復旧ポイントを記録する

仮想マシンのスナップショットだけに依存せず、アプリケーションの整合性を確保したバックアップも別途取得します。データベースは製品が提供する論理バックアップまたは物理バックアップの手順を利用し、復元試験の結果と想定復旧時間を記録してください。

sudo install -d -m 0700 /root/pre-rocky-8-10
sudo cp -a /etc/yum.repos.d /root/pre-rocky-8-10/
sudo rpm -qa --qf '%{NAME} %{EPOCHNUM}:%{VERSION}-%{RELEASE}.%{ARCH}\n'   | sort | sudo tee /root/pre-rocky-8-10/packages.txt >/dev/null
sudo systemctl list-unit-files --state=enabled   | sudo tee /root/pre-rocky-8-10/enabled-units.txt >/dev/null
sudo ss -lntup | sudo tee /root/pre-rocky-8-10/listeners.txt >/dev/null
sudo find /root/pre-rocky-8-10 -maxdepth 1 -type f -name '*.txt' -exec sha256sum {} \;

手順2:更新前の診断を行う

cat /etc/rocky-release
uname -r
sudo dnf repolist --enabled
sudo dnf check
sudo rpm --verify --all | sudo tee /root/pre-rocky-8-10/rpm-verify.txt >/dev/null

findmnt -T /
df -hT / /var /boot
df -i / /var /boot
sudo systemctl --failed --no-pager

RPMの検証結果では、意図した設定変更とファイル破損を区別してください。出力があるという理由だけで設定ファイルを上書きしてはいけません。ベンダー製カーネルモジュール、セキュリティ製品、HBA・NICドライバー、外部リポジトリ由来のパッケージについても互換性を確認します。

外部リポジトリを一時的に切り離す理由

ELRepo、EPEL、データベースやセキュリティエージェントのリポジトリは依存関係の解決に影響します。現在の有効・無効の状態を記録し、ベンダーの8.10対応状況を確認したうえで、更新作業中だけ必要なリポジトリを選んで一時的に無効化してください。

sudo dnf repolist --all
sudo grep -RHE '^[[]|^enabled=|^baseurl=|^mirrorlist=|^metalink='   /etc/yum.repos.d/*.repo

# 例:検証できていないリポジトリだけを一時的に無効化
sudo dnf install dnf-plugins-core
sudo dnf config-manager --set-disabled example-third-party
sudo dnf clean all
sudo dnf makecache

手順3:更新を実行する

通常のRocky Linux 8リポジトリは、現在のマイナーリリースを提供します。標準のリポジトリ構成で全体を更新し、releaseverを独自に固定したり、異なるリリースのRPMを混在させたりしないでください。

sudo dnf upgrade --refresh
sudo dnf check
sudo dnf needs-restarting -r
# 0:再起動不要、1:再起動が必要。ツール自体の実行エラーとは区別する。
sudo reboot

確定する前に、削除・置換されるパッケージの一覧を確認します。--allowerasingは、競合の理由と削除の影響を理解している場合に限って使用してください。問題を見えなくするための標準オプションではありません。

手順4:再起動後にバージョンとカーネルを確認する

cat /etc/rocky-release
uname -r
rpm -q rocky-release rocky-repos rocky-gpg-keys
sudo dnf check
sudo dnf check-update || rc=$?
test "${rc:-0}" -eq 0 -o "${rc:-0}" -eq 100

sudo systemctl --failed --no-pager
sudo journalctl -p err -b --no-pager
sudo ss -lntup
getenforce

リリース表記が8.10になっただけでは確認は完了しません。新しいカーネルで起動していること、失敗したunitがないこと、ポート、ログ、SELinuxの状態が変更前の基準と整合していることを確認します。HTTP応答、データベースの読み書き、キュー処理など、実際の業務トランザクションも試してください。

手順5:DNFの競合を安全に解消する

sudo dnf repoquery --duplicates
sudo dnf repoquery --unsatisfied
sudo dnf list --extras
sudo dnf distro-sync --assumeno
sudo dnf history info last

dnf distro-sync--allowerasingを使用する前に、削除予定と復旧方法を確認します。重要なコンポーネントが削除対象になる場合は、まずリポジトリの混在やモジュールストリームの不整合を修正してください。

手順6:/bootと古いカーネルを整理する

df -hT /boot
rpm -q kernel-core
grubby --default-kernel
sudo dnf remove --oldinstallonly --setopt installonly_limit=3 --assumeno

実行中のカーネルと、直前に正常動作を確認できたカーネルは残します。削除予定を事前に確認してから整理し、ブートローダーとコンソールへのアクセスも確認してください。

手順7:ロールバックを判断する

DNFの履歴は診断に役立ちますが、カーネル、glibc、systemdを含むシステム全体を完全に元へ戻せる保証はありません。起動不能、重要データの破損、非対応ドライバーなどが発生した場合は作業を中止し、検証済みのイメージバックアップから復元します。

sudo dnf history list
sudo dnf history info last
sudo journalctl -b -1 -p warning --no-pager
sudo tar -C /root/pre-rocky-8-10 -czf /root/pre-rocky-8-10-evidence.tgz .

運用チェックリスト

  1. 作業の承認、担当者、停止可能な時間帯を記録する。
  2. コンソールへのアクセスと復元試験の結果を確認する。
  3. 外部リポジトリとモジュールストリームの互換性を確認する。
  4. DNFの変更予定を保存する。
  5. 再起動して新しいカーネルでの起動を確認する。
  6. 業務トランザクションと監視の状態を確認する。
  7. 経過観察後、運用方針に従ってスナップショットと一時バックアップを整理する。

公式ドキュメントと関連記事

まとめ

Rocky Linux 8の公式リポジトリを利用し、事前確認、全体更新、再起動、実サービスの検証まで実施します。8.8への固定やVaultの利用はセキュリティサポートの代わりにはなりません。外部リポジトリ、ドライバー、復旧手順を確認してから8.10へ移行してください。