본문 바로가기
서버/윈도우 서버

Hyper-V 에서 쓰던 가상 머신을 버추얼 박스로 이동하기 (Convert Hyper-V VM's to Virtualbox )

by ㅋㅋ잠자 2016. 8. 28.
반응형

   

안녕하세요. 도정진입니다. 

   

하이퍼V 를 사용하다가 버추얼 박스가 더욱 더 관리가 편리하여 버추얼 박스로 옮길 생각을 예전부터 하고 있었습니다.

   

추가적으로 Xpenology 의 경우에도 Hyper-V 는 정식으로 지원을 하지 않는 상태입니다. (구동에는 별 문제가 없으나 호스트를 종료할 경우에 같이 종료가 되지 않는 문제가 있음.)

   

저는 현재 아래와 같이 사용중입니다.

   

   

윈도우7 운영체제 

우분투 14.04 운영체제

Xpenology 운영체제

   

3가지를 사용중입니다. 

   

윈도우7

Virtualdisk.vhdx

   

우분투 14.04

Virtualdisk.vhdx

Physicaldisk3

   

Xpenology

Boot.iso

Physicaldisk1

Physicaldisk2

   

이런식으로 사용중이고 연결된 물리디스크의 정보는 아래와 같습니다.

   

물리디스크로 사용을 하였기 때문에 윈도우 (호스트 운영체제) 에는 오프라인으로 표시가 되는 상황입니다.

   

   

기본적으로 가상 머신간에는 이동이 별 문제 없이 진행되지만, 이 경우 문제가 되는 부분은 아래의 3가지 입니다.

   

1 . vhdx 를 버추얼 박스에 그대로 사용이 가능한가.

2 . 버추얼 박스의 물리 디스크 할당 기능이 사용 가능한가.

3 . 윈도우 시작 종료에 맞춰서 서비스로 동작이 가능한가.

   

그럼 위의 3가지 문제를 해결해 보겠습니다. 설명은 제가 쓰는 VM 위주로 되어 있습니다.

   

   

   

   

1 . vhdx -> vhd

   

일단 vhdx 의 경우 윈도우 10 Hyper-V 에서 만들게 되면 버추얼박스가 읽을 수 없습니다. 윈도우8 에서 만든 vhdx 는 읽기전용으로 VM과 연결됩니다.

   

그래서 최대한 원본환경과 비슷하게 쓰기 위해서 vhdx -> vhd 로 바꾸는 작업을 해야 합니다.

   

파워쉘(PowerShell)에서 작업을 해야하고 Hyper-V 가 설치되어 있는 상태여야 Convert-VHD 명령이 작동합니다.

   

   

   

디렉터리를 명령어에 포함시키지 않기 위해 로컬디스크 C에 vhdx 파일을 위치하였다고 가정한 명령어입니다.

   

Convert-VHD -Path c:\ubuntu.vhdx -DestinationPath c:\ubuntu.vhd

   

위 명령어는 ubuntu.vhdx 파일을 ubuntu.vhd 로 컨버팅 하는 명령어입니다. 

   

   

컨버팅 작업이 시작되고 지정한 위치에 ubuntu.vhd 파일이 만들어집니다. 그 파일을 이용하여 버추얼 박스에 디스크를 추가하시면 됩니다.

   

   

   

   

   

   

2 . 물리 디스크 연결

   

저는 Hyper-V 에서 Xpenology 용으로 물리 디스크를 마운트 하여 사용했습니다. 이럴 경우 버추얼박스에서는 VBoxManage 명령을 통해 작업이 가능합니다.

   

해당되는 물리디스크와 name.vmdk 파일과 연결하는 것입니다.

   

명령어는 아래와 같습니다.

   

   

VBoxManage internalcommands createrawvmdk –filename "destination to rawdisk file" -rawdisk \\.\PhysicalDrive#

   

리눅스의 경우 쉘에서 아무곳에서나 VBoxManage 명령을 사용할 수 있지만 윈도우에서는 버추얼박스가 설치되어 있는 위치로 이동하여 명령을 입력해야 합니다.

   

\\.\PhysicalDrive# 의 경우 # 부분에 해당하는 디스크 넘버를 입력하면 됩니다. 디스크 넘버 확인은 컴퓨터관리 - 디스크관리 에서 하시면 됩니다.

   

   

일단 물리 디스크로 사용하기 위해서는 디스크가 윈도우에 연결되지 않은 오프라인 상태로 있어야합니다. 그 다음 디스크 번호는 위 사진에 보이는 것처럼 디스크 1 / 2 / 3 입니다. 원하는 디스크 번호를 # 부분에 넣으면 됩니다.

   

리눅스의 경우 /dev/sda 이런식으로 됩니다.

   

   

   

위 명령으로 disk1.vmdk / disk2.vmdk / disk3.vmdk 파일이 만들어지고 이 파일을 VM에 추가하면 물리디스크에 액세스 하게 됩니다.

   

예로 제가 Xpenology 를 설정한 사진입니다.

   

   

   

   

   

3 . 윈도우 시작 종료시 VM도 같이 시작 종료하기 (vboxvmservice)

   

Hyper-V 의 경우 윈도우 시작 종료시 VM도 같이 시작 및 종료가 가능하였으나 버추얼박스는 그런 기능이 없습니다. 그래서 vboxvmservice 라는 프로그램을 이용하여 설정을 합니다.

   

다운로드는 아래에서 받을 수 있습니다.

   

http://vboxvmservice.sourceforge.net/

   

   

설치를 하고 나면 아래의 폴더에 프로그램이 설치 됩니다.

   

   

프로그램 설정은 VBoxVmService 를 통해서 합니다. 이 파일을 메모장이나 NotePad++ 등으로 열어서 수정을 합니다.

   

   

VBOX_USER_HOME 의 경우 같은 계정에서 버추얼박스를 설치하고 Vboxvmservice 도 같은 계정에서 깔았다면 기본적으로 수정을 하지 않아도 됩니다. 저는 관리자계정에서 설치를 하여 위 처럼 설정이 되어 있습니다.

   

그리고 각기 VM에 대해 위 처럼 설정이 되어 있고 VmName 을 실제 버추얼박스 관리자에서 지정한 이름과 같에 설정하면 됩니다.

VM 숫자가 많다면 Vm3 4 .... 로 추가하여 작성하시면 됩니다.

   

ShutdownMethod 의 경우 savestate / acpipowerbutton 크게 두가지가 있습니다.

   

윈도우 종료시 상태를 저장하고 부팅시 저장된 상태로 다시 시작하는 것 / 아니면 VM에 종료명령을 보내 종료 후 윈도우 종료 입니다.

   

   

그 다음 Vboxvmservice 를 통해 VM이 시작되면 버추얼박스 관리자로는 전원이 꺼져있다고 나옵니다.

이때, 버추얼박스 관리자를 통해서 VM을 종료할 수 없기 때문에 시스템 트레이에서 SaveState 를 하고 버추얼박스 관리자를 열어보면 저장됨의 상태로 남아 있게 됩니다. 이때 저장된 상태 삭제를 통해 VM 설정이 가능합니다.

   

   

   

   

감사합니다.

   

   

   

   

반응형

댓글