Products & Services/VirtualBox

VirtualBox, 가상 하드 디스크 용량 조절하기.

TechNote.kr 2016. 7. 7. 15:20
728x90

 VirtualBox 를 이용해 Linux Kernel Compile을 진행하고 있다. 그 동안의 기억으로 Linux는 크게 용량을 먹지 않았던 것으로 알고 있었는데, 막상 kernel compile을 해보니 용량 증가 속도가 상당이 빠르고 많다는 것을 알았다. 처음에 가상 하드 디스크로 16GB를 할당해서 쓰고 있었는데 compile 도중에 모두 차버렸다.

 사용할 수 있는 공간이 없어서인지 X window에서 terminal도 실행이 안되고 해서 console로 진입해 용량을 확인해 보았다. 용량 확인을 위해 df -h를 해보니 /dev/sda1 에서 Avail이 0으로 되어 있고 Use%가 100%로 바닥나버렸다. 

 그래서 처음에 16GB로 잡았던 용량을 늘리기 위해서 VirtualBox 세팅을 아무리 뒤져봐도 가상 하드 디스크인 VDI의 크기를 조절하는 곳은 보이지 않았다. 

위와 같이 처음에 잡았던 가상크기 16GB가 확인된다. 하지만 크기를 조절하는 곳은 어디에도 보이지 않는다. 

그래서 인터넷을 이리 저리 찾아보니 UI가 아닌 CLI(cmd)로 조절이 가능함을 알수 있었다. 

이는 가상화된 OS내에서 하는 것이 아니고, VirtualBox를 실행시킨 OS에서 해주어야 한다. 
VirtualBox 밖에서 직접 가상화 하드 디스크인 VDI를 건드리게 된다. 아무 생각없이 가상화로 설치한 OS내에서 계속 하면서 삽질을 했다.

나의 경우는 Windows 에 설치한 VirtualBox내 Ubuntu 의 가상 하드 디스크 크기를 조절할 예정이므로 Windows cmd를 띄워 아래 cmd를 실행하였다. 

VBoxManage.exe modifyhd [VDI 위치] --resize [MB단위의 변경하고자 하는 크기]


나의 경우 실제 입력한 명령어는 아래와 같다. 

혹시라도 VBoxManage.exe를 찾을 수 없다면 VirtualBox 설치 위치에 가보면 있다.

[C:\Program Files\Oracle\VirtualBox\VBoxManage.exe]

VBoxManage.exe modifyhd "Ubuntu 16.04 1.vdi" --resize 32768

저렇게 되면 사이즈가 16384MB (16GB) 에서 32768MB (32GB) 로 증가하게 된다.

아래와 같이 가상 크기가 32.00GB로 변경된 것을 확인할 수 있다. 


이제 되었겠지 하고서 다시 부팅 후 df -h를 해서 확인해 보았다. 

하지만 전과 동일하다. 

 가상 하드 디스크 자체는 커졌지만 하드 디스크 내의 파티션은 그대로이기 때문에 파티션 또한 늘려주어야 한다. 현재 부팅해서 사용되고 있는 하드 디스크의 파티션을 변경하는 것은 위험하기 때문에 Ubuntu 설치시 사용하였던 CD(ISO)로 부팅해서 가상 하드 디스크의 파티션을 변경해 주어야 한다. 

CD(ISO)로 부팅하면 그냥 Live로 Ubuntu를 사용할 것인지 아니면 설치할 것인지 선택하는데 이번에는 설치하는 것이 아니기 때문에 "Try Ubuntu"를 선택한다.

선택하면 아래와 같이 가상 하드 디스크로 Ubuntu를 부팅했을 때와 동일한 화면을 볼 수 있다. 

이 상태에서 Partition(파티션) 설정하는 프로그램을 실행해 주어야 한다. terminal을 실행해서 root 권한으로 gparted를 실행한다.

sudo gparted

32GB는 고정된 값으로 실제 리눅스에서 사용하는 /dev/sda1에 대해서 30GB로 늘려주었다.
(나머지 2GB는 swap partition용으로 설정.)

V(체크표시)를 누르면 돌이킬 수 없기 때문에 다시 한번 잘 설정되었는지 확인하고 "Apply"를 누른다.

그러면 모든 절차가 완료되고, "All operations successfully completed"라는 메세지를 확인할 수 있다.

이후 재부팅을 해서 보면 아래와 같이 전체 크기가 30GB(나머지 2GB는 swap)으로 설정되어 있음을 확인할 수 있고, 남아 있는 공간도 0MB에서 15MB로 늘어나 있음을 확인 할 수 있다. 


Swap의 재설정


사실 아까 gparted 를 이용해 파티션을 조절하다 swap partition이 /dev/sda5에서 /dev/sda2로 변경되었다. (이 부분은 사용자마다 다를 수 있어 참고만 하면 된다.)

이에 swap partition 위치에 대한 설정을 변경해 주어야 한다.

해당 설정은 가상 OS(Ubuntu)내의 /etc/fstab에서 확인할 수 있다. 

# swap was on /dev/sda5 during installation

이 부분 밑의 UUID를 바꾸어 주어야 한다.

바뀐 UUID를 확인하는 방법은 아래와 같이 blkid 를 실행해 보면 알 수 있다. 

blkid로 확인한 /dev/sda2 (swap)의 UUID로 /etc/fstab의 이전 swap UUID를 변경하면 모든 설정이 끝난다.

 처음에 무심코 설정한 가상 하드 디스크의 크기가 너무 작아 다소 번거로운 과정을 거쳐 용량을 늘려주어야 한다. 동적할당의 경우 크게 잡더라도 실제 사용한 크기만 사용하게 되므로 처음부터 충분히 크게 잡는게 좋을 것 같다. 

728x90