가상 머신을 물리적 환경으로 변환 할 수 있습니까?


77

.vdi 파일을 .iso로 변환하여 CD 나 DVD에 구울 수 있고 설치 프로그램처럼 만들 수 있습니다. 또는 가상 머신을 물리적 환경으로 변환 할 수 있습니까?


1
AskUbuntu.com에 대한이 답변은 Linux 호스트 시스템에서 실행되는 많은 환경에 적용됩니다. askubuntu.com/a/32506/31592
blong

답변:


64

예, 아니요

VBoxManage 도구를 사용하여 VDI를 디스크 이미지로 변환 있습니다 . 이 명령 은 등록 된 가상 디스크 이미지 를 다른 이미지 파일로 복제 합니다. 가상 디스크를 다른 형식으로 변환하려면 [*]를 사용하는 공식 VirtualBox 도구입니다.

VBoxManage clonehd file.vdi output.img --format RAW
  • 동적 VDI를 사용 중이고 이전 버전의 VirtualBox가있는 경우 clonehd 가 제대로 작동하지 않을 수 있습니다. VBoxManage의 내부 명령 도구에는 동적 VDI를 원시 디스크 이미지 ( source ) [+] 로 변환 할 수있는 converttoraw가 포함되어 있습니다 .

VBoxManage internalcommands converttoraw file.vdi output.img

그러나 ... 출력 IMG 파일은 ISO 이미지가 아니며 설치된 OS는 부팅 가능한 CD / DVD에서 실행되도록 구성되지 않습니다. IMG를 하드 드라이브에 "굽기"(쓰기) 할 수 있으며 가상 하드웨어가 아닌 베어 하드웨어에서 부팅 될 수 있습니다. 그러나 IMG에 설치된 OS가 VirtualBox가 제공하는 가상 하드웨어를 볼 것으로 예상하고 예상하지 않은 실제 하드웨어로 부팅하기 때문일 수 있습니다.

일부 Windows 버전에서는이 상황을 잘 처리하지 못합니다. 일부 Linux 배포판이 있습니다. 때때로 이와 같이 한 환경에서 다른 환경으로 OS를 마이그레이션하도록 OS를 구성 할 수도 있지만 (이전 또는 이후에) 특정 단계는 마이그레이션되는 OS에 따라 완전히 다릅니다.


Windows에서는 프로그램의 전체 경로를 지정해야합니다.

"C:\Program Files\Sun\VirtualBox\VBoxManage.exe" [...]

짧은 버전을 사용하려면 C : \ Program Files \ Sun \ VirtualBox 를 PATH에 추가하십시오 .


[*] "--format RAW" 옵션이 실제 하드 드라이브 에서 dd 명령을 사용한 것처럼 표준 디스크 이미지로 변환 한다고 가정합니다 . 그러나 솔직히, 나는 이것을 뒷받침하는 문서를 찾지 못했기 때문에 이것이 정확하지 않을 수 있음을 명심하십시오.

[+] VirtualBox 3.1.2에서 두 명령을 모두 테스트했습니다. 두 출력 파일은 md5sum 에 따르면 동일 하지만 출력 파일을 완전히 테스트하지는 않았습니다.

VirtualBox 포럼의 "VDI에 관한 모든 것" 자습서 도 참조하십시오 .


3
VDI의 크기는 어떻습니까? 그게 중요합니까? VDI 크기가 20GB이고 실제로 HDD 크기가 200GB라고 가정 해 봅시다. 어떻게됩니까?
Pwnna

첫 번째 방법 인 "clonehd"는 엄청나게 느립니다. 그러나 두 번째는 치료를했습니다.
Matt H

1
또한 Windows 운영 체제를 부팅 할 수있게하려면 대부분의 경우 다시 활성화해야합니다.
Kimmax

sysprep /generalize가상 설치를 먼저 했다면 ? 새 하드웨어 (또는이 경우 실제 하드웨어)에 설치할 설치를 확실히 준비합니다.
Robula

1
@Pwnna 하드 디스크의 img (파티션뿐만 아니라 파티션이있는 전체 파티션 맵)를 복사하고 있습니다. 나는 과거에 이것을 해왔고이 답변이 무엇을 의미하는지, 마지막에 사용되지 않거나 파티션되지 않은 공간을 보았던 것을 기억하십시오 : serverfault.com/questions/268889/…
sudo

21

vdi 파일에 파티션이 포함되어 있고 그 중 하나만 추출하려면 다음을 사용하십시오.

먼저, quick quixote가 말했듯이 vdi 파일을 원시 이미지 파일로 변환하십시오.

# VBoxManage clonehd file.vdi file.raw --format RAW

그런 다음 이미지의 루프 장치를 설정하십시오.

# loopdev=$(losetup --show -r -f file.raw)

kpartx를 사용하여 원시 파일의 각 파티션에 대한 장치를 작성하십시오.

# apt-get install kpartx
# kpartx -a $loopdev

현재 사용중인 장치를 확인하십시오. 이 예에서는 원시 이미지에 파티션이 하나뿐이므로 장치는 하나뿐입니다.

