리눅스 서버를 구축할 때 가장 먼저 디스크 공간을 어떻게 나눌 것인지 고민해야 한다.
파티션 분할은 단순히 용량을 배분하는 문제를 넘어 시스템의 운영 안정성, 보안, 백업 효율성, 그리고 장애 대응 능력과 직결된다. 실무 관점에서 파티션 분할의 필요성을 살펴보고, 로키 리눅스 9(Rocky Linux 9)를 이용해 실제로 파티션을 나누어 설치해보자.
1. 왜 리눅스에서 파티션을 분할할까?
단일 파티션(/ 하나에 모든 디렉터리를 포함)으로 구성된 시스템은 관리가 편해 보이지만, 보안 사고나 시스템 장애 발생 시 치명적인 약점이 된다.
장애 확산 방지 및 보안 강화
특정 서비스에서 로그 파일이 폭증하거나 사용자가 대용량 파일을 업로드하여 디스크가 꽉 차는 상황이 발생할 수 있다.
이때 파티션이 분리되어 있지 않으면 루트 파일시스템 전체가 마비되어 부팅 불능, 서비스 중단, 로그인 장애로 이어진다.
또한, 보안 측면에서도 파티션 분할은 필수적이다. 각 파티션마다 마운트 옵션을 다르게 설정할 수 있기 때문이다.
예를 들어, 사용자가 파일을 저장하는 /home이나 임시 파일이 생성되는 /tmp에 noexec(실행 금지) 옵션을 걸면, 악성 코드가 업로드되더라도 실행되는 것을 원천 차단할 수 있다.
파티션 분할 여부에 따른 보안성 비교
| 구분 | 파티션 미분할 (통파일 구조) | 파티션 분할 (실무형 구조) |
| 공격 대응 | 취약점 노출 시 대응 수단 부족 | 파티션별 보안 옵션으로 대응 가능 |
| 권한 관리 | 공격 성공 시 100% Root 권한 탈취 위험 | 공격 범위가 해당 파티션으로 국한됨 |
| 시스템 영향 | 특정 영역 디스크 Full 시 시스템 전체 마비 | 해당 파티션만 영향, OS 핵심 영역 보호 |
| 백업/복구 | 전체 데이터를 한꺼번에 관리해야 함 | 필요한 파티션(/var/lib/mysql 등)만 선별 백업 가능 |
2. 파티션 설계
실무에서 필수적으로 분리를 고려해야 하는 디렉터리와 권장 디렉터리는 다음과 같다.
필수 분리 영역
- /boot: 커널 및 부트로더 파일 보호. 시스템 부팅의 핵심이므로 별도 관리한다.
- / (Root): 필수 설정 파일 및 시스템 운영을 위한 최소 공간.
- /home: 사용자 데이터가 저장되는 곳으로, OS 재설치 시에도 데이터를 보존하기 쉽다.
- /var: 로그, 메일, DB 데이터 등 가변성이 큰 데이터 저장소. 디스크 Full 발생 가능성이 가장 높다.
- /tmp: 임시 파일 저장소. 보안 옵션(noexec, nosuid) 적용이 필수적인 구간이다.
- swap: RAM 부족 시 보조 공간으로 활용되는 가상 메모리.
- /usr: 시스템 프로그램 및 라이브러리가 위치하는 영역.
권장 분리 영역
- /opt: 서드파티 애플리케이션 관리용.
- /var/log: 로그 데이터만 별도로 분리하여 시스템 마비 방지.
- /var/lib/mysql: 데이터베이스 I/O 성능 향상 및 백업 편의성 증대.
3. Rocky Linux 9 파티션 분할 설치 방법(VMWare 이용)
Rocky Linux 9 이미지 파일을 다운로드해서 100GB의 디스크 용량을 할당하여 보안과 효율성을 고려한 파티션 분할 설치를 진행해보자.
1️⃣ ISO 파일 다운로드
먼저 로키리눅스 공식 홈페이지에서 미니멀 버전 iso 파일을 다운받는다.
https://rockylinux.org/download

2️⃣ 가상머신 추가
VMWare Workstation을 열어 New Virtual Machine을 클릭한다.
가상머신 이름을 알아보기 쉽게 임의로 지정하고 설치 위치도 지정한다.

