PR CENTER

뉴스룸     |     료실

mobile background

PR CENTER

내부망 Rocky Linux 버전 업그레이드

관리자
2025-12-01
조회수 7

1. 목적 및 구성 개요

• 외부 인터넷이 차단된 내부망 환경에서 Rocky Linux 8.6 을 8.10 으로 업그레이드한다.

• IODD 등에 업로드한 ISO 를 활용하여:

          o 8.6 → 8.10 OS 업그레이드

          o 영구 로컬 YUM 레포지토리(/repo) 구성

• 작업 전 LVM 스냅샷을 생성하여, 장애 발생 시 업그레이드 전 상태로 롤백 가능하도록 한다.


2. 사전 준비

  2.1 xorriso 설치 (ISO 생성 서버용)

  ISO 생성에 사용할 서버(예: 리포지토리 싱크 서버)에 xorriso 설치:


  sudo dnf install xorriso -y

  (xorriso 는 mkisofs 와 호환되는 방식으로 동작하면서도, 대용량/복잡한 디렉터리

  구조를 안정적으로 ISO 로 만들 수 있다.)


  2.2 64G 업그레이드 ISO 생성 (Rocky 8.10 풀 패키지)

  목표: Rocky 8.6 → 8.10 업그레이드에 사용할 풀 패키지 ISO 생성.


  # 업그레이드용 풀 패키지 저장 디렉토리

  sudo mkdir -p /mnt/repo_sync/rocky-8.10-upgrade


  # Rocky 8.10 BaseOS / AppStream 동기화

  sudo dnf reposync \

    --repoid=baseos \

    --repoid=appstream \

    --download-metadata \ --norepopath \

    -p /mnt/repo_sync/rocky-8.10-upgrade


  # 작업 디렉토리 이동

  cd /mnt/repo_sync/rocky-8.10-upgrade

  # dnf reposync 결과가 소문자 디렉토리일 경우 대문자로 변경

  [ -d baseos ] && sudo mv baseos BaseOS

  [ -d appstream ] && sudo mv appstream AppStream

  # xorriso 를 사용하여 ISO 생성

  sudo xorriso -as mkisofs \

    -o /mnt/repo_sync/rocky-8.10-upgrade.iso \

    -r -J -follow-links .

  # 홈 디렉토리로 복귀

  cd ~


  2.3 10G 로컬 YUM ISO 생성 (최신 패키지용)

  목표: 영구 로컬 레포지토리 구축용 최신 패키지 ISO 생성.


  # 최신 패키지용 디렉토리

  sudo mkdir -p /mnt/repo_sync/rocky-8.10-latest


  # newest-only 옵션을 사용해 최신 버전만 동기화

  sudo dnf reposync \

    --repoid=baseos \

    --repoid=appstream \

    --download-metadata \

    --newest-only \

    -p /mnt/repo_sync/rocky-8.10-latest


  # 작업 디렉토리 이동

  cd /mnt/repo_sync/rocky-8.10-latest

  # dnf reposync 결과가 소문자 디렉토리일 경우 대문자로 변경

  [ -d baseos ] && sudo mv baseos BaseOS

  [ -d appstream ] && sudo mv appstream AppStream# xorriso 를 사용하여 ISO 생성

  sudo xorriso -as mkisofs \

  -o /mnt/repo_sync/rocky-8.10-local-latest.iso \

  -r -J -follow-links .

  # 홈 디렉토리로 복귀

  cd ~

  생성된 ISO 예시:

        • 업그레이드용: /mnt/repo_sync/rocky-8.10-upgrade.iso

        • 로컬 레포용: /mnt/repo_sync/rocky-8.10-local-latest.iso

  이 파일들을 IODD 등에 저장하여 대상 서버에 연결해 사용한다.


