1. 개요
- parted를 사용해 새 디스크에 GPT 라벨 생성 → 파티션 생성(ext4/XFS) → 포맷/마운트 → /etc/fstab 등록 → 안전 해제 및 삭제까지 전 과정을 단계별로 정리합니다.
2. 버전
- Rocky Linux 9.5
3. 설명
3-1. Parted 란?
- GNU 파티션 관리자. 디스크 라벨 생성(mklabel), 파티션 생성/삭제(mkpart/rm), 파티션 이름 설정(name), 플래그 토글(set), 정렬/단위 설정(unit, align-check) 등을 지원합니다.
- 대화형 모드(
parted /dev/sdX
)와 스크립트 모드(parted --script ...
)를 모두 지원하여 자동화에 유리합니다.
3-2. GPT 란?
- GUID Partition Table. MBR의 한계를 개선한 현대적 파티션 방식입니다.
- 대용량 지원: 2TiB 한계를 넘어 사용하실 수 있습니다. (실제 한계는 OS·디스크·컨트롤러에 따라 달라질 수 있음)
- 내구성: 디스크 끝에 백업 헤더를 보관하고, 메타데이터를 CRC32로 무결성 점검합니다.
- 유연성: 기본적으로 많은 파티션(보통 128개) 을 지원하며, 각 파티션에 이름(Name) 과 고유 GUID를 부여하실 수 있습니다.
- 호환성: UEFI 표준과의 궁합이 좋으며, BIOS 호환을 위해 Protective MBR을 포함합니다.
3-3. UUID
- 파일시스템 UUID와 파티션 PARTUUID를 구분합니다.
- UUID: 파일시스템을 생성하실 때(
mkfs.ext4
,mkfs.xfs
) 부여되는 식별자입니다. 파일시스템을 다시 생성하시면 변경됩니다. - PARTUUID: GPT 파티션의 고유 식별자입니다. 파티션 자체를 다시 만들지 않으시는 한 유지되는 것이 일반적입니다.
- UUID: 파일시스템을 생성하실 때(
3-4. /etc/fstab
- 부팅 시 자동 마운트를 정의하는 설정 파일입니다.
번호 | 필드명 | 의미 | 대표 입력 예시 | 핵심 포인트 |
---|---|---|---|---|
1 | spec | 무엇을 마운트? (소스) | UUID=... , PARTUUID=... , /dev/nvme0n1p2 , /dev/mapper/vg/lv , server:/exp (NFS), //srv/share (CIFS), tmpfs | UUID 권장 (blkid , lsblk -f 로 확인) |
2 | file | 어디에 마운트? (대상 경로) | / , /home , /data , /boot/efi , none (swap) | 디렉터리 미리 생성필요 |
3 | vfstype | 파일시스템 유형 | ext4 , xfs , vfat , btrfs , swap , nfs , cifs , tmpfs , iso9660 , ntfs-3g | bind 마운트는 보통 none 사용 + 옵션에 bind |
4 | options | 마운트 옵션(쉼표로 나열) | defaults , nofail , _netdev , ro/rw , noexec , nosuid , nodev , noatime/relatime , discard , x-systemd.automount , uid=,gid= (CIFS/FAT) | 용도/FS별 최적화(아래 템플릿 참고) |
5 | dump | dump 백업 사용 여부 | 0 (대부분), 1 (백업 대상) | 거의 항상 0 |
6 | pass | 부팅 시 fsck 순서 | 1 (루트), 2 (그 외), 0 (검사 안 함) | XFS/네트워크/ISO 등은 0 권장 |
4. 디스크 확인
# parted -l
출력 예시:
Error: /dev/vdb: unrecognised disk label Model: Virtio Block Device (virtblk) Disk /dev/vdb: 137GB Sector size (logical/physical): 512B/512B Partition Table: unknown Disk Flags:
5. 파티션 생성
5-1. GPT 라벨 생성
# parted /dev/vdb
(parted) mklabel gpt
5-2. GPT 라벨 확인
(parted) p
출력 예시:
Model: Virtio Block Device (virtblk) Disk /dev/vdb: 137GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags
5-3. 1번 파티션(ext4) 생성
(parted) mkpart
설정 예시:
Partition name? []? vdb1-ext4 File system type? [ext2]? ext4 Start? 1 End? 64G
5-4. 1번 파티션(ext4) 확인
(parted) p
출력 예시:
Model: Virtio Block Device (virtblk) Disk /dev/vdb: 137GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 64.0GB 64.0GB ext4 vdb1-ext4
5-5. 2번 파티션(xfs) 남은 용량 전체 생성
(parted) mkpart vdb2-xfs xfs 64G 100%
5-6. 2번 파티션(xfs) 확인
(parted) p
출력 예시:
Model: Virtio Block Device (virtblk) Disk /dev/vdb: 137GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 64.0GB 64.0GB ext4 vdb1-ext4 2 64.0GB 137GB 73.4GB xfs vdb2-xfs
5-7. Parted 종료
(parted) quit
5-8. 파티션 재확인
# parted -l
출력 예시:
Model: Virtio Block Device (virtblk) Disk /dev/vdb: 137GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 1049kB 64.0GB 64.0GB vdb1-ext4 2 64.0GB 137GB 73.4GB vdb2-xfs
6. 파일 시스템
6-1. 파일 시스템 생성(포맷)
# mkfs.ext4 /dev/vdb1 # mkfs.xfs /dev/vdb2
7. 수동 마운트
7-1. 마운트 포인트 생성 및 마운트
# mkdir /mnt/{ext4,xfs} # mount /dev/vdb1 /mnt/ext4/ # mount /dev/vdb2 /mnt/xfs/
7-2. 마운트 확인
# df -Th
출력 예시:
Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev tmpfs tmpfs 16G 0 16G 0% /dev/shm tmpfs tmpfs 6.3G 8.7M 6.3G 1% /run /dev/vda2 xfs 252G 15G 238G 6% / tmpfs tmpfs 3.2G 4.0K 3.2G 1% /run/user/0 /dev/vdb1 ext4 59G 24K 56G 1% /mnt/ext4 /dev/vdb2 xfs 69G 521M 68G 1% /mnt/xfs
8. 자동 마운트
8-1. UUID 확인
# blkid /dev/vdb1
출력 예시:
/dev/vdb1: UUID="a4dd7497-5a33-498c-b79b-7c7cbd76f99b" TYPE="ext4" PARTLABEL="vdb1-ext4" PARTUUID="d2686612-b7f1-4796-ba86-ff0c60a346a4"
8-2. 자동 마운트 설정
# vi /etc/fstab
설정 예시:
+ UUID=a4dd7497-5a33-498c-b79b-7c7cbd76f99b /mnt/ext4 ext4 defaults 0 0 + /dev/vdb2 /mnt/xfs xfs defaults 0 0
8-3. 재부팅
# reboot
8-4. 자동 마운트 확인
# df -Th
출력 예시:
Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev tmpfs tmpfs 16G 0 16G 0% /dev/shm tmpfs tmpfs 6.3G 8.7M 6.3G 1% /run /dev/vda2 xfs 252G 15G 238G 6% / /dev/vdb2 xfs 69G 521M 68G 1% /mnt/xfs /dev/vdb1 ext4 59G 24K 56G 1% /mnt/ext4 tmpfs tmpfs 3.2G 4.0K 3.2G 1% /run/user/0
9. 파티션 삭제
9-1. 자동 마운트 해제
# vi /etc/fstab
설정 예시:
- UUID=a4dd7497-5a33-498c-b79b-7c7cbd76f99b /mnt/ext4 ext4 defaults 0 0 - /dev/vdb2 /mnt/xfs xfs defaults 0 0
9-2. 마운트 해제
# umount /mnt/ext4/ /mnt/xfs/
9-3. 마운트 해제 확인
# df -Th
출력 예시:
Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 4.0M 0 4.0M 0% /dev tmpfs tmpfs 16G 0 16G 0% /dev/shm tmpfs tmpfs 6.3G 8.7M 6.3G 1% /run /dev/vda2 xfs 252G 15G 238G 6% / tmpfs tmpfs 3.2G 4.0K 3.2G 1% /run/user/0
9-4. 1번 파티션 삭제
# parted /dev/vdb --script rm 1
9-5. 1번 파티션 삭제 확인
# parted -l
출력 예시:
Model: Virtio Block Device (virtblk) Disk /dev/vdb: 137GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 2 64.0GB 137GB 73.4GB xfs vdb2-xfs
9-6. 2번 파티션 삭제
# parted /dev/vdb
(parted) p
출력 예시:
Model: Virtio Block Device (virtblk) Disk /dev/vdb: 137GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 2 64.0GB 137GB 73.4GB xfs vdb2-xfs
(parted) rm 2
9-7. 2번 파티션 삭제 확인
(parted) p
출력 예시:
Model: Virtio Block Device (virtblk) Disk /dev/vdb: 137GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags
9-8. Parted 종료
(parted) quit
9-9. 파티션 삭제 재확인
# parted -l
출력 예시:
Model: Virtio Block Device (virtblk) Disk /dev/vdb: 137GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags