서버 운영/버추얼박스(VirtualBox)

버추얼박스 명령줄 인터페이스로 VMDK, VHD 등 여러 가상머신 프로그램의 가상 하드 디스크 이미지 파일을 VDI 파일로 변환하는 방법

씨실과 날실 2021. 5. 21. 09:00

 

안녕하세요. 씨실과 날실입니다.

이번에는 여러 가상 하드 디스크 이미지 파일을 버추얼박스 전용 이미지 파일인 VDI 포맷으로 변환하는 방법에 대해 적도록 하겠습니다.

 

이 작업(포맷 변환)에 대한 버추얼박스의 공식 안내 문서는 아래 링크에 있습니다.

 

이 연재에 사용된 예제 파일은 마이크로소프트사가 정기적으로 배포하는 윈도10 엔터프라이즈 가상머신용 개발환경 파일입니다.

가상머신용 윈도10 개발환경 다운로드에 대한 보다 자세한 내용은 위 링크를 참고하시기 바랍니다.

 

예제로 사용한 파일은 WinDev2104Eval-disk1.vmdk 파일입니다.

참고로 변환할 파일은 외장하드의 특정 폴더에 복사해두었습니다.

 

명령 프롬프트(CMD)를 실행해 창을 띄웁니다.

Microsoft Windows [Version 10.0.19042.985]
(c) Microsoft Corporation. All rights reserved.

C:\Users\admin>F:

F:\>

외장하드의 드라이브 명을 입력해 작업 위치를 외장 하드 드라이브로 옮겼습니다.

만약 시스템 드라이브(C:)에서 작업할 요량이라면 이 작업은 필요없습니다.

 

F:\>cd F:\VirtualBox\VMs\WinDev2104Eval.VMware

F:\VirtualBox\VMs\WinDev2104Eval.VMware>

변환할 파일이 위치한 폴더로 이동해줍니다.

 

포맷 변환에 대한 내용은 버추얼박스의 공식 문서는 아래 링크에 있습니다.

 

버추얼박스의 미디어(가상 디스크) 복제 및 변환 관련 명령은 VBoxManage clonemedium입니다.

Oracle VM VirtualBox Command Line Management Interface Version 6.1.18
(C) 2005-2021 Oracle Corporation
All rights reserved.

Usage:

VBoxManage clonemedium      [disk|dvd|floppy] <uuid|inputfile> <uuid|outputfile>
                            [--format VDI|VMDK|VHD|RAW|<other>]
                            [--variant Standard,Fixed,Split2G,Stream,ESX]
                            [--existing]

버추얼박스 프로그램에서는 사용례에 대하여 위와 같이 안내하고 있습니다.

 

F:\VirtualBox\VMs\WinDev2104Eval.VMware> "c:\program files\oracle\virtualbox\vboxmanage" clonemedium WinDev2104Eval-disk1.vmdk WinDev2104Eval-vmdk_to_vdi.vdi --format VDI --variant Standard
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone medium created in format 'VDI'. UUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

F:\VirtualBox\VMs\WinDev2104Eval.VMware>

위 과정이 가장 보편적인 명령 실행 모습니다.

따옴표로 버추얼박스의 vboxmanage 명령이 존재하는 디렉터리 즉, 버추얼박스가 설치되어 있는 디렉터리와 그 안에 존재하는 vboxmanage 파일을 하나의 경로로 묶고, 그 옆에 하위 명령인 clonemedium을 적고, 그 다음 포맷 변환 복제 대상이 될 원본 파일의 경로를 적고,  복제 생성 시 만들어진 파일의 파일명(변환 포맷 확장자를 포함)을 적고, 마지막으로 적용할 옵션을 적은 다음 엔터키를 눌러 실행해줍니다.

현재 버추얼박스에서 가상 미디어 복제에 사용하는 하위 명령으로 위와 같이 clonemedium을 사용합니다.

그러나 과거 버전에서는 clonevdi과 clonehd을 사용했습니다. 인터넷에서 버추얼박스의 가상 미디어 복제 및 포맷 변환에 대하여 설명한 글 들 중에 clonevdi 또는 clonehd 하위 명령이 자주 보이는 이유입니다.

버추얼박스는 과거 버전과의 호환성 유지를 위해 clonevdi 또는 clonehd을 사용하더라도 내부적으로  clonemedium으로 자동 매핑되어 실행됩니다.

 

포맷 변환 작업 시 주의할 점이 몇 가지 있습니다.

첫 번째로 원본 자체의 포맷을 다른 포맷으로 바꾸기만 하는 것이 아니라 원본을 토대로 다른 포맷의 새로운 복제본을 만든다는 점입니다. 즉, "포맷 변환 '복제' 작업"이라는 것입니다.

그리고 아래에서 상세히 설명하겠지만 복제본이 원본보다 훨씬 많은 용량을 가집니다. 따라서 해당 작업을 진행하기 전에는 해당 디스크에 용량이 충분한지 확인하시고 진행하시기 바랍니다.

 

두 번째로 복제 작업의 생성 파일은 원본보다 훨씬 많은 용량을 차지한다는 점입니다.

실제로 위 예시 작업처럼 마이크로소프트사가 제공하는 WinDev2104Eval-disk1.vmdk 파일을 vdi 포맷으로 변환 복제하면 원본 용량이  20기가 정도에 불과한데 포맷 변환 작업을 거친 복제본은 39기가로 거의 배 가까이 늘어나게 됩니다.

 

마이크로소프트사는 vmdk 포맷 파일 뿐만 아니라 vdi 파일도 함께 제공하고 있으며 제공되는 vdi 파일의 경우 vmdk 파일과 유사한 용량을 가집니다.

포맷 변환 복제 시 겪는 용량 확대 현상은 위 예제 파일에만 생기는 현상이 아닙니다. 따라서 원본 vdi 파일이 있는 경우 해당 원본을 사용하시는 것을 권장합니다.