마루옵스서버 · 네트워크 · AI 기술 노트

소개문의

Linux 루트(/) 확장: LVM 없는 파티션과 growpart·resize2fs

책상 위에 놓인 하드디스크와 Intel SSD

참고 사진 · 책상 위에 놓인 하드디스크와 Intel SSD · 사진: machu. / 원본 / CC BY-SA 2.0 · 목록용 크기 조정

루트 파일시스템이 /dev/sda2나 /dev/nvme0n1p2에 바로 올라가 있다면 LVM 명령은 필요하지 않습니다. 디스크를 늘리고, 그 안의 파티션 끝을 늘린 다음, 파일시스템이 추가 공간을 사용하도록 하면 됩니다. 다만 파티션 바로 뒤에 공간이 있어야 해요.

대상은 LVM·암호화·RAID 중간 계층 없이 일반 파티션 위에 있는 XFS 또는 ext4의 확장입니다. Rocky Linux 9와 Ubuntu 24.04·26.04에서 먼저 구조를 확인합니다. /가 LVM이라면 LVM 루트 확장의 절차를 사용합니다.

함께 보는 Linux 운영 글 · Rocky 9 고정 IP · Ubuntu 24.04 Netplan · Ubuntu 26.04·nmtui · systemd 서비스·로그 · LVM 루트 확장 · 일반 파티션 루트 확장

이 글의 목차

1. 루트 장치와 뒤쪽 빈 공간을 확인한다

findmnt -no SOURCE,FSTYPE,OPTIONS /
df -hT /
df -ih /
lsblk -e 7 -o NAME,PATH,SIZE,TYPE,FSTYPE,MOUNTPOINTS

이 글의 주 예시는 /dev/sda2 → ext4 → /입니다. 장치명과 파일시스템이 다르면 실제 값으로 바꿉니다. 디스크 전체 크기와 파티션 크기, df의 파일시스템 크기는 같은 값일 필요가 없습니다. 메타데이터와 단위 차이도 있지만, 큰 차이가 남으면 어느 단계가 반영되지 않았는지 확인합니다.

확장 전: [ EFI / sda1 ][ 루트 / sda2                  ]
디스크 확장 후: [ EFI / sda1 ][ 루트 / sda2 ][ 미할당 공간 ]
파티션 확장 후: [ EFI / sda1 ][ 루트 / sda2                     ]
마무리: sda2 안의 ext4 또는 XFS를 늘림

뒤에 swap·복구·다른 데이터 파티션이 있으면 디스크 끝에 추가된 공간이 루트와 붙어 있지 않을 수 있습니다. 그 경우 growpart가 다른 파티션을 넘어 루트를 확장해 주지는 않습니다. 시작 섹터를 바꾸거나 파티션을 삭제·재생성하는 방식으로 건너뛰지 않습니다.

2. 백업과 도구를 준비한다

VM과 데이터는 복원 가능한 형태로 다른 저장 위치에 백업합니다. 가상 디스크 확장은 대체로 줄이기보다 쉬워도, 실패 시 명령을 역순으로 입력해서 원상 복구되는 작업은 아닙니다. /가 가득 찼다면 설치·메타데이터 기록에 필요한 여유도 먼저 확보합니다.

# Rocky Linux 9
sudo dnf install -y cloud-utils-growpart xfsprogs e2fsprogs util-linux parted
# Ubuntu 24.04 / 26.04
sudo apt update
sudo apt install -y cloud-guest-utils xfsprogs e2fsprogs util-linux parted
sudo sfdisk --dump /dev/sda > partition-table-before.sfdisk
sudo parted /dev/sda unit s print free

덤프도 다른 저장 위치에 보관합니다. 파티션 표 덤프는 파일 내용의 백업이 아닙니다. parted는 배치를 확인하는 용도로 사용합니다. 확장 뒤 GPT 관련 수정 질문이 나오면 상태를 확인해 처리하고, 의미를 모른 채 자동 수정 옵션을 덧붙이지 않습니다.

3. VMware에서 가상 디스크를 늘린다

Workstation의 VM을 종료한 상태에서 해당 Hard Disk의 Expand 기능으로 목표 크기를 지정하고 다시 부팅합니다. 실제 메뉴와 스냅샷·암호화 등의 제약은 사용 중인 제품 문서를 확인합니다. 가상 디스크 파일만 커져도 /의 파일시스템은 자동으로 같은 크기가 되지 않습니다. Broadcom의 디스크 확장 안내가 이 차이를 설명합니다.

lsblk -o NAME,PATH,SIZE,TYPE,FSTYPE,MOUNTPOINTS /dev/sda
sudo blockdev --getsize64 /dev/sda
sudo parted /dev/sda unit s print free

기존보다 디스크 전체 크기가 커졌고, 루트 파티션 끝 바로 뒤에 사용 가능한 연속 공간이 있는지 확인합니다. OS에서 디스크 크기조차 그대로라면 적절한 재검색이나 재부팅이 먼저입니다. VMware에서 다른 가상 디스크를 늘린 것은 아닌지도 확인해 보세요.

4. growpart로 파티션 끝을 늘린다

아래는 루트가 /dev/sda2이고 바로 뒤로 확장 가능한 경우입니다. -N은 변경 계획만 출력합니다. 실제 대상과 시작 섹터가 보존되는지 확인한 뒤 실제 변경을 실행합니다.

