Parted는 리눅스에서 디스크 파티션을 생성, 포맷, 삭제, 축소 및 확장할 수 있는 PARTition EDitor(파티션 편집기)입니다. 이 도구는 사용법이 간단하며 대부분의 유닉스/리눅스 배포판에서 기본적으로 제공됩니다. GUI 버전인 GParted도 함께 사용할 수 있습니다. 이 글에서는 CentOS 리눅스 환경에서 parted로 디스크 파티션을 관리하는 방법을 단계별로 소개합니다(다른 리눅스 배포판에서도 동일한 방식으로 작동합니다). Parted는 윈도우의 diskpart 도구에 해당하는 리눅스용 파티션 관리 도구라고 할 수 있습니다.
리눅스에 Parted 설치하는 방법
먼저 리눅스 호스트의 패키지를 최신 상태로 업데이트한 후, 배포판의 패키지 관리자를 통해 parted를 설치합니다. yum을 대체한 dnf 패키지 관리자를 사용하는 CentOS 8에서는 기본 저장소에서 다음 명령어로 설치할 수 있습니다:
# dnf update -y
# dnf install parted -y

Debian/Ubuntu 계열에서는 다음 명령어를 사용합니다:
# apt-get install parted
설치된 도구의 버전을 확인하려면 다음 명령어를 실행합니다:
# parted –v
parted (GNU parted) 3.2

parted 대화형 셸을 시작하려면 다음을 입력합니다:
# parted
GNU Parted 3.2 Using /dev/vdb Welcome to GNU Parted! Type 'help' to view a list of commands.
Parted로 파티션 테이블 관리하기
사용 가능한 디스크 목록을 확인하려면 다음 명령어를 입력합니다:
# print
또는 parted 명령을 직접 실행해 확인할 수도 있습니다:
$ sudo parted -l

위 예시에는 레이블이 지정되지 않은 21GB 크기의 /dev/vdb 디스크가 있습니다(error /dev/vdb: unrecognized disk label). 디스크에 msdos 파티션 테이블(MBR)을 생성하려면:
# mklabel msdos
GPT(GUID 파티션 테이블)를 생성할 수도 있습니다. GPT는 2TB를 초과하는 파티션 크기를 지원합니다:
# mklabel gpt
fdisk와 달리 parted에는 변경 사항을 디스크에 기록하는 별도의 명령이 없다는 점에 유의하세요. 모든 변경 사항은 입력 즉시 적용됩니다.
이제 parted가 디스크의 파티션 테이블 유형(레이아웃)을 표시합니다:
(parted) print Model: Virtio Block Device (virtblk) Disk /dev/vdb: 21.0GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags
디스크에 MBR 파티션 테이블이 생성되었지만 아직 파티션은 만들어지지 않았습니다.
서버에 여러 개의 디스크가 연결되어 있다면 다음 명령어로 작업 대상 디스크를 전환할 수 있습니다:
# select /dev/diskname
Parted로 새 파티션 생성하는 방법
parted에서 새 파티션을 생성하려면 mkpart 명령을 사용합니다. 대화형 모드에서 이 명령을 실행하면 새 파티션의 매개변수를 묻는 질문이 차례로 나타납니다.

- Partition type(파티션 유형) — primary 또는 extended 중 선택합니다
- File system type(파일 시스템 유형) — 파일 시스템을 지정합니다. 기본값은 ext2이며 나중에 변경할 수 있습니다
- Start(시작 위치) — 파티션이 시작되는 섹터 위치입니다
- End(끝 위치) — 파티션의 마지막 섹터(메가바이트 단위). 이 예시에서는 5,000을 입력하여 5GB 파티션을 생성합니다
디스크에 남아 있는 여유 공간을 확인하려면 다음 명령어를 사용합니다:
(parted) print free
디스크 전체 공간을 사용하는 파티션을 생성할 수도 있습니다:
# (parted) mkpart primary 0 0
또는 원하는 파티션 크기를 직접 지정할 수 있습니다:
# (parted) mkpart primary 0 1GB
파티션 크기를 백분율(%)로 설정하고 레이블을 부여하는 것도 가능합니다:
# (parted) mkpart "home part" ext4 2.5GiB 100%
parted를 종료하려면 다음 명령어를 실행합니다:
# quit
이제 생성된 파티션을 ext4 파일 시스템으로 포맷합니다:
# mkfs.ext4 /dev/vdb1
mke2fs 1.44.6 (5-Mar-2019) Creating filesystem with 1220352 4k blocks and 305216 inodes Filesystem UUID: 5c9daa97-c0f4-44bc-9cfa-f466ebd8895e Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 Allocating group tables: done Writing inode tables: done Creating journal (16384 blocks): done Writing superblocks and filesystem accounting information: done
print 명령을 실행해 파티션 목록과 번호, 유형, 크기, 파일 시스템 정보를 확인하고 변경 사항이 올바르게 적용되었는지 점검합니다.

parted 대화형 셸에 들어가지 않고도 한 줄 명령으로 파티션 생성과 포맷을 동시에 처리할 수 있습니다:
# parted -a opt /dev/vdb mkpart primary ext4 0% 100% && mkfs.ext4 /dev/vda1
이 명령은 vdb 디스크에 파티션을 생성하고 모든 여유 공간을 해당 파티션에 할당합니다. 이러한 방식을 활용하면 반복 작업을 간소화할 수 있으며, bash 스크립트나 kickstart 파일에 응용해 자동화할 수도 있습니다.
Parted로 파티션 크기 조절(확장·축소)하는 방법
파티션 크기를 확장하거나 축소하려면 parted의 resizepart 하위 명령을 사용합니다. 대화형으로 진행되며, parted에서 다음 명령을 실행합니다:
# resizepart
주의: ext2/3/4 파일 시스템을 사용하는 파티션은 크기 조절 전에 반드시 마운트를 해제해야 합니다.
도구가 파티션 번호(print 출력에서 확인 가능)와 파티션의 최종 크기를 입력하라고 요청합니다. 이 예시에서는 파티션 크기를 5GB에서 10GB로 확장합니다:
(parted) resizepart Partition number? 1 End? [5000MB]? 10000

파티션 확장 시에는 먼저 파티션 크기를 늘린 후 파일 시스템을 확장해야 합니다. 반대로 축소할 때는 파일 시스템 크기를 먼저 줄인 다음 파티션을 축소해야 합니다. 순서를 지키지 않으면 데이터가 손실될 수 있으니 주의하세요.
파일 시스템 크기를 조절하는 명령어는 다음과 같습니다. ext2/3/4 파일 시스템의 경우:
resize2fs /dev/sdab size
Btrfs 파일 시스템의 경우:
btrfs filesystem resize /dev/sdab size
또한 parted에서는 파티션 플래그(flag)도 변경할 수 있습니다. 설정 가능한 주요 플래그는 다음과 같습니다:
- boot
- root
- swap
- hidden
- raid
- lvm
- lba
- legacy_boot
- irst
- esp
- palo
예를 들어 1번 파티션을 부팅 가능(bootable) 상태로 표시하려면 다음과 같이 입력합니다:
# set 1 boot on

Parted로 파티션 삭제하기
디스크에서 파티션을 삭제하려면 parted의 rm 명령을 사용합니다:
# rm 1
이 명령은 1번 파티션을 즉시 삭제합니다:
(parted) print Model: Virtio Block Device (virtblk) Disk /dev/vdb: 21.0GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags:
rm 명령은 삭제 여부를 재확인하지 않고 바로 실행되므로, 사용 전에 파티션 번호를 정확히 확인해야 합니다.
Rescue로 실수로 삭제한 파티션 복구하는 방법
실수로 파티션을 삭제했다면 parted에 내장된 rescue 도구로 복구를 시도할 수 있습니다:
# rescue
명령을 실행하면 삭제된 파티션의 시작 위치와 끝 위치를 입력하라는 메시지가 표시됩니다. 해당 영역에 파티션 정보가 일부 남아 있다면, rescue 명령이 삭제된 파티션을 자동으로 복구해 줍니다.

이처럼 parted는 사용법이 직관적이면서도 강력한 기능을 갖춘 도구로, 리눅스에서 디스크 파티션을 생성하고 수정하는 작업에 매우 유용합니다.