CentOS8.XからAlmalinux8.5へ移行しよう

# 現環境の確認
まず元のOSを確認しましょう。
方法は`hostnamectl` を使うか、/etc/redhat-releaseファイルの中を覗くかの二つ。

```
hostnamectl
```
を使うと以下の感じ。
![hostnamectl.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1080937/d659e944-2212-3499-7c48-54f743750ac7.png)

```
cat /etc/redhat-release
```
を使うと以下の感じ

insert figure


仮想PCのバージョンは8.3。本番環境も8.3。
これでAlmaLinuxに移行しようとしたら「<font color="red">Please upgrade your OS from 8.3 to </font>」と赤文字で怒られたので、大人しく8.5にアップデートしましょう。
![Almalinux_updateError.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1080937/4c38caa4-ec93-a552-2dff-2fc6a06471e9.png)


# CentOSを最新にする
### ミラーサイトの変更
で、2022年の2月頃から以前まで使えていたミラーサイトが使えなくなっているみたい。
なので、まずはリポジトリを確認して、ミラーサイトの書き換えを行った。
参考はこちらのページ（https://www.lsmodena.com/wordpress/?p=212

```
cat /etc/yum.repos.d/CentOS-Linux-AppStream.repo
```

たぶん`mirrorlist=http://（以下略）`となっているので、これをコメントアウト。
その下には`#baseurl=http://mirror.centos.org（以下略）`となっているので、これをコメントアウトから復旧。
これを`/etc/yum.repo.s/CentOS-Linux-以下のファイル`に全部適応する。をコマンドにすると以下の通り

```
sed -i -e 's/mirrorlist=/#mirrorlist=/g' -e 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-Linux-*
```


### CentOSのアップデート
これでアプデができるはずと思いきや、筆者はエラーが出てアプデができなかった。
理由は前任者がkernelのアップデートを禁止していたため。
なので`Error~~~~ kernel~~~`とkernelがなんじゃかんじゃ言われたら、`cat etc/yum.conf`でyum.confファイルを除いてみてください。
そこに`exclude=kernel*`とあれば、これをコメントアウトすることで対応可能なはずです。
参考はこちらのページ（https://dreamerdream.hateblo.jp/entry/2021/03/16/180000




アップデート自体は`dnf update`で、一応確認してから`y`



# バックアップ
### exfatのインストール（SSDの有効化）
念のためシステムファイルのバックアップを行った。
が、SSDに入れようとしたら「exfatがインストールされていないのでこのSSDを使えません」と怒られる。
仕方ないのでexfatを導入する。
参考はこちらのページ（https://ja.joecomp.com/how-mount-an-exfat-drive-centos-7

EPELリポジトリが有効になっていなかったので、有効にする。
```
yum install epel-release
```


次にリポジトリＧＰＧキーをインストール（何のことかよく分かっていない）
```
rpm -v --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
```


更にNuxリポジトリを有効にするためにrpmパッケージをインストール
```
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
```


最後にexfatのパッケージ2種類をインストール
```
yum install exfat-utils fuse-exfat
```
これでSSDが有効になりました。


### dumpとxfsdumpとtarでバックアップ
次にdumpとxfsdumpを使ってシステムをまるごとバックアップします。
参考にしたのはこの辺
dumpコマンド
（https://atmarkit.itmedia.co.jp/ait/articles/1804/19/news026.html
xfsdumpコマンド（https://atmarkit.itmedia.co.jp/ait/articles/1804/26/news045.html

まずフォルダを全部確認する。
```
df -Th
```


insert figure

すると色々フォルダが出てくる。
一番下には有効にしたSSDがあるので、ここにバックアップをしていく。
注意するのは、Typeがext4となっているシステムはdumpでバックアップ。
xfsとなっているシステムはxfsdumpでバックアップする。
vfatはtarでバックアップする。
tmpfsは一時ファイルなのでバックアップはいらない（はず）。
xfsのrootとhome、ext4のboot、あるものはvfatをバックアップすることにした。

##### dumpバックアップ
まずSSDにサーバーの名前のフォルダを作成しておく。
マウント先でもシステム名でもいいみたいだけど、マウント先で指定した。


```
dump -f /SSDの場所/サーバーの名前のフォルダ/boot.dump /boot
```
これでbootはext4なのでこれでバックアップ完了

##### xfsdumpバックアップ
次にhomeとrootをバックアップする。こちらはxfsなのでxfsdumpを使う。

```
xfsdump -f /SSDの場所/サーバーの名前のフォルダ/home.dump /home
```
同じように指定する。
次にラベルを貼れといわれるので、fullbackup。
メディアラベルはbackuphomeとした。
メディアラベルを入れると少し固まるが、裏でバックアップしてるみたいなので、完了するまで触らず放置する。


##### tarバックアップ
最後にvfat型式のものをtarでバックアップ。
こちらを参考にして見よう見まねでバックアップしてみた。（https://webkaru.net/linux/tar-command/

```
tar -cf /SSDの場所/サーバーの名前のフォルダ/bootefi.tar /boot/efi
```
フォルダには圧縮ファイルがあったのでうまくいったと思うのだが、どうだろうか。ここには責任が全く持てない。
とりあえずバックアップが全て完了したことにする。



# Almalinuxのインストール
ここまできたらやっとAlmalinuxをインストールする


バージョンが8.5にアップデートされているのを確認してから、AlmaLinuxのバッシュファイルをダウンロードしましょう。
参考はこちら（https://valinux.hatenablog.com/entry/20210422

```
curl -O https://raw.githubusercontent.com/AlmaLinux/almalinux-deploy/master/almalinux-deploy.sh
```

注意したいのはcurl -O(ラージオー）です。0（ゼロ）じゃありません。筆者はここでひっかかりました。

ダウンロードが完了したらroot権限でbashを起動

```
bash almalinux-deploy.sh
```

結構時間がかかるが完了すれば、左上のCentOSアイコンがAlmalinuxアイコンに変わっています。
また、再起動すればデスクトップ画面がAlmalinuxとなっています。

おつかれさまでした。