쓰여진:

고쳐진:

배경

본인이 홈서버 겸 장난감으로 사용하는 미니PC에 VMware를 설치하고 CentOS7을 설치하여 사용하고 있었다.
처음에는 가상머신의 저장공간을 128GB로 설정했었는데, 시간이 지나면서 다양한 파일들을 저장하다 보니 저장공간을 늘릴 필요가 생겼다.
VMware 가상머신 설정에서 저장공간을 늘려주는 건 어렵지 않았지만 CentOS7에서도 추가로 작업을 해줘야 했다.

문제 상황

총 128GB 중에 120GB는 주 파티션(sda1)으로 사용하고 있었고 8GB는 스왑 파티션(sda2)으로 사용하고 있었는데 스왑 파티션이 주 파티션의 뒤쪽에 위치하고 있었고, 그래서 단순히 주 파티션의 크기를 확장하는 방법은 불가능했다.

disk0
당시의 파티션 배치인데 파티션은 연속된 공간에 위치해야 하므로 남은 공간을 사용하려면 중간에 끼어있는 스왑 파티션의 뒤쪽에 새로운 파티션을 만들어야 한다.

disk1
이와 같이 파티션을 하나 추가하는 방안이 가장 간단하겠지만 파티션이 두 개로 나눠져 있는 것은 곤란하다.
필자는 파티션의 개수를 최대한 적게 유지하고 싶었고, 스왑 파티션을 디스크의 맨 뒤로 이동시키고 기존의 파티션을 확장하기로 했다.

해결 과정

먼저 VMware에서 저장공간을 늘려주기 전에 상태를 확인해봤다.

fdisk -l # 파티션 확인

Disk /dev/sda: 137.4 GB, 137438953472 bytes, 268435456 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000937ae

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   251660287   125829120   83  Linux
/dev/sda2       251660288   268435455     8387584   82  Linux swap / Solaris

Disk bytes 부분을 보면 현재 디스크 크기인 137,438,953,472 / 1024 ^ 3 = 128GiB를 확인할 수 있다.
(VMware에서는 128”GB”로 표기되는데 적용은 GiB 단위로 되는 차이가 있다.)

이제 VMware에서 저장공간을 늘려준 후 같은 명령어를 실행해봤다.

fdisk -l # 파티션 확인

Disk /dev/sda: 2117.4 GB, 2117418876928 bytes, 4135583744 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000937ae

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048   251660287   125829120   83  Linux
/dev/sda2       251660288   268435455     8387584   82  Linux swap / Solaris

이전과 다르게 디스크 크기가 2,117,418,876,928 / 1024 ^ 3 = 1972GiB로 늘어난 것을 확인할 수 있다.
하지만 sda1과 sda2를 비롯한 파티션의 크기는 달라지지 않았다.

이제 파티션 크기를 수정해보겠다.

fdisk /dev/sda # 파티션 편집 도구 실행


d # 파티션 삭제
2 # 2번 파티션(스왑 파티션) 삭제

n # 파티션 생성
p # 주 파티션 선택
2 # 파티션 번호 2로 지정
4118808576 # 시작 섹터 위치 ->각자 환경에 맞게 설정<-
4135563743 # 끝 섹터 위치 ->각자 환경에 맞게 설정<-

t # 파티션 유형 변경
2 # 2번 파티션 선택
82 # Linux 스왑 파티션 유형 코드


d # 파티션 삭제
1 # 1번 파티션(루트 파티션) 삭제

n # 파티션 생성
p # 주 파티션 선택
1 # 파티션 번호 1로 지정
2048 # 시작 섹터 위치 ->각자 환경에 맞게 설정<-
4118808575 # 끝 섹터 위치 ->각자 환경에 맞게 설정<-

a # 부트 플래그 설정
1 # 1번 파티션에 부트 플래그 설정


w # 저장 및 종료


reboot # 재부팅

재부팅이 끝나고 파티션과 파일 시스템을 확인해봤다.

fdisk -l # 파티션 확인

Disk /dev/sda: 2117.4 GB, 2117418876928 bytes, 4135583744 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000937ae

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048  4118808575  2059403264   83  Linux
/dev/sda2      4118808576  4135583743     8387584   82  Linux swap / Solaris


df -h # 파일 시스템 확인

Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        7.8G     0  7.8G   0% /dev
tmpfs           7.8G     0  7.8G   0% /dev/shm
tmpfs           7.8G   13M  7.8G   1% /run
tmpfs           7.8G     0  7.8G   0% /sys/fs/cgroup
/dev/sda1       120G   92G   29G  77% /
tmpfs           1.6G   20K  1.6G   1% /run/user/1000
/dev/sr0        4.4G  4.4G     0 100% /run/media/CentOS7/CentOS 7 x86_64

파티션의 크기는 확장되었지만 파일 시스템의 크기는 그대로인 것을 확인할 수 있다.

아래 명령어를 이용해서 파일 시스템을 확장시킬 수 있다.

xfs_growfs / # 파일 시스템 확장

같은 명령어를 다시 실행해보면 디스크 크기, 파티션 크기, 파일 시스템 크기 모두 정상적으로 나오는 것을 확인할 수 있다.

fdisk -l # 파티션 확인

Disk /dev/sda: 2117.4 GB, 2117418876928 bytes, 4135583744 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000937ae

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048  4118808575  2059403264   83  Linux
/dev/sda2      4118808576  4135583743     8387584   82  Linux swap / Solaris


df -h # 파일 시스템 확인

Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        7.8G     0  7.8G   0% /dev
tmpfs           7.8G     0  7.8G   0% /dev/shm
tmpfs           7.8G   13M  7.8G   1% /run
tmpfs           7.8G     0  7.8G   0% /sys/fs/cgroup
/dev/sda1       2.0T   92G  1.9T   5% /
tmpfs           1.6G   20K  1.6G   1% /run/user/1000
/dev/sr0        4.4G  4.4G     0 100% /run/media/CentOS7/CentOS 7 x86_64

Comments