CentOS 7 IOS Download
CentOS Linux 7은 2024년 6월 30일에 지원 종료(End of Life, EOL) 되었습니다. 아직 기존 인프라 시스템이 CentOS 7을 사용하시는 경우 ISO 파일을 많이 찾으시는데 아래 링클 통해 가시면 ISO 파일을 다운로드 하실 수 있습니다.
CentOS 부팅 디스크(Boot Disk) 제작
Rufus 다운로드
Rufus 실행
Rufus 실행 후 부팅 선택 메뉴에서 선택을 클릭하고 다운 받은 ISO 파일은 지정한 후 시작을 누르면 부팅 디스크가 만들어 진다.
Oracle VirtualBox 설치
Oracle VirtualBox 설치 파일 Dwonload
아래 링크를 접속하여 자신의 사용하는 운영체제에 맞게 설치 파일을 다운로드 해주세요.
Oracle VirtualBox Install
VirtualBox 설치 중 Visual C++ 오류 발생 시 아래 링크를 통해 해결 할 수 있습니다.
Oracle VirtualBox Extension Pack(확장팩) 추가
아래의 이미지와 같이 Accept and download를 클릭하여 확장팩 파일을 다운로드 해줍니다.
파일 > 도구 > 확장 패키지 관리자를 클릭합니다.
VirualBox – 질문이 나타나면 설치를 클릭하여 설치를 진행하면 됩니다.
VirtualBox 라이선스 창이 나타나면 스크롤을 맨 아래로 내려준 후 동의 합니다를 클릭해주세요.
Oracle VirtualBox 머신 생성
머신을 생성하는 방법은 맨위 상단의 머신(M)을 클릭하여 새로 만들기(N)을 클릭하여 만들 수도 있습니다. 이번 설명에서는 환영합니다 페이지에 나온 새로 만들기(N)을 눌러 머신 생성을 진행해보겠습니다.
Oracle VirtualBox 머신 이름 및 ISO 파일 설정
본 글에서 생성할 머신의 이름은 CentOS7.9_001로 생성하였고 리눅스 설치를 위해 리눅스 ISO 파일을 선택하였습니다. 무인 설치 건너뛰기(S)를 체크해주세요.
Oracle VirtualBox 머신 무인 설치 설명
무인 설치 건너뛰기 체크하여 아래와 같이 입력할 수 없는 상태가 되었지만 무인 설치를 하게 되면 자동으로 아래에 입력된 정보들이 자동으로 생성해주는 편리한 시스템입니다.
Oracle VirtualBox 머신 하드웨어 사양 설정
본 글에서는 기본 정해주는 사양 그대로 사용할 예정입니다. 특정 시스템을 구성 또는 구축을 연습해보기 위해 더 많은 메모리와 CPU가 필요하실 경우 아래 구축 예정인 시스템의 권장 사양에 맞게 설정해주시면 됩니다.
Oracle VirtualBox 머신 하드 디스크 설정
머신의 하드 디스크는 OS의 용량과 구축할 시스템의 크기를 예상하여 설정해주시면 됩니다. 본 글에서는 리눅스 설치를 위한 머신을 생성할 것이기 때문에 20GB로 설정하겠습니다.
Oracle VirtualBox 머신 생성 완료
위 과정을 모두 끝내면 아래와 같이 설정한 머신이 생성된 것을 확인하실 수 있습니다.
Linux CentOS 7.9 설치
첫 화면에서는 아래의 이미지와 같이 Install CentOS 7을 선택해주시면 됩니다.
Linux CentOS 7.9 설치 요약(Installation Summary)
사전에 필요한 설정을 모두 여기서 끝내 놓아도 되지만 설치가 목적이기에 본 글에서 다루지는 않겠습니다. SYSTEM 항목의 INSTALLATION DESTINATION을 누르셔서 파티션을 선택 해주신 후 Done 누르시면 해당 페이지를 완료해줍니다.
Linux CentOS 7.9 설치 시 Root 패스워드 설정
설치를 기다리는 동안 ROOT PASSWORD의 패스워드를 설정해주시면 됩니다. 최소 설치이기 때문에 일반 사용자의 USER CREATION은 진행하지 않아도 완료할 수 있습니다.
Linux CentOS 7.9 설치 시 Root 패스워드 설정
설치가 다 된 이후에는 Reboot 버튼을 크릭하여 재부팅 시켜주시면 아래 Oracle VirtualBox CentOS7.9 Install_6 사진과 같은 검은 화면의 하얀글씨를 보실 수 있습니다.
Network 설정
# 네트워크 설정 파일 경로로 이동.
cd /etc/sysconfig/network-scripts/
# 어떤 파일을 수정해야할지 모를 경우 ip a 명령어를 통하여 확인하시면 됩니다.
# ip a 예시 출력 결과
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 08:00:27:e5:13:4d brd ff:ff:ff:ff:ff:ff
inet 192.168.100.30/24 brd 192.168.161.255 scope global noprefixroute enp0s3
valid_lft forever preferred_lft forever
inet6 fe80::50a1:55b:e417:1f2e/64 scope link noprefixroute
valid_lft forever preferred_lft forever
# 네트워크 설정 파일 편집.
vi ifcfg-enp0s3
# ifcfg-enp0s3 파일 내용.
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static #IP를 고정으로 사용하기 위해서 static 설정.
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=no
IPV6_DEFROUTE=no
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=4ca1dfa7-ab72-410f-b269-4f40f7b29c69
DEVICE=enp0s3
ONBOOT=yes #yes 설정 해놔야지 부팅 시 설정 반영 .
IPADDR=192.168.161.30 #설정할 IP 등록.
NETMASK=255.255.255.0 #IP의 서브넷 마스크 등록.
GATEWAY=192.168.161.1 #IP의 게이트웨이 설정.
DNS1=168.126.63.1 #사용 DNS 설정.
미러서버 (mirror server) 변경
Yum 미러 서버란?
Yum 미러 서버는 CentOS 및 RHEL 계열에서 패키지 설치 및 업데이트를 위해 사용되는 레포지토리 서버입니다. CentOS 공식 레포지토리 외에도 여러 지역별 미러 서버가 존재하며, 각 서버는 동일한 패키지를 제공합니다.
미러 서버 변경의 필요성
- 기본 미러 서버의 속도가 느릴 경우 다운로드 및 업데이트 시간이 오래 걸림
- 국내 미러를 사용하면 네트워크 속도를 극대화할 수 있음
- 특정 기업 환경에서는 커스터마이징된 내부 레포지토리가 필요함
기본 미러 서버 확인
기본적으로 CentOS는 /etc/yum.repos.d/ 디렉터리에서 baseurl과 mirrorlist를 사용해 미러 서버를 정의합니다. 레포지토리 설정 파일은 /etc/yum.repos.d/ 위치에 있으며, mirrorlist와 baseurl을 포함합니다.
- mirrorlist: 가까운 미러 서버를 자동으로 선택
- baseurl: 특정 미러 서버의 URL을 직접 지정
# 기본 레포지토리 파일 확인
ls /etc/yum.repos.d/
# 기본 레포지토리 내용 확인
cat /etc/yum.repos.d/CentOS-Base.repo
기존 레포지토리 파일 백업
변경하기 전에 기존 설정을 백업하는 것이 좋습니다.
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
레포지토리 파일 수정
CentOS-Base.repo 파일을 편집기로 열어 baseurl을 수정합니다.
# CentOS-Base.repo 파일 편집
vi /etc/yum.repos.d/CentOS-Base.repo
# 수정 전
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
# mirrorlist를 비활성화하고 baseurl을 지정합니다.
# updates, extras 등 다른 섹션도 동일하게 수정합니다.
# 수정 후
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://ftp.daumkakao.com/centos/$releasever/os/$basearch/
# 캐시 삭제
yum clean all
yum makecache
속도 최적화를 위한 플러그인 활용 (선택사항)
yum-plugin-fastestmirror를 설치하면 가장 빠른 미러 서버를 자동으로 선택해줍니다.
# 플러그인 설치
yum install yum-plugin-fastestmirror -y
# 설정 파일 편
vi /etc/yum/pluginconf.d/fastestmirror.conf
# 특정 미러 제외 설정 : fastestmirror.conf 파일에서 특정 미러를 제외합니다.
# exclude=.example.com,.slowmirror.com
# 선호하는 미러 서버 설정 가장 빠른 미러를 우선적으로 사용하도록 설정합니다.
# 파일 아래에 추가 합니다.
preferred=fastmirror.example.com
# /etc/yum/pluginconf.d/fastestmirror.conf 파일 내
[main]
enabled=1
verbose=0
always_print_best_host = true
socket_timeout=3
# Relative paths are relative to the cachedir (and so works for users as well
# as root).
hostfilepath=timedhosts.txt
maxhostfileage=10
maxthreads=15
#exclude=.gov, facebook
#include_only=.nl,.de,.uk,.ie
미러 서버 변경 스크립트
1버전
#!/bin/bash
# 백업할 디렉토리와 tar.gz 파일명 설정
BACKUP_DIR="/root"
BACKUP_FILE="${BACKUP_DIR}/centos_repos_backup.tar.gz"
REPO_FILE="/etc/yum.repos.d/CentOS-Base.repo"
# 롤백 여부 확인
if [[ -f "$BACKUP_FILE" ]]; then
read -p "기존 백업이 있습니다. 롤백을 원하시면 'y'를 입력하세요. 계속하려면 'n'을 입력하세요: " ROLLBACK
if [[ "$ROLLBACK" == "y" ]]; then
# 백업 파일을 원래 위치로 복원 (경로 제거)
tar -xzf "$BACKUP_FILE" --strip-components=3 -C /etc/yum.repos.d
echo "롤백이 완료되었습니다."
exit 0
fi
fi
# 기존 repo 파일 백업 (경로 없이 백업)
tar -czf "$BACKUP_FILE" -C /etc/yum.repos.d CentOS-Base.repo
# 미러 서버 선택
echo "사용할 미러 서버를 선택하세요:"
echo "1: http://mirror.kakao.com"
echo "2: https://mirror.navercorp.com"
read -p "서버 번호를 입력하세요 (1 또는 2): " choice
if [[ "$choice" == "1" ]]; then
NEW_MIRROR="http://mirror.kakao.com"
elif [[ "$choice" == "2" ]]; then
NEW_MIRROR="https://mirror.navercorp.com"
else
echo "잘못된 선택입니다. 스크립트를 종료합니다."
exit 1
fi
# 미러 서버 변경
if [[ -f "$REPO_FILE" ]]; then
# mirrorlist 주석 처리
sed -i 's/^mirrorlist/#&/' "$REPO_FILE"
# baseurl 주석 제거 및 변경
sed -i "s|^#baseurl=http://mirror.centos.org/centos/|baseurl=${NEW_MIRROR}/centos/|g" "$REPO_FILE"
echo "미러 서버가 ${NEW_MIRROR}/centos/로 변경되었습니다."
else
echo "에러: $REPO_FILE 파일을 찾을 수 없습니다."
exit 1
fi
echo "백업이 완료되었습니다: $BACKUP_FILE"
2버전
#!/bin/bash
# CentOS 7.9 미러 서버 변경 스크립트
# 사용자 지정 미러 서버 URL
NEW_MIRROR="http://ftp.daumkakao.com/centos"
# 백업 디렉터리 설정
BACKUP_DIR="/etc/yum.repos.d/backup"
mkdir -p "$BACKUP_DIR"
# 레포지토리 파일 경로
REPO_DIR="/etc/yum.repos.d"
REPO_FILES=$(ls $REPO_DIR/*.repo)
echo "========================================"
echo "CentOS 7.9 미러 서버 변경 스크립트"
echo "========================================"
# 기존 레포지토리 파일 백업
echo "[1] 기존 레포지토리 파일 백업 중..."
for REPO_FILE in $REPO_FILES; do
cp "$REPO_FILE" "$BACKUP_DIR"
echo "백업 완료: $(basename $REPO_FILE)"
done
# 레포지토리 파일 수정
echo "[2] 레포지토리 파일 수정 중..."
for REPO_FILE in $REPO_FILES; do
sed -i.bak -e "s|^mirrorlist=.*|#mirrorlist=disabled|" \
-e "s|^#baseurl=.*|baseurl=${NEW_MIRROR}/\$releasever/os/\$basearch/|" "$REPO_FILE"
echo "수정 완료: $(basename $REPO_FILE)"
done
# Yum 캐시 삭제 및 재생성
echo "[3] Yum 캐시 삭제 및 재생성 중..."
yum clean all > /dev/null 2>&1
yum makecache > /dev/null 2>&1
echo "캐시 재생성 완료"
# 테스트 명령어 안내
echo "[4] 변경된 설정 테스트"
echo "테스트 명령어: yum repolist 또는 yum update"
echo "========================================"
echo "미러 서버 변경 작업 완료"
echo "========================================"