Specify Disk Capacity : 파티션 분할을 위해 넉넉하게 100G로 잡는다.

Next > Finish 로 새 가상머신 추가를 완료한다.
3️⃣ 가상머신 설정 및 ISO 연결
Edit Virtual Machine settings로 들어가서 추가 설정을 진행한다..

다운로드한 Minimal ISO를 VMWare에 로드한다.
이때 가상머신 설정의 CD/DVD (SATA) 항목에서 "Connect at power on"이 체크되어 있는지 반드시 확인해야 한다.
이 설정이 꺼져 있으면 부팅 시 설치 미디어를 인식하지 못해 "Operating System not found" 오류가 발생한다.
Device status : Connect at power on 체크
Connection > Use ISO image file : 다운받은 이미지 파일 선택

가상머신 세팅이 완료되면 Power on this virtual machine을 눌러서 설치 화면으로 들어간다.
4️⃣ 루트 패스워드 설정 및 일반 사용자 추가
설치 화면에서 사용할 언어를 선택한다. (English, 한국어 등)
루트 패스워드를 설정한다.
원격 접속 및 관리를 위해 "Allow root SSH login with password"에 체크한다.

일반 사용자 계정을 추가로 생성한다.

5️⃣ 수동 파티션 설정 (Manual Partitioning)
'Installation Destination' 메뉴에서 디스크를 선택한 후, Storage Configuration을 Custom으로 설정하고 Done을 누른다.

다음 화면에서 LVM(Logical Volume Manager) 방식을 사용하여 아래 표의 순서대로 파티션을 추가한다.
Tip: 파티션 추가 순서 크기가 작고 고정적인 /boot, swap, /tmp를 먼저 잡고, 이후 용량 산정이 필요한 /usr, /home, /var를 배정한 뒤 남은 모든 용량을 /에 할당하는 방식이 효율적이다.
☑️파티션별 용량 구성
- HDD 용량: 100G
| 파티션 | 용량 | 분할 이유 및 설명 |
| /boot | 2GB | 커널 및 GRUB 저장용. 기본 1GB에 여유분 추가. |
| swap | 8GB | 메모리 보조 공간. 실습 환경 최적화. |
| /tmp | 5GB | 임시 파일 폭증 방지 및 보안 설정용. |
| /usr | 20GB | 시스템 프로그램 및 라이브러리 저장. |
| /home | 20GB | 사용자 데이터 영역 분리. |
| /var | 25GB | 로그, 캐시, DB 등 가변 데이터 수용. |
| / | 20GB | 남은 용량을 최종 배정하여 시스템 안정성 확보. |


설정을 마치면 'Summary of Changes' 창이 뜬다.
여기서 주요 변경 사항을 확인할 수 있다.

- destroy format: 기존 데이터를 지우고 새 형식을 만든다.
- create partition table (MSDOS/GPT): 디스크 형식을 설정한다.
- physical volume (LVM): 물리 디스크를 LVM으로 관리하도록 변환한다.
- create device lvmlv: /var, /usr 등 용도별로 논리 볼륨을 쪼갠다.
- create format xfs: 고성능 파일 시스템인 XFS로 포맷한다.
Acccept Changes를 눌러서 설정을 끝낸다.
6️⃣ 설치 완료 및 접속
네트워크 설정에서 이더넷(ens160 등)이 활성화되었는지 확인하고 설치를 진행한다.
재부팅 후 ip -br -4 a 명령어로 IP를 확인한 뒤, MobaXterm과 같은 쉘 도구에서 ssh root@IP주소로 접속하여 정상 동작을 확인한다.


'Journey to Security > 리눅스' 카테고리의 다른 글
| [서버 보안] 리눅스 SSH 백도어 점검 및 삭제하기 (0) | 2026.04.26 |
|---|---|
| [서버 보안] Brute Force 공격과 무단 공개키 삽입(SSH 백도어) (0) | 2026.04.23 |
| passwd --stdin 옵션을 활용한 비밀번호 변경 자동화 (0) | 2026.03.26 |
| 리눅스 명령어는 어떤 파일을 참조할까? strace로 파일 접근 추적하기 (0) | 2026.03.26 |
| 압축/아카이브 관련 명령어 (0) | 2026.03.24 |