移行ツール¶
(更新:2022.2.23)
EL8からAlmaLinuxに移行するツールが公開されています。
GitHub:AlmaLinux/almalinux-deploy
EL8について、以下のディストリビューションに対応している状況です。
- CentOS 8
- Oracle Linux 8
- RHEL 8
- Rocky Linux 8
手順¶
(1) AlmaLinuxへの変換には、バージョンが8.4または8.5である必要があります。AlmaLinuxに移行する前に8.5にアップデートすることをお勧めしますが、少なくとも8.4を使っている場合は必要ありません。システムが新しいアップデートを受け取った場合、アップデート後に再起動することをお勧めします。
sudo dnf update -y
sudo reboot
2022年1月31日現在、CentOS 8のミラーリストはオフラインになっています。dnf update -y
コマンドを正常に実行するためには、有効なミラーを指すように dnf の設定ファイルを更新する必要があります。以下の sed コマンドを使用して、dnf を 現在のCentOS 8.xからCentOS 8.5→AlmaLinux にアップデートできるような状態にします。
なお、このあとで実行するalmalinux-deploy.sh
で、sudo bash almalinux-deploy.sh -f
のように-fオプションをつけると、この処理を行うことができます。)
sudo sed -i -e '/mirrorlist=http:\/\/mirrorlist.centos.org\/?release=$releasever&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http:\/\/mirror.centos.org\/$contentdir\/$releasever\// s/^#*/#/' -e '/^\[baseos\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/BaseOS/$basearch/os' /etc/yum.repos.d/CentOS-Linux-BaseOS.repo
sudo sed -i -e '/mirrorlist=http:\/\/mirrorlist.centos.org\/?release=$releasever&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http:\/\/mirror.centos.org\/$contentdir\/$releasever\// s/^#*/#/' -e '/^\[appstream\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/AppStream/$basearch/os' /etc/yum.repos.d/CentOS-Linux-AppStream.repo
sudo sed -i -e '/mirrorlist=http:\/\/mirrorlist.centos.org\/?release=$releasever&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http:\/\/mirror.centos.org\/$contentdir\/$releasever\// s/^#*/#/' -e '/^\[cr\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/ContinuousRelease/$basearch/os' /etc/yum.repos.d/CentOS-Linux-ContinuousRelease.repo
sudo sed -i -e '/mirrorlist=http:\/\/mirrorlist.centos.org\/?release=$releasever&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http:\/\/mirror.centos.org\/$contentdir\/$releasever\// s/^#*/#/' -e '/^\[devel\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/Devel/$basearch/os' /etc/yum.repos.d/CentOS-Linux-Devel.repo
sudo sed -i -e '/mirrorlist=http:\/\/mirrorlist.centos.org\/?release=$releasever&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http:\/\/mirror.centos.org\/$contentdir\/$releasever\// s/^#*/#/' -e '/^\[extras\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/extras/$basearch/os' /etc/yum.repos.d/CentOS-Linux-Extras.repo
sudo sed -i -e '/mirrorlist=http:\/\/mirrorlist.centos.org\/?release=$releasever&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http:\/\/mirror.centos.org\/$contentdir\/$releasever\// s/^#*/#/' -e '/^\[fasttrack\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/fasttrack/$basearch/os' /etc/yum.repos.d/CentOS-Linux-FastTrack.repo
sudo sed -i -e '/mirrorlist=http:\/\/mirrorlist.centos.org\/?release=$releasever&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http:\/\/mirror.centos.org\/$contentdir\/$releasever\// s/^#*/#/' -e '/^\[ha\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/HighAvailability/$basearch/os' /etc/yum.repos.d/CentOS-Linux-HighAvailability.repo
sudo sed -i -e '/mirrorlist=http:\/\/mirrorlist.centos.org\/?release=$releasever&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http:\/\/mirror.centos.org\/$contentdir\/$releasever\// s/^#*/#/' -e '/^\[plus\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/centosplus/$basearch/os' /etc/yum.repos.d/CentOS-Linux-Plus.repo
sudo sed -i -e '/mirrorlist=http:\/\/mirrorlist.centos.org\/?release=$releasever&arch=$basearch&repo=/ s/^#*/#/' -e '/baseurl=http:\/\/mirror.centos.org\/$contentdir\/$releasever\// s/^#*/#/' -e '/^\[powertools\]/a baseurl=https://mirror.rackspace.com/centos-vault/8.5.2111/PowerTools/$basearch/os' /etc/yum.repos.d/CentOS-Linux-PowerTools.repo
(2) いつでも復元できるようにシステムのバックアップを作成します。移行ツールでは考えられるすべてのシナリオをテストできないため、問題が発生するリスクがあります。
(3) almalinux-deploy.shスクリプトをダウンロードします。
$ curl -O https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh
(4) スクリプトを実行し、その出力結果にエラーがないか確認します。
$ sudo bash almalinux-deploy.sh
...
Migration to AlmaLinux is completed
(5) システムが正常に変換されたことを確認します。
# リリースファイルの確認
$ cat /etc/redhat-release
AlmaLinux release 8.5 (Arctic Sphynx)
# システムがデフォルトでAlmaLinuxカーネルを起動することを確認
$ sudo grubby --info DEFAULT | grep AlmaLinux
title="AlmaLinux (4.18.0-348.12.2.el8_5.x86_64) 8.5 (Arctic Sphynx)"
実例¶
CentOS 8.4がインストールされている物理サーバー上で、マイグレーションスクリプトを実行した例です。このサーバーはKVM環境でそれほど豊富なパッケージは入っておらず、外部リポジトリのパッケージも使用していないため、素直にマイグレーションができました。
almalinux-deploy.shスクリプトのダウンロード¶
# curl -O https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 26393 100 26393 0 0 56395 0 --:--:-- --:--:-- --:--:-- 56395
スクリプトを実行と結果確認¶
実行すると、一気通貫でマイグレーション処理が行われます。全ての処理が正常終了すると、Migration to AlmaLinux is completed
が表示され、スクリプトが終了します。
[root@mserv ~]# sudo bash almalinux-deploy.sh
Check root privileges OK
Check centos-8.x86_64 is supported OK
Download RPM-GPG-KEY-AlmaLinux OK
Import RPM-GPG-KEY-AlmaLinux to RPM DB OK
Download almalinux-release package OK
Verify almalinux-release package OK
Your OS is supported OK
Remove OS specific rpm packages OK
Verifying... ########################################
準備しています... ########################################
更新中 / インストール中...
almalinux-release-8.4-2.el8 ########################################
Install almalinux-release package OK
Backup of alternatives is done OK
最速のミラーを確定しています (122 hosts).. done.
AlmaLinux 8 - BaseOS 143 kB/s | 3.5 MB 00:25
AlmaLinux 8 - AppStream 1.6 MB/s | 7.5 MB 00:04
AlmaLinux 8 - Extras 5.1 kB/s | 2.5 kB 00:00
依存関係が解決しました。
=====================================================================================================================
パッケージ Arch バージョン Repo サイズ
=====================================================================================================================
インストール:
kernel x86_64 4.18.0-305.3.1.el8_4 baseos 5.9 M
kernel-core x86_64 4.18.0-305.3.1.el8_4 baseos 36 M
kernel-modules x86_64 4.18.0-305.3.1.el8_4 baseos 28 M
アップグレード:
dnf-plugin-spacewalk noarch 2.8.5-11.module_el8.3.0+2053+3ddf2832 appstream 22 k
glusterfs x86_64 6.0-56.el8 baseos 665 k
glusterfs-api x86_64 6.0-56.el8 appstream 98 k
(中略)
qemu-kvm-core x86_64 15:4.2.0-48.module_el8.4.0+2358+630e803b appstream 3.5 M
rhn-client-tools x86_64 2.8.16-13.module_el8.3.0+2053+3ddf2832 appstream 384 k
sos noarch 4.0-11.el8.alma baseos 687 k
再インストール:
NetworkManager x86_64 1:1.30.0-7.el8 baseos 2.6 M
NetworkManager-libnm x86_64 1:1.30.0-7.el8 baseos 1.8 M
NetworkManager-team x86_64 1:1.30.0-7.el8 baseos 144 k
(中略)
yajl x86_64 2.1.0-10.el8 appstream 41 k
yum noarch 4.4.2-11.el8 baseos 201 k
zlib x86_64 1.2.11-17.el8 baseos 101 k
依存関係のインストール:
ima-evm-utils0 x86_64 1.3.2-12.el8 baseos 21 k
削除中:
kernel x86_64 4.18.0-240.15.1.el8_3 @baseos 0
kernel-core x86_64 4.18.0-240.15.1.el8_3 @baseos 62 M
kernel-modules x86_64 4.18.0-240.15.1.el8_3 @baseos 21 M
ダウングレード:
dhcp-client x86_64 12:4.3.6-44.el8_4.1 baseos 317 k
dhcp-common noarch 12:4.3.6-44.el8_4.1 baseos 206 k
dhcp-libs x86_64 12:4.3.6-44.el8_4.1 baseos 147 k
libiscsi x86_64 1.18.0-8.module_el8.3.0+2048+e7a0a3ea appstream 88 k
libvirt-dbus x86_64 1.3.0-2.module_el8.3.0+2048+e7a0a3ea appstream 89 k
netcf-libs x86_64 0.2.8-12.module_el8.3.0+2048+e7a0a3ea appstream 75 k
python3-libvirt x86_64 6.0.0-1.module_el8.3.0+2048+e7a0a3ea appstream 304 k
seabios-bin noarch 1.13.0-2.module_el8.3.0+2048+e7a0a3ea appstream 126 k
seavgabios-bin noarch 1.13.0-2.module_el8.3.0+2048+e7a0a3ea appstream 41 k
sgabios-bin noarch 1:0.20170427git-3.module_el8.3.0+2048+e7a0a3ea appstream 12 k
トランザクションの概要
=====================================================================================================================
インストール 4 パッケージ
アップグレード 70 パッケージ
削除 3 パッケージ
ダウングレード 10 パッケージ
ダウンロードサイズの合計: 558 M
パッケージのダウンロード:
done.
(1/707): dhcp-libs-4.3.6-44.el8_4.1.x86_64.rpm 493 kB/s | 147 kB 00:00
(2/707): dhcp-common-4.3.6-44.el8_4.1.noarch.rp 575 kB/s | 206 kB 00:00
(3/707): libiscsi-1.18.0-8.module_el8.3.0+2048+ 692 kB/s | 88 kB 00:00
(中略)
(705/707): rhn-client-tools-2.8.16-13.module_el 291 kB/s | 384 kB 00:01
(706/707): qemu-kvm-core-4.2.0-48.module_el8.4. 400 kB/s | 3.5 MB 00:08
(707/707): llvm-libs-11.0.0-2.module_el8.4.0+21 667 kB/s | 21 MB 00:32
--------------------------------------------------------------------------------
合計 1.7 MB/s | 558 MB 05:25
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
scriptletの実行中: filesystem-3.8-3.el8.x86_64 1/1
準備 : 1/1
scriptletの実行中: libgcc-8.4.1-1.el8.alma.x86_64 1/1
アップグレード中 : libgcc-8.4.1-1.el8.alma.x86_64 1/1413
scriptletの実行中: libgcc-8.4.1-1.el8.alma.x86_64 1/1413
再インストール中 : hwdata-0.314-8.8.el8.noarch 2/1413
再インストール中 : setup-2.12.2-6.el8.noarch 3/1413
警告: /etc/shadow は /etc/shadow.rpmnew として作成されました。
scriptletの実行中: setup-2.12.2-6.el8.noarch 3/1413
再インストール中 : filesystem-3.8-3.el8.x86_64 4/1413
再インストール中 : fontpackages-filesystem-1.44-22.el8.noarch 5/1413
整理 : ncurses-base-6.1-7.20180224.el8.noarch 1411/1413
整理 : tzdata-2021a-1.el8.noarch 1412/1413
整理 : libgcc-8.4.1-1.el8.x86_64 1413/1413
scriptletの実行中: libgcc-8.4.1-1.el8.x86_64 1413/1413
scriptletの実行中: filesystem-3.8-3.el8.x86_64 1413/1413
scriptletの実行中: crypto-policies-scripts-20210209-1.gitbfb6bed. 1413/1413
scriptletの実行中: ca-certificates-2020.2.41-80.0.el8_2.noarch 1413/1413
(中略)
scriptletの実行中: desktop-file-utils-0.23-8.el8.x86_64 1413/1413
scriptletの実行中: hicolor-icon-theme-0.17-2.el8.noarch 1413/1413
scriptletの実行中: man-db-2.7.6.1-17.el8.x86_64 1413/1413
検証 : dhcp-client-12:4.3.6-44.el8_4.1.x86_64 1/1413
検証 : dhcp-client-12:4.3.6-44.0.1.el8.x86_64 2/1413
検証 : dhcp-common-12:4.3.6-44.el8_4.1.noarch 3/1413
(中略)
検証 : kernel-4.18.0-240.15.1.el8_3.x86_64 1411/1413
検証 : kernel-core-4.18.0-240.15.1.el8_3.x86_64 1412/1413
検証 : kernel-modules-4.18.0-240.15.1.el8_3.x86_64 1413/1413
アップグレード済み:
dnf-plugin-spacewalk-2.8.5-11.module_el8.3.0+2053+3ddf2832.noarch
glusterfs-6.0-56.el8.x86_64
glusterfs-api-6.0-56.el8.x86_64
(中略)
qemu-kvm-common-15:4.2.0-48.module_el8.4.0+2358+630e803b.x86_64
qemu-kvm-core-15:4.2.0-48.module_el8.4.0+2358+630e803b.x86_64
rhn-client-tools-2.8.16-13.module_el8.3.0+2053+3ddf2832.x86_64
sos-4.0-11.el8.alma.noarch
ダウングレード済み:
dhcp-client-12:4.3.6-44.el8_4.1.x86_64
dhcp-common-12:4.3.6-44.el8_4.1.noarch
dhcp-libs-12:4.3.6-44.el8_4.1.x86_64
(中略)
seabios-bin-1.13.0-2.module_el8.3.0+2048+e7a0a3ea.noarch
seavgabios-bin-1.13.0-2.module_el8.3.0+2048+e7a0a3ea.noarch
sgabios-bin-1:0.20170427git-3.module_el8.3.0+2048+e7a0a3ea.noarch
インストール済み:
ima-evm-utils0-1.3.2-12.el8.x86_64
kernel-4.18.0-305.3.1.el8_4.x86_64
kernel-core-4.18.0-305.3.1.el8_4.x86_64
kernel-modules-4.18.0-305.3.1.el8_4.x86_64
再インストール済み:
NetworkManager-1:1.30.0-7.el8.x86_64
NetworkManager-libnm-1:1.30.0-7.el8.x86_64
NetworkManager-team-1:1.30.0-7.el8.x86_64
(中略)
yajl-2.1.0-10.el8.x86_64
yum-4.4.2-11.el8.noarch
zlib-1.2.11-17.el8.x86_64
削除しました:
kernel-4.18.0-240.15.1.el8_3.x86_64
kernel-core-4.18.0-240.15.1.el8_3.x86_64
kernel-modules-4.18.0-240.15.1.el8_3.x86_64
完了しました!
Run dnf distro-sync -y OK
Restoring of alternatives is done OK
Generating grub configuration file ...
done
All Secure Boot related packages which were released by not AlmaLinux are reinstalledOK
Migration to AlmaLinux is completed
リリースファイルの確認¶
# cat /etc/redhat-release
AlmaLinux release 8.4 (Electric Cheetah)
デフォルトでAlmaLinuxカーネルを起動することを確認¶
# sudo grubby --info DEFAULT | grep AlmaLinux
title="AlmaLinux (4.18.0-305.3.1.el8_4.x86_64) 8.4 (Electric Cheetah)"
リブートすると、AlmaLinuxとして起動されるはずです。