コンテンツにスキップ

移行ツール

(更新: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として起動されるはずです。