개요
리눅스 서버에서 새로운 디스크를 추가하거나 파티션을 나눌 때 fdisk의 복잡한 텍스트 입력 대신 직관적인 TUI(터미널 사용자 인터페이스)를 제공하는 cfdisk는 실무에서 매우 유용합니다. 본 글에서는 cfdisk의 기본 개념부터 안전한 가상 디스크 기반 파티셔닝 실습, 그리고 파일시스템 생성 및 마운트까지 실무 디스크 관리 전 과정을 다룹니다.
cfdisk 도구 설치 및 현재 시스템 디스크 현황 조회
cfdisk 도구와 디스크 파티션 관리에 필요한 유틸리티를 사용하기 위해 apt-get update -qq && apt-get install -y util-linux parted 명령어로 패키지를 설치합니다.

cfdisk 명령어는 텍스트 기반 메뉴(curses) 인터페이스를 통해 파티션을 직관적이고 안전하게 관리할 수 있도록 지원하는 도구입니다.cfdisk --version 명령어를 실행하여 도구의 정상 설치 여부와 버전 정보를 확인합니다.
⚙️ [주요 옵션]
-z, --zero : 기존 파티션 테이블 정보를 무시하고 빈 파티션 테이블 상태로 시작합니다.-L, --lock[=mode] : 파티션 작업 중 다른 프로세스와의 충돌을 방지하기 위해 장치 잠금을 설정합니다.--color[=when] : 화면 출력 시 색상 적용 여부를 지정합니다.-V, --version : 프로그램의 버전 정보를 출력합니다.-h, --help : 사용 가능한 도움말과 옵션 목록을 출력합니다.

파티션 작업 전 시스템의 기존 저장 장치 구조와 마운트 현황을 파악하기 위해 lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINTS 명령어를 실행합니다.
디스크 장치명과 각 파티션의 파일 시스템, 현재 마운트된 위치를 미리 확인하여 중요한 시스템 파티션을 보호하고 작업할 대상 디스크를 안전하게 식별할 수 있습니다.

안전한 실습을 위한 가상 디스크 이미지 및 루프 디바이스 생성
안전한 파티션 실습을 진행할 전용 작업 디렉터리를 생성하고 해당 위치로 이동하기 위해 mkdir -p /tmp/disk-lab && cd /tmp/disk-lab 명령어를 실행합니다.

실제 물리 디스크의 데이터 손실을 방지하고 안전하게 파티셔닝을 실습할 1GB 크기의 가상 디스크 이미지를 생성하기 위해 dd if=/dev/zero of=/tmp/disk-lab/virtual_disk.img bs=1M count=1024 status=progress 명령어를 실행합니다.

생성된 가상 디스크 이미지 파일이 1GB 용량으로 정상 생성되었는지 확인하기 위해 ls -lh /tmp/disk-lab/virtual_disk.img 명령어를 실행합니다.

cfdisk 옵션 분석 및 가상 디스크 파티션 테이블 생성
cfdisk 도구에서 제공하는 전체 옵션 목록과 도움말 정보를 확인하기 위해 cfdisk --help 명령어를 실행합니다.

가상 디스크에 GPT 파티션 라벨을 생성하고 실습을 위한 2개의 파티션으로 분할하고자 parted -s /tmp/disk-lab/virtual_disk.img mklabel gpt mkpart primary ext4 1MiB 500MiB mkpart primary ext4 500MiB 100% 명령어를 실행합니다.

가상 디스크를 대상으로 기존 파티션 정보를 무시하는 -z 옵션을 함께 지정하여 cfdisk 명령 구성을 점검하기 위해 cfdisk -z /tmp/disk-lab/virtual_disk.img --help || true 명령어를 실행합니다.

가상 디스크에 구성된 파티션 테이블 정보를 검증하기 위해 parted /tmp/disk-lab/virtual_disk.img print 명령어를 실행합니다.
출력 결과를 통해 GPT 파티션 테이블 아래에 약 500MB 크기의 파티션 2개가 정상적으로 배치되었음을 확인할 수 있습니다.

루프 디바이스 연결 및 파일시스템 포맷과 마운트 검증
ext4 파일시스템 생성과 관리에 필요한 도구를 준비하기 위해 apt-get install -y e2fsprogs 명령어를 실행합니다.

가상 디스크 이미지 내 파티션을 커널이 개별 블록 장치로 인식할 수 있도록 루프 디바이스에 연결하기 위해 LOOP_DEV=$(losetup --find --show -P /tmp/disk-lab/virtual_disk.img) && echo "Connected to: $LOOP_DEV" 명령어를 실행합니다.
실행 결과 가상 디스크가 /dev/loop0 장치로 정상 연결되었음을 확인할 수 있습니다.

연결된 루프 디바이스의 파티션 구조와 인식 상태를 확인하기 위해 lsblk ${LOOP_DEV} 명령어를 실행합니다.
출력 결과를 통해 1GB 가상 디스크 내부에 분할된 두 개의 파티션(loop0p1, loop0p2)이 블록 장치로 정상 등록되었음을 확인할 수 있습니다.

첫 번째 파티션을 사용할 수 있도록 ext4 파일시스템으로 포맷하기 위해 mkfs.ext4 -F ${LOOP_DEV}p1 명령어를 실행합니다.
이 작업을 통해 파티션에 파일 및 디렉터리를 저장할 수 있는 파일시스템 구조가 생성됩니다.

포맷된 파티션을 시스템에서 접근할 수 있도록 마운트 포인트를 생성하고 파티션을 마운트하기 위해 mkdir -p /mnt/virtual_disk && mount ${LOOP_DEV}p1 /mnt/virtual_disk 명령어를 실행합니다.

마운트된 파일시스템의 전체 용량과 사용 현황을 확인하여 정상 연결 여부를 검증하기 위해 df -h /mnt/virtual_disk 명령어를 실행합니다.
지정한 마운트 위치에 파티션이 올바르게 연결되어 사용 가능한 상태인지 최종 점검할 수 있습니다.

지금까지 fdisk보다 직관적이고 다루기 쉬운 파티션 도구 cfdisk의 실무 활용법을 간단하게 살펴보았습니다.
앞으로 리눅스 환경에서 디스크를 분할하거나 관리할 때 편리한 cfdisk를 적극 활용해 보시기 바랍니다.