このVMのOSをCentOS7にした関係上、そろそろupdateする必要があります。
そもそもCentOS7を選択した理由は、仕事で使用するからでした。
で、仕事ではRocky Linux 9なので、これもRocky Linux 9にしました。
Elevateという移行ツール使用
https://almalinux.org/elevate/
という移行ツールを使います。
以降順番に手順を書いていきます。
バックアップ
バックアップについては、ほとんどのデータを元々取ってあります。
なので特に問題なしとしてます。
具体的手順(CentOS7 to Rocky Linux 8)
以下に手順を記述します。まずは、CentOS7からRocky Linux 8にします。
elevateツールをインストール
アップデートに取りこぼしがないことを確認します。
$ sudo yum update -y $ sudo yum install -y http://repo.almalinux.org/elevate/elevate-release-latest-el7.noarch.rpm
ゴミ掃除
yumのupdate時になぜか警告が出てたので掃除しました。
$ sudo yum-complete-transaction --cleanup-only $ sudo yum history redo last
アップデートに向けた下準備
rockyへの移行用のパッケージをインストールします。
$ sudo yum install -y yum-utils leapp-upgrade leapp-data-rocky
upgrade前処理の実行
ここでupgrade前にできるかどうか確認します。
$ sudo leapp preupgrade
「UPGRADE INHIBITED」として出てきた警告されたことに対応します。
============================================================ UPGRADE INHIBITED ============================================================ Upgrade has been inhibited due to the following problems: 1. Inhibitor: Newest installed kernel not in use 2. Inhibitor: Missing required answers in the answer file Consult the pre-upgrade report for details and possible remediation.
と言われたので一度rebootしました。
answerfileを編集します。
$ sudo vi /var/log/leapp/answerfile $ sudo cat /var/log/leapp/answerfile [remove_pam_pkcs11_module_check] # Title: None # Reason: Confirmation # =================== remove_pam_pkcs11_module_check.confirm ================== # Label: Disable pam_pkcs11 module in PAM configuration? If no, the upgrade process will be interrupted. # Description: PAM module pam_pkcs11 is no longer available in RHEL-8 since it was replaced by SSSD. # Reason: Leaving this module in PAM configuration may lock out the system. # Type: bool # Default: None # Available choices: True/False # Unanswered question. Uncomment the following line with your answer confirm = yes
RHEL8で消されている要らないkernelモジュールを外します。
$ sudo rmmod pata_acpi
sshでrootでのLoginを許可します。
$ sudo -i $ echo PermitRootLogin yes | tee -a /etc/ssh/sshd_config
PAMからpkcs11のモジュールチェックを削除することをleappに承認します。
$ sudo leapp answer --section remove_pam_pkcs11_module_check.confirm=True
以下を何回か行います。
$ sudo leapp preupgrade
以下のようになったのでpreupgradeは成功しました。
============================================================ REPORT ============================================================
以下で古いkernelをお掃除しました。
ただし、これのせいでel7カーネルから変更できてない可能性があります。
それほど必要ではないのでやらないほうがいいかもしれません。
$ sudo package-cleanup --oldkernel --count=1
upgrade開始
upgradeを開始します。
# mkdir -p /var/lib/leapp/el8userspace ### LEAPP_OVL_SIZEを設定しないと ### At least XXXMB more space needed on the / filesystem. ### と言われてupgradeに失敗する # export LEAPP_OVL_SIZE=3000 # yum remove cmake3-3.17.5-1.el7.x86_64 # yum remove libzip5-1.7.3-1.el7.remi.x86_64 # yum remove gd-last-2.3.2-1.el7.remi.x86_64 # sudo leapp upgrade
「A reboot is required to continue. Please reboot your system.」というのが出れば成功です。
A reboot is required to continue. Please reboot your system. Debug output written to /var/log/leapp/leapp-upgrade.log ============================================================ REPORT ============================================================
ネットワーク設定
以下に変更してネットワーク設定はそのままにしました。
$ sudo vi /etc/NetworkManager/NetworkManager.conf [main] plugins=keyfile,ifcfg-rh
再起動
$ reboot
upgradeしていることを確認しました。
$ cat /etc/rocky-release Rocky Linux release 8.9 (Green Obsidian)
カーネルがアップデートできてない
上記のままやったら、カーネルがアップデートできてませんでした。なんだかな。。
# uname -a Linux XXXXX 3.10.0-1160.25.1.el7.x86_64
/etc/yum.repos.d/Rocky-Base.repoを強引に書き換えてel8のカーネルをインストールし、grub.cfgを書き換えました。
$ sudo dnf reinstall kernel kernel-core kernel-modules $ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Upgrade Rocky Linux 8 to Rocky Linux 9
CentOS7固有のRPMは削除します。
$ rpm -qa | grep -E 'el7[.-]' | xargs rpm -e
この時点では結構失敗するがとりあえず無視しました。
具体的手順(Rocky Linux 8 to Rocky Linux 9)
Rocky Linux 8 to Rocky Linux 9は以下のようにします。
Install Migration Packages for Rocky Linux 8
$ sudo yum install -y http://repo.almalinux.org/elevate/elevate-release-latest-el8.noarch.rpm $ sudo yum config-manager --save --setopt exclude=''
アップグレード前設定
$ sudo dnf upgrade --refresh --allowerasing $ sudo dnf install -y leapp-upgrade leapp-data-rocky $ sudo leapp preupgrade
firewalld 設定変更
このシステムではfirewalldをインストールしてないので意味がありませんでした。
$ sudo sed -i "s/^AllowZoneDrifting=.*/AllowZoneDrifting=no/" /etc/firewalld/firewalld.conf
設定前確認
$ sudo leapp answer --section check_vdo.no_vdo_devices=True
Rocky Linux 9 アップグレード
$ export LEAPP_OVL_SIZE=3500 $ sudo leapp upgrade
UPGRADE INHIBITED
今回は以下のエラーになりました。
============================================================ UPGRADE INHIBITED ============================================================ Upgrade has been inhibited due to the following problems: 1. Inhibitor: Network configuration for unsupported device types detected 2. Inhibitor: Detected RPMs with RSA/SHA1 signature Consult the pre-upgrade report for details and possible remediation.
「Inhibitor: Network configuration for unsupported device types detected」対応
以下のようにネットワーク設定を削除しました。
$ cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0-back $ rm /etc/sysconfig/network-scripts/ifcfg-eth0 ### eth0.nmconnectionの作成 $ vi /etc/NetworkManager/system-connections/eth0.nmconnection [connection] id=eth0 uuid=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 type=802-3-ethernet autoconnect-priority=0 interface-name=eth0 timestamp=1704634128
「Inhibitor: Detected RPMs with RSA/SHA1 signature」対応
「Inhibitor: Detected RPMs with RSA/SHA1 signature」に対しては、不要なRPMを予め削除しました。
削除対象は/var/log/leapp/leapp-report.txtに書いてあります。それを見ながらひたすら削除しました。
再起動
$ sudo reboot
CentOS8固有のRPMは削除する
以下で削除しましたが、実際には存在しませんでした。
$ sudo -i $ rpm -qa | grep -E 'el8[.-]' | xargs rpm -e
ネットワーク設定(Rocky Linux 9)
Rocky Linux 9からifcfgからNetworkManagerのkeyfile形式に変更されてます。
なので以下のような感じで、まずはeth0に名付けてデータを/etc/NetworkManager/system-connections/eth0.nmconnectionに保存するようにします。
$ nmcli connection show NAME UUID TYPE DEVICE eth0 12ecfae1-cb76-40ec-8222-50dfec27d002 ethernet eth0 lo c4331927-9245-493b-9a4e-ee5b8ce8f78d loopback lo 有線接続 1 9f8d4019-0a95-391d-a5d7-5cf27784d734 ethernet -- $ nmcli connection modify 12ecfae1-cb76-40ec-8222-50dfec27d002 connection.id eth0
MySQLがインストールされてなかった
el9の設定まで終えてみると、MySQLがインストールされてませんでした。。
結構焦りましたが、以下でMySQLをとりあえずインストールしたら解決しました。
$ sudo dnf install mysql --skip-broken --nobest
設定もそのままで動作しました。
おまけ(wordpress)
基本的にそのままで動作しましたがimagickだけインストールに苦労しました。
以下のように前提ライブラリが必要なようです。
### ImageMagickで使用する、前提ライブラリのインストール $ wget https://cbs.centos.org/kojifiles/packages/liblqr-1/0.4.2/17.el9s/x86_64/liblqr-1-devel-0.4.2-17.el9s.x86_64.rpm $ sudo dnf install liblqr-1-devel-0.4.2-17.el9s.x86_64.rpm $ wget https://rpmfind.net/linux/centos-stream/9-stream/AppStream/x86_64/os/Packages/LibRaw-0.21.1-1.el9.x86_64.rpm $ sudo dnf install LibRaw-0.21.1-1.el9.x86_64.rpm ### ImageMagick インストール $ sudo dnf install ImageMagick ImageMagick-devel ImageMagick-libs $ sudo pecl install imagick
おわりに
最後は力技で解決しました。いつもながら冷汗。。
調査はつらつらとしていましたが、作業開始から断続的に1日かかってます。
参考
https://grnbbs.mydns.jp/blog/grn_blog/2021/12/centos-7rocky-linux-8.html
https://phoenixnap.com/kb/migrate-centos-to-rocky-linux
https://www.redhat.com/ja/blog/rhel-9-networking-say-goodbye-ifcfg-files-and-hello-keyfiles
https://access.redhat.com/discussions/6963950
https://isleofhoso.com/linux-nmcli-ipsetting/