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. 목적 및 구성 개요
• 외부 인터넷이 차단된 내부망 환경에서 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
⭐발표자 : 박태진님