sudo growpart -N /dev/sda 2
sudo growpart /dev/sda 2
lsblk -o NAME,PATH,SIZE,TYPE,FSTYPE,MOUNTPOINTS /dev/sda
sudo blockdev --getsize64 /dev/sda2
루트 파티션growpart에 넣는 디스크·번호ext4 확장 대상
/dev/sda2/dev/sda 2/dev/sda2
/dev/vda1/dev/vda 1/dev/vda1
/dev/nvme0n1p2/dev/nvme0n1 2/dev/nvme0n1p2

NVMe 장치의 마지막 p2를 통째로 인자로 넣지 않습니다. 이 단계에서 커지는 것은 파티션의 끝이며 파일시스템은 아직 이전 크기일 수 있습니다. 커널이 새 파티션 크기를 인식하지 못했다면 필요한 재부팅 후 장치 크기를 다시 확인합니다. growpart 매뉴얼에서 -N과 인자 형식을 확인할 수 있습니다.

5. 파일시스템 형식에 맞게 마무리한다

findmnt -no SOURCE,FSTYPE /

ext4라면 장치 경로를 지정한다

sudo resize2fs /dev/sda2

파티션이 실제로 커진 상태에서 ext4를 확장합니다. 온라인 확장이 지원되는 정상 상태의 파일시스템을 전제로 합니다. 별도의 오프라인 검사가 필요한 오류가 있으면 복구 환경에서 점검합니다. 마운트된 /에 e2fsck를 강제 실행하지 않습니다. resize2fs 매뉴얼은 이 명령이 파티션 표 자체를 바꾸지 않는다는 점도 설명합니다.

XFS라면 마운트 지점을 지정한다

sudo xfs_growfs /

XFS인 경우에만 실행합니다. 앞의 ext4 명령과 이어서 둘 다 실행하는 순서가 아닙니다. XFS 확장은 마운트된 상태에서 진행하며, RHEL 9 기준 축소는 지원하지 않습니다. XFS 확장 문서를 기준으로 장치 크기와 마운트 상태를 확인합니다.

6. 확인하고 종료한다

findmnt -no SOURCE,FSTYPE,OPTIONS /
df -hT /
df -ih /
lsblk -o NAME,PATH,SIZE,TYPE,FSTYPE,MOUNTPOINTS
sudo journalctl -k -b -p warning --no-pager

새 파티션을 만든 작업이 아니므로 일반적인 단순 확장은 기존 UUID와 fstab 경로를 유지합니다. mkfs를 실행하거나 fstab을 추측한 새 장치명으로 바꾸지 않습니다. 앱이 파일을 쓸 수 있는지와 계획한 재부팅 뒤에도 정상 마운트되는지도 확인합니다.

NOCHANGE가 나오거나 뒤에 다른 파티션이 있다면

상태다음 확인
디스크 전체 크기가 그대로하이퍼바이저 대상 디스크와 OS의 인식 상태
파티션이 이미 디스크 끝까지 큼파일시스템 확장 단계가 남았는지 확인
루트 뒤에 다른 파티션이 있음오프라인 재배치·복원·마이그레이션 계획 검토
LUKS·LVM·RAID 계층이 발견됨해당 계층을 포함한 확장 순서로 전환
읽기 전용·I/O 오류저장장치·파일시스템 장애부터 점검

뒤에 있는 swap이나 다른 파티션을 없애면 되겠다는 판단은 그 파티션의 사용 여부·fstab·부팅 의존성을 확인한 뒤 별도 작업으로 다뤄야 합니다. 저장 공간이 급하더라도 운영 중인 루트에서 파티션 이동을 즉흥적으로 진행하지 않습니다.

용량 증가가 특정 앱 데이터에 집중된다면 새 디스크를 그 데이터의 전용 경로로 쓰는 설계도 검토할 수 있어요. 이때는 서비스 중지, 일관된 복사, 권한·SELinux, fstab과 복구 계획이 필요한 데이터 이전 작업입니다. 단순히 디렉터리를 mv하고 링크를 거는 일로 끝내지 않습니다. journal 증가가 원인이라면 systemd 서비스·로그의 보관 정책도 함께 점검합니다.

확인 범위 · 2026-10-18: Ubuntu 24.04.5 VM의 가상 부팅 디스크를 8GiB에서 10GiB로 늘리고 실제 /의 ext4 파티션·파일시스템을 확장했습니다. XFS는 별도의 일반 파티션을 2GiB에서 3GiB로 늘려 확인했으며 기존 파일의 SHA-256을 비교했습니다. Rocky Linux 9와 Ubuntu 26.04를 각각 부팅해 루트 파티션을 확장한 검증은 수행하지 않았습니다.

네트워크·systemd 예제 파일 내려받기 · Netplan YAML, 서비스·환경 파일과 스토리지 구조를 읽는 스크립트를 묶었습니다. 주소와 장치 이름은 실제 환경에 맞춰 바꿉니다. 디스크를 자동 확장하는 스크립트는 포함하지 않습니다.

댓글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

닉네임·이메일·댓글 내용·IP 주소·브라우저 정보는 댓글 게시 및 관리에 사용됩니다. 이메일과 접속 정보는 공개 댓글에 표시하지 않습니다. 개인정보 요청은 운영자 이메일로 보내 주세요. 개인정보처리방침