Oprogramowanie Oracle VM VirtualBox jest narzędziem, które lubi wszystkich, i nie ma z nikim żadnego problemu 🙂 Nie ma specjalnie nic przeciw, jeżeli chcemy pracować z czymś co nie jest sumarycznie „jego”. Przykładem jest to, że może wykorzystywać kilka różnych typów dysków wirtualnych, jak vhd„/”vhdx (natywne dla rozwiązania Hyper-V), vmdk (natywne dla rozwiązań VMware), mimo tego, że jego natywny format dysku to „VDI (VirtualBox Disk Image).

To oznacza, że teoretycznie, jeśli dostaliśmy/pobraliśmy dysk wirtualny w formacie vhd/vhdx/vmdk, to VirtualBox bez problemu pozwoli bezpośrednio podpiąć taki dysk do „jego” wirtualnej maszyny, i wykorzystywać go w ten sposób „na wprost”. Ooooczywiście, to nie oznacza jeszcze, że tak kompletnie bez problemu się uruchomi sam system zainstalowany wewnątrz wirtualnego dysku, szczególnie jeżeli mówimy o systemach MS Windows, gdyż jeżeli takowy był instalowany pod Hyper-V, czy VMware Workstation, to tam emulowany sprzęt był inny niż w VirtualBox, także system po uruchomieniu się szybko zauważy taką większą zmianę sprzętu, a to oznacza instalację sterowników, itd. Do tego, jeżeli mieliśmy pod Hyper-V tworzony wirtualny dysk jako „vhd”, to tenże był tam tworzony jako dysk ATA, a w VirtualBox mechanicznie wrzucimy go pod kontroler SATA, i Windows szybko po uruchomieniu się… powiesi 🙂

 

Mimo wszystko, w praktyce okazuje się czasem, że jednak chcemy/potrzebujemy z różnych powodów, przekonwertować dysk w formacie „obcym” jakim jest vhd/vhdx/vmdk do natywnego dla VirtualBox’a formatu „vdi. Choć pewniej znacznie częściej mamy sytuację odwrotną, czyli mamy wirtualny dysk w formacie „vdi„, ale ponieważ Hyper-V ani VMware nie są tak miłe jak VirtualBox, i lubią tylko „swoje”, to potrzebujemy czasem przekonwertować dysk w formacie „vdi„, do vhd/vhdx/vmdk. I tu powstaje pytanie: czy to się da zrobić, a jak tak, to jak?
Odpowiedź brzmi: tak, da się, a jak to zrobić, to zobaczymy w dalszej części artykułu 🙂

 

 

 

To jak wykonać konwersję obcego wirtualnego dysku vhd/vhdx/vmdk do formatu „vdi„?

Istotna na początek informacja, to taka, że poniższa procedura jest identyczna, niezależna od tego z jakiego formatu wirtualnego dysku chcemy wykonać konwersję do formatu „vdi„.

 

Załóżmy więc na początek, że wirtualny dysk jaki mamy aktualnie, to dysk w formacie „vhd„:

I chcemy teraz przekonwertować ten dysk „vhd” do formatu „vdi” (tak, wiem, że przecież można go podłączyć na wprost, ale ten musiałby być podłączony jako dysk ATA, a z różnych powodów potrzebuję aby można było go podłączyć jako dysk SATA, a takim też po konwersji się stanie).

W tym celu, w systemie gospodarza co istotne, uruchamiamy wiersz poleceń, i w nim przechodzimy do katalogu C:\Program Files\Oracle\VirtualBox (konkretnie do katalogu, gdzie zainstalowaliśmy aplikację VirtualBox – także jak zainstalowaliśmy gdzieś indziej, niż ten podany domyślny, to oczywiście musimy przejść do tego katalogu gdzie my mamy zainstalowaną tą aplikację), wykorzystując polecenie:

cd C:\Program Files\Oracle\VirtualBox

 

I teraz możemy już wydać polecenie konwersji wirtualnego dysku, zgodnie ze schematem:

VBoxManage clonehd {ścieżka do dysku jaki chcemy konwertować} {ścieżka do nowopowstałego po konwersji dysku} --format vdi

gdzie pod {ścieżka do dysku jaki chcemy konwertować} podajemy ścieżkę do pliku wirtualnego dysku, który chcemy skonwertować (warto wiedzieć, że ścieżkę do dysku można także uzupełnić przeciągając po prostu plik dysku wirtualnego z eksploratora plików do okna wiersza poleceń), a pod {ścieżka do dysku jaki chcemy konwertować} podajemy ścieżkę do pliku wirtualnego dysku, który powstanie już skonwertowany w formacie „vdi” jako kopia konwertowanego dysku wirtualnego.

 

Przykładowo, dla naszego analizowanego przypadku, wyglądałoby następująco:

 

W efekcie wykonania powyższego polecenia okazuje się, że pojawiła się nam kopia naszego pliku wirtualnego dysku, już w formacie „vdi”:

I teraz tenże plik możemy już wykorzystać, podpinając w VirtualBox pod wybraną wirtualną maszynę, i modlić się, aby po włączeniu wirtualnej maszyny nie było problemów jakichś czasem z tym dyskiem (jeżeli jest to wirtualny dysk utworzony pod innym oprogramowaniem wirtualizacyjnym niż VirtualBox) 😉

 

Oczywiście przypominam, że powyższa procedura jest identyczna, niezależnie, czy chcemy przekonwertować plik w formacie „vmdk„, czy „vhdx„, czy „vhd” – kwestia tylko wskazania ścieżki do pliku jaki chcemy przekonwertować, natomiast format wejściowy dla poleceniu nie musi być specjalnie podawany, sam sobie z rozpoznaniem poradzi

 

 

 

A jak wykonać konwersję odwrotną: czyli z formatu vdi do formatu vhd/vhdx/vmdk?

 

Sumarycznie procedura jest… identyczna, tylko tyle, że w ramach polecenia konwertującego, po przełączniku/parametrze „–format” podajemy zamiast „vdi” pożądany format wirtualnego dysku, do którego konwersję chcemy wykonać, czyli:

  • dla konwersji do dysku vmdk:
VBoxManage clonehd {ścieżka do dysku jaki chcemy konwertować} {ścieżka do nowopowstałego po konwersji dysku} --format vmdk
  • dla konwersji do dysku vhd:
VBoxManage clonehd {ścieżka do dysku jaki chcemy konwertować} {ścieżka do nowopowstałego po konwersji dysku} --format vhd

 

Przykładowo:

 

w efekcie czego otrzymujemy:

i teraz można te dyski już podpinać pod wirtualne maszyny w Hyper-V (dysk vhd) czy VMware (dysk vmdk).

 

 

A co z konwersją do vhdx, bo gdzieś chyba powyżej się zgubiło?

Ano tu się okazuje, że o ile narzędziem vboxmanage możemy zrealizować konwersję z formatu vhdx do vdi:

to gdy chcemy wykonać konwersję odwrotną z vdi do vhdx, to niestety vboxmanage mówi nam, że mu przykro, ale takiej konwersji nie obsługuje:

Inna sprawa, że przecież mamy możliwość skorzystania z vhd, a ten format Hyper-V także obsługuje.

 

 

Udostępnij, jeśli ci się spodobało: