VMware 환경에서 CentOS7 디스크 확장
쓰여진:
고쳐진:
배경
본인이 홈서버 겸 장난감으로 사용하는 미니PC에 VMware를 설치하고 CentOS7을 설치하여 사용하고 있었다.
처음에는 가상머신의 저장공간을 128GB로 설정했었는데, 시간이 지나면서 다양한 파일들을 저장하다 보니 저장공간을 늘릴 필요가 생겼다.
VMware 가상머신 설정에서 저장공간을 늘려주는 건 어렵지 않았지만 CentOS7에서도 추가로 작업을 해줘야 했다.
문제 상황
총 128GB 중에 120GB는 주 파티션(sda1)으로 사용하고 있었고 8GB는 스왑 파티션(sda2)으로 사용하고 있었는데 스왑 파티션이 주 파티션의 뒤쪽에 위치하고 있었고, 그래서 단순히 주 파티션의 크기를 확장하는 방법은 불가능했다.
당시의 파티션 배치인데 파티션은 연속된 공간에 위치해야 하므로 남은 공간을 사용하려면 중간에 끼어있는 스왑 파티션의 뒤쪽에 새로운 파티션을 만들어야 한다.
이와 같이 파티션을 하나 추가하는 방안이 가장 간단하겠지만 파티션이 두 개로 나눠져 있는 것은 곤란하다.
필자는 파티션의 개수를 최대한 적게 유지하고 싶었고, 스왑 파티션을 디스크의 맨 뒤로 이동시키고 기존의 파티션을 확장하기로 했다.
해결 과정
먼저 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