CentOS를 처음 설치할 때 파티션 설정 부분에서 수동으로 설정하지 않고, 자동으로 설정하게 했다면 /home에 많은 용량이 할당된 것을 볼 수 있다.

특정 목적으로 /home 디렉토리 용량이 많이 필요한 상황이 아니라면, 시간이 지나면 지날수록 root(/) 디렉토리의 용량이 부족할 수도 있다.

따라서 다음의 방법으로 root(/) 디렉토리의 용량을 늘일 수 있다.

 

# 환경

OS : CentOS 6.9

 

# 방법

👉 참고 링크

이 방법은 /home 볼륨을 삭제하고 다시 만드는 과정으로 해결한다.

# '/home' 디렉토리를 백업
tar -zcvf /root/home.tar.gz -C /home .

# (Option) 백업이 잘 되었는지 테스트
tar -tvf /root/home.tar.gz

# '/home' 디렉토리를 언마운트
umount /dev/mapper/centos-home

# Logical Volume을 삭제
lvremove /dev/mapper/centos-home

# '/home'에 대한 새로운 Logical Volume 생성 후 마운트
lvcreate -L 10GB -n home centos
# 위 10GB는 당연히 이전 '/home' 용량에서 '/'에 추가로 할당할 용량을 빼고난 후의 값이어야 함
# 즉, '/home' 디렉토리에 새로 할당할 용량을 설정하면 됨
mkfs.xfs /dev/centos/home
mount /dev/mapper/centos-home

# '/root' Volume 확장, '/home'에 할당한 10G를 뺀 나머지가 모두 '/root'에 반영됨
lvextend -r -l +100%FREE /dev/mapper/centos-root

# '/home' 디렉토리 복구
tar -zxvf /root/home.tar.gz -C /home

 

실제로

이랬던 녀석이

 

이렇게 확장/축소된 것을 확인

※ 실제 적용된 그림은 Virtual Box로 테스트 서버를 하나 만들어서 적용한 것으로 1GB의 용량을 축소 및 확장 적용하였음

 


 

# XFS filesystem Error

 👉 참고 링크

umount /home

# -r 옵션은 resize2fs를 동시에 실행하도록 하는 옵션이다
lvreduce -r -L 10G /dev/VolGroup/lv_home

lvresize -r -l+100%FREE /dev/VolGroup/lv_root

mount /home

df -h

 

필요없는 디렉토리(즉, /home 디렉토리)의 용량을 lvreduce 명령어를 통해 원하는 만큼 줄이고(예제에서는 10G에 해당), 줄인 용량을 root(/) 디렉토리가 lvresize 명령어를 통해 확장하는 것이다.

그런데 lvreduce 명령어를 사용하면 다음과 같은 에러가 발생한다.

fsadm: Xfs filesystem shrinking is unsupported.

파일 시스템 타입이 XFS 인 경우 축소할 수 없다고 한다.