VirtualBox 의 디스크 정보에 "동적 확장" 이라고 적혀 있고 가상 크기 40GB, 실제 크기 5.8GB 라면, 디스크 파일이 40GB 까지 쓴 만큼 커진다는 뜻이다. 40GB 를 넘어 커지지는 않는다.
가상 크기 40.00 GB ← 게스트가 보는 디스크 크기이자 상한
실제 크기 5.82 GB ← 호스트에서 .vdi 파일이 차지하는 크기
정보 동적 확장 ← 미리 잡지 않고 쓴 만큼 늘어난다
그래서 40GB 디스크에 60GB 파일을 올리려 하면 게스트 안에서 No space left on device 로 끝난다. 늘려야 하는 것은 실제 크기가 아니라 가상 크기다.
VM 을 완전히 종료한 상태에서 한다. 스냅숏이 있으면 먼저 정리한다. 스냅숏이 걸린 디스크는 크기를 바꿀 수 없거나, 바꿔도 스냅숏 체인이 꼬인다.
VBoxManage list hdds
VBoxManage modifymedium disk "D:\virtualbox\rhel79\rhel79.vdi" --resize 120000
--resize 의 단위는 MB 다. 120000 은 약 120GB 다. --resizebyte 를 쓰면 바이트 단위로 지정한다.
제약이 있다.
modifymedium --resize 가 거부한다. 이때는 새 VDI 를 만들어 복제한 뒤 늘린다.VBoxManage clonemedium "disk.vmdk" "disk.vdi" --format VDI
VBoxManage modifymedium disk "disk.vdi" --resize 120000
VirtualBox 가 늘려 준 것은 디스크뿐이다. 파티션과 파일 시스템은 그대로이므로 게스트 안에서 이어서 작업한다.
lsblk
파티션을 늘린다.
growpart /dev/sda 2
growpart 가 없으면 cloud-utils-growpart(RHEL 계열) 또는 cloud-guest-utils(데비안 계열) 를 설치한다.
LVM 이면 PV·LV 를 차례로 늘린다.
pvresize /dev/sda2
lvextend -l +100%FREE /dev/mapper/rhel-root
마지막으로 파일 시스템을 늘린다.
xfs_growfs /
resize2fs /dev/mapper/rhel-root
XFS 는 xfs_growfs 에 마운트 지점을, ext4 는 resize2fs 에 장치를 준다. 자세한 절차와 걸리는 지점은 디스크 온라인 확장 에 있다.
VBoxManage modifymedium --compact 를 쓴다.