CentOS 7 to Rocky Linux 8

2024. 5. 18. 13:20개발노트

CentOS Linux 7가 2024년 6월 30일 지원 종료(End of Life, EOL)될 예정으로 OS 마이그레이션이나

Rocky 8 OS 설치 후 서비스를 이전하는 방법 둘 중 하나를 진행해야 한다.

 

https://docs.rockylinux.org/guides/migrate2rocky/

 

Migrating To Rocky Linux - Documentation

How to migrate to Rocky Linux from CentOS Stream, CentOS, AlmaLinux, RHEL, or Oracle LinuxPrerequisites and assumptionsCentOS Stream, CentOS, AlmaLinux, RHEL, or Oracle Linux running on a hardware server or VPS. Non-Stream CentOS is frozen at version 8.5.

docs.rockylinux.org

 

위 사이트를 참고해 rockylinux에서 제공하는 스크립트를 사용해 마이그레이션을 진행한다.

스크립트는 rocky-lunux 깃허브 https://github.com/rocky-linux/rocky-tools/tree/main/migrate2rocky 에서 다운로드 받거나

명령어로 다운로드 받을 수 있다.

curl https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh -o migrate2rocky.sh

 

 

다운로드 받고 서비스 종료 및 백업 후 아래 순서대로 마이그레이션을 진행한다.

마이그레이션은 CentOS 7 -> CentOS 8 -> Rocky 8 순서로 진행한다.

# CentOS7 업데이트 및 reboot
sudo yum -y update --exclude=java*,nginx*
sudo reboot

# 커널 버전 확인
sudo uname -r

# epel-release 설치
sudo yum install epel-release -y

# 패키지 설치
sudo yum install -y yum-utils rpmconf

# YUM 에서 DNF 로 업그레이드
sudo yum install -y dnf
sudo dnf remove -y yum yum-metadata-parser 
sudo rm -Rf /etc/yum

# DNF repository 용 캐시 구성
sudo dnf -y makecache

# CentOS7 패키지 업그레이드
sudo dnf -y upgrade --exclude=java*,nginx*

# epel-release repository 업그레이드
sudo dnf upgrade -y epel-release

# CentOS7 에서 CentOS8 업그레이드
cd /etc/yum.repos.d
  
sudo mkdir backups
  
sudo mv CentOS-* backups
  
# Create new for CentOS BaseOS repo
sudo tee CentOS-Linux-BaseOS.repo<<EOM
[baseos]
name=CentOS Linux \$releasever - BaseOS
baseurl=http://vault.centos.org/8.5.2111/BaseOS/\$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
EOM
  
# Create new for CentOS AppStream repo
sudo tee CentOS-Linux-AppStream.repo<<EOM
[appstream]
name=CentOS Linux \$releasever - AppStream
baseurl=http://vault.centos.org/8.5.2111/AppStream/\$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
EOM


# CentOS 커널 제거
sudo rpm -e `rpm -q kernel` --nodeps
sudo rpm -e `rpm -q kernel-devel` --nodeps

# 충돌 패키지 제거
sudo rpm -e --nodeps sysvinit-tools

# CentOS8 업그레이드
# 업그레이드 시 충돌하는 패키지 오류가 있을 수 있다. 오류나는 패키지는 삭제 후 진행한다.
sudo dnf remove -y dracut-network redhat-rpm-config openssl11-libs-1:1.1.1k-7.el7.x86_64 python36-rpmconf
 
# dracut-network
# redhat-rpm-config
# openssl11-libs-1:1.1.1k-5.el7.x86_64
# python36-rpmconf
 
sudo dnf -y --releasever=8 --allowerasing --setopt=deltarpm=false distro-sync --exclude=java*,nginx*

# CentOS8 커널 설치
sudo dnf install -y kernel-core

# CentOS8 설치
sudo dnf -y groupupdate "Core" "Minimal Install"

# 시스템 재시작
sudo systemctl reboot

# 재시작 후 버전 확인
cat /etc/redhat-release

 

정상적인 재시작 확인 후 버전이 CentOS 8 인 것을 확인 후 아래 스크립트를 진행한다.

sudo dnf -y install wget
wget https://raw.githubusercontent.com/rocky-linux/rocky-tools/main/migrate2rocky/migrate2rocky.sh
  
# 스크립트 실행 권한 부여
chmod a+x migrate2rocky.sh
  
# migrate2rocky.sh 내용 중 아래의 내용을 추가한다.
# infomsg $'\nSyncing packages\n\n'
# dnf -y distro-sync --exclude=java*,nginx* || exit_message "Error during distro-sync."
  
sudo ./migrate2rocky.sh -r

# 재시작 
sudo reboot now

# Rocky OS 8 정보 확인
cat /etc/os-release
 
 
NAME="Rocky Linux"
VERSION="8.9 (Green Obsidian)"
ID="rocky"
ID_LIKE="rhel centos fedora"
VERSION_ID="8.9"
PLATFORM_ID="platform:el8"
PRETTY_NAME="Rocky Linux 8.9 (Green Obsidian)"
ANSI_COLOR="0;32"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:rocky:rocky:8:GA"
HOME_URL="https://rockylinux.org/"
BUG_REPORT_URL="https://bugs.rockylinux.org/"
SUPPORT_END="2029-05-31"
ROCKY_SUPPORT_PRODUCT="Rocky-Linux-8"
ROCKY_SUPPORT_PRODUCT_VERSION="8.9"
REDHAT_SUPPORT_PRODUCT="Rocky Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="8.9"