Linux

CentOS 8、CentOS Stream 8 を CentOS Stream 9にアップグレードする

CentOS 8、CentOS Stream 8をCentOS Stream 9を利用したい人向けです。Azure、AWSでの環境で検証を行っています。AzureでもCentOS Stream 9のイメージはマーケットプレイスに一応ありますが、よくわからないイメージです。課金もされるようなイメージもあるので要注意です。

AzureではCentOSのイメージは基本的に Rogue Wave Software (formerly OpenLogic) を利用するようにしています。

ただし、CentOS 8までしか公開していません。Streamでもありません。これをCentOS Stream 9にアップグレードして利用します。

手順はCentOS 8 → CentOS Stream 8 → CentOS Stream 9 にアップグレードしていきます。

Azure のCentOS 8 → CentOS Stream 8 へのアップグレードは前回紹介も参考にしてください。

AzureのCentOS 8をCentOS Stream 8 に変更してみる - 技術的な何か。
AzureのCentOS 8をCentOS Stream 8 に変更してみる - 技術的な何か。

はじめに AzureでもCentOSを利用しているとは多々います。そこで、公開されているCentOS8のイメージを Stream 8 に変更する方法を紹介します。 元のCentOSはRogueのCen

level69.net

CentOS Stream 8 → CentOS Stream 9 にアップグレードを行っていきたいともいます。

作業を行う前には必ずバックアップをとってからアップグレードを行ってください。

またアップグレードによる正常動作を保証することはできません。動作については各自行ってください。

アップグレード

CentOS Stream 8 → CentOS Stream 9 へのアップグレードは下記を参考に行っています。

How to upgrade to CentOS Stream 9 from CentOS Stream 8
How to upgrade to CentOS Stream 9 from CentOS Stream 8

This article will show how to upgrade to CentOS Stream 9 from a minimal installation of CentOS Strea ...

ahelpme.com

CentOS 8 → CentOS Stream 8 → CentOS Stream 9 の手順です。

CentOS 8 → CentOS Stream 8

アップグレードは以下のコマンドで完了します。

dnf update -y
dnf swap centos-linux-repos centos-stream-repos
dnf distro-sync
reboot

CentOS Stream 8 → CentOS Stream 9

最新のパッケージにアップデートし不要なパッケージをクリーンアップします。

dnf update -y
dnf repoquery --unneeded
dnf repoquery --extras

表示されたパッケージを削除します。例としてNetworkManager-initscripts-updown

dnf remove -y NetworkManager-initscripts-updown-1:1.40.2-1.el8.noarch

CentOS Stream 9のレポジトリをインストールします。

dnf install -y http://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os/Packages/centos-stream-repos-9.0-18.el9.noarch.rpm http://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os/Packages/centos-stream-release-9.0-18.el9.noarch.rpm http://mirror.stream.centos.org/9-stream/BaseOS/x86_64/os/Packages/centos-gpg-keys-9.0-18.el9.noarch.rpm

アップグレードします。

dnf -y --releasever=9-stream --allowerasing --setopt=deltarpm=false distro-sync

RPMのデータベースを再構築します。

rpmdb --rebuilddb

dnfのキャッシュを削除します。

dnf clean packages

アップデートします。

dnf update -y

アップデートするときにOpenLogicのレポジトリが404になっていることがわかります。参照しないように名前を変更します。削除しても問題ないです。

mv /etc/yum.repos.d/OpenLogic.repo /etc/yum.repos.d/OpenLogic.repo.rpmsave
mv /etc/yum.repos.d/OpenLogicCentOS.repo /etc/yum.repos.d/OpenLogicCentOS.repo.rpmsave

アップデートします。エラーを出ないことを確認します。

dnf update -y

最小インストールとコアをgroupupdate しリブートします。

dnf -y groupupdate "Core" "Minimal Install"
reboot

リブートは5分程度かかります。起動しない場合はシリアルコンソールに接続して確認しましょう。

古いKernelを削除します。

rpm -q kernel-core

表示されたel8のKernelを削除します。

dnf remove -y kernel-core-4.18.0-348.7.1.el8_5.x86_64 kernel-core-4.18.0-408.el8.x86_64

subscription-managerは関係ないので削除します。

dnf remove -y subscription-manager

ここで下記のようなものが表示されていると思います。

Problem: conflicting requests
  - nothing provides module(platform:el8) needed by module python36:3.6:8050020211109193439:982725ab.x86_64

これを解消するためにはdnfモジュールをリセットします。

dnf module reset -y python36

アップデートして確認すると表示が消えたことがわかります。

dnf update

他に、再起動が遅い問題があります。これを解消するためにはNetworkManager-wait-online.service を停止する必要があります。

systemctl disable NetworkManager-wait-online.service

以上ですべての作業は完了です。

リリースバージョン、カーネルがアップグレードされていることも確認でいます。

cat /etc/redhat-release
CentOS Stream release 9
uname -a
Linux centos 5.14.0-183.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Oct 31 09:18:51 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

 

まとめ

CentOS 8を CentOS Stream 9にアップグレードする方法を紹介しました。これはAzureに限らずやることは一緒です。どうしても、延命したいんだなどの方は試してみてはいかがでしょうか。ただし、インプレースアップグレードは既存の環境に致命的な問題が行る場合もあるので必ずバックアップを取ってから行いましょう。

-Linux
-