# ls /dev/mapper/loop*
/dev/mapper/loop0p1

이제 마운트하여 모든 것이 올바르게 작동하는지 확인하십시오.

# mkdir /mnt/part1
# mount /dev/mapper/loop0p1 /mnt/part1
# ls /mnt/part1
# umount /mnt/part1

dd를 사용하여 파티션 내용을 다른 대상 파티션에 복사하십시오.

# dd if=/dev/mapper/loop0p1 of=/dev/sda2 bs=1M

완료 후 장치 매핑을 다시 제거하십시오.

# kpartx -d file.raw

Windows에서도 가능합니까?
Ehsan

13

호스트 및 게스트 시스템이 Linux 인 경우 대답은 확실합니다. 패키지 qemu와로 완료되었습니다 TKLPatch. VDI 또는 VMDK 파일을 모두 사용할 수 있습니다.

더 읽어보기 :


3
1 "명확한" 주의 할에 "게스트는 리눅스와 같이 긴 ..as" . 그리고 그들의 (귀하의) 솔루션은 일부 TurnKey Linux 도구에 의존합니다. 그러나 절차는 소리가납니다. (Super User에 오신 것을 환영합니다!)
quick quixote

5

나는 대답VBoxManage clonehd file.vdi output.img --format RAW 에서 시도 했지만 많은 성공을 거두지 못했습니다.

Windows 7 호스트의 Windows 8.1 가상 머신에서 나를 위해 일한 것은 다음과 같습니다.

  1. VirtualBox에서 Windows 8.1 시스템을 만들고 일반적으로 VM에서와 마찬가지로 설치 및 사용합니다.
  2. 가상 상자 .vdi 하드 디스크를 사용하여 Windows VHD 로 변환VBoxManage clonehd source.vdi target.vhd --format vhd
  3. 호스트 Windows 시스템에서 VHD를 드라이브로 마운트하십시오 (컴퓨터 관리의 디스크 관리자에서 VHD를 마운트 할 수 있습니다).
  4. VHD (드라이브로 마운트 됨)를 다른 새 하드 디스크 (필자의 경우 USB 연결 랩탑 HD) DriveImage XML 또는 유사한 디스크 복제 도구에 복제하십시오. 이제 기본적으로 가상 하드 디스크 .vdi를 베어 메탈로 복제했습니다.
  5. 컴퓨터에 새 하드 디스크를 설치하십시오. (제 경우에는 랩톱 HDD를 교체하십시오)
  6. Windows 8.1 설치 USB / CD를 넣고 부팅 한 다음 고급 옵션 및 자동 복구를 선택하십시오. 자동 복구는 새 하드 디스크를 부팅 가능하게 만듭니다.
  7. 복제 된 Windows 8.1을 사용하여 새 하드 디스크에서 부팅하고 Windows Update를 실행하십시오. 그러면 VirtualBox에서 Windows를 실행할 때 몰랐던 컴퓨터 하드웨어 용 드라이버가 다운로드됩니다. 누락 된 드라이버가 있으면 수동으로 설치해야합니다.
  8. VirtualBox Guest 추가를 제거하십시오. 베어 메탈 Windows 8.1이 VirtualBox 호스트가 될 수 있도록 VirtualBox를 선택적으로 설치하십시오.

1
@sum에서 : BootICE 를 사용하여 6 단계를 바꾸고 올바른 MBR을 설치해야합니다.
fixer1234

감사. Windows 8.1 설치보다 BootICE가 더 안정적입니까? 6 단계 MBR을 망칠 수 있다고 설명합니까?
Jan H

1
이것은 새로운 사용자가 답변으로 게시했습니다 ( superuser.com/users/523958/sum 이라고 생각합니다 ). 답변으로 분류되지 않아 삭제 될 예정이므로 게시물을 복사하여 주석으로 저장하여 손실되지 않았습니다. 나는 개인적으로 익숙하지 않습니다.
fixer1234

3

나는 리눅스에서 단 두 줄의 명령 으로이 프로세스를 매우 빠르게 수행합니다.

#VBoxManage 내부 명령 convert_raw your_disk_virtual.vmdk your_disk_virtual.img

또는

#VBoxManage 내부 명령 convert_raw your_disk_virtual.vdi your_disk_virtual.img

# mv your_disk_virtual.img your_disk_virtual.iso

내 전체 기사 : http://www.previsioni.com.br/jailsonjan/?p=389


이 경우 .img를 부팅 할 수 있습니까?
Pumphouse

아니에요 나는 0-rep 사용자의 비슷한 대답을 보았지만 쉬운 방법처럼 보였지만 쓸모없는 것으로 판명되었습니다.
T.Todua

0

다음 명령을 사용하여 변환하십시오.

VBoxManage clonehd CactiEZ-disk1.vmdk output.iso --format VMDK

출력은 다음과 같습니다.

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VMDK'. UUID: 7f297ac6-95eb-4814-9237-1acfd6be976c
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.