3.대상서버 업그레이드

  3.1 별도 외장저장장치에 백업 (rsync)

  * 저장 

  rsync -aAXHv \ --delete \ --

  exclude={"/dev/*","/proc/*","/sys/*","/run/*","/tmp/*","/var/tmp/*","/mnt/*","/media/*",

  "/lost+found","/backup/*"} \

  / /backup/rocky8.6-root/

  * Rescue 모드에서 복원

  마운트 후

  rsync -aAXHv --delete /mnt/backup/rocky8.6-root/ /mnt/sysroot/


  3.2 LVM 스냅샷

  파일시스템 없는 여유공간이 남아있으면 유용하나, 실제 초기설정이 이러한 경우는 거의 없어 사용빈도는 낮음.

  sudo lvcreate -L 20G -s -n root_snap /dev/rl/root

  여유 공간이 제한된 경우 (20G 스냅샷):

  sudo lvs

      • root_snap LV 가 생성되었고, Attr 필드에 s(snapshot)가 포함되어 있으면 정상이다.


  3.3 Rocky 8.6 → 8.10 업그레이드 (업그레이드 ISO 사용)

  IODD 등에 업그레이드 ISO(예: rocky-8.10-upgrade.iso)를 연결하면, 일반적으로

  /dev/sr0 로 인식된다고 가정한다.

  # 1) ISO 마운트

     sudo mount -o loop /dev/sr0 /mnt

  # 2) distro-sync 를 이용한 8.6 → 8.10 업그레이드

     sudo dnf distro-sync -y \

     --disablerepo="*" \

     --repofrompath=baseos,file:///mnt/BaseOS \

     --repofrompath=appstream,file:///mnt/AppStream \

     --enablerepo=baseos \

     --enablerepo=appstream \

     --nogpgcheck

  # 3) createrepo_c 패키지 설치 (추후 로컬레포 설정용)

     sudo dnf install -y createrepo_c \

     --disablerepo="*" \

     --repofrompath=appstream,file:///mnt/AppStream \

     --enablerepo=appstream \

     --nogpgcheck

  # 4) 마운트 해제

  sudo umount /mnt


  3.4 영구 로컬 레포 구성

  로컬 YUM ISO(예: rocky-8.10-local-latest.iso)를 IODD 등으로 연결한다. 역시 /dev/sr0 로 인식된다고 가정한다.


  # 1) ISO 마운트

  sudo mount -o loop /dev/sr0 /mnt

  # 2) 로컬 레포 디렉토리 생성

  sudo mkdir -p /repo

  # 3) ISO 전체 내용을 /repo 로 복사

  sudo cp -r /mnt/* /repo/

  # 4) 마운트 해제

  sudo umount /mnt

  # 5) BaseOS 레포 데이터 생성/갱신

  sudo createrepo_c --update --skip-symlinks /repo/BaseOS

  # 6) AppStream 레포 데이터 생성/갱신

  sudo createrepo_c --update --skip-symlinks /repo/AppStream

  # 7) 영구 로컬 레포 .repo 파일 생성

  sudo tee /etc/yum.repos.d/local-repo.repo > /dev/null << 'EOF'

  [local-baseos]

  name=Local BaseOS

  baseurl=file:///repo/BaseOS

  enabled=1

  gpgcheck=0

  [local-appstream]

  name=Local AppStream

  baseurl=file:///repo/AppStream

  enabled=1

  gpgcheck=0

  EOF

  생성된 파일 확인:

  cat /etc/yum.repos.d/local-repo.repo

  # 8) 기존파일 백업 후 캐시 재생성

     # 기존 Rocky 관련 repo 파일을 backup 디렉터리로 이동

        sudo mkdir -p /etc/yum.repos.d/backup

        sudo mv /etc/yum.repos.d/R* /etc/yum.repos.d/backup/ 2>/dev/null


     # 캐시 초기화 및 재생성

        sudo dnf clean all

        sudo dnf makecache


4.업그레이드/테스트 성공 확인


   업그레이드 후 다음을 모두 확인한다.

       • OS 버전 및 커널 정상

       • 주요 애플리케이션, 서비스, 접근제어, 로그, 연동 시스템 정상 동작

       • 로컬 레포 기반 패키지 설치/업데이트 정상


5.비상 시 롤백 절차

*rsync

#1) Rocky ISO 로 Rescue 부팅

#2) vgchange -ay

#3) mount /dev/mapper/rl-root /mnt/sysroot

#4) mount /dev/sda2 /mnt/sysroot/boot

#5) mount /dev/sda1 /mnt/sysroot/boot/efi

#6) mount /dev/sdb1 /mnt/backup (백업 디스크)

#7) rsync -aAXHv --delete /mnt/backup/rocky8.6-root/ /mnt/sysroot/

#8) mount --bind /dev /mnt/sysroot/dev

#9) mount --bind /proc /mnt/sysroot/proc

#10) mount --bind /sys /mnt/sysroot/sys

#11) chroot /mnt/sysroot

#12) grub2-mkconfig -o /boot/grub2/grub.cfg

#13) grub2-install /dev/sda

#14) touch /.autorelabel (SElinux=disabled 설정시 생략가능)

#15) exit

#16) umount ... (위 순서대로 dev/proc/sys/boot/efi/boot/sysroot/backup)

#17) reboot


*스냅샷

sudo lvconvert --merge /dev/rl/root_snap

sudo reboot



                                                                                                                                                                                                 ⭐발표자 : 박태진님



1 0

페이지 바로가기

@2024 K2SYSTEMS. All rights reserved.

HOME       |       ABOUT US       |       SOLUTION       |       PR CENTER       |       CONTACT       |       인재채용       |       kakao i cloud 고객센터  

@2024 K2SYSTEMS. All rights reserved.