Nedávno jsem potřeboval testovat specifickou konfiguraci, a tak jsem si jako obvykle udělal kopii produkčního VM s tím, že si jej spustím ve VMware Workstation Pro 14. Jaké však bylo překvapení, když na mě při importu vyskočila hláška „Invalid target disk adapter type: pvscsi“:
Oprava je poměrně jednoduchá, skládá se ze dvou částí.
1. Oprava konfigurace
Pokud exportované VM máme ve formátu *.ova, tak před opravou musíme soubor rozbalit. Jedná se o jednoduchý archiv, který se dá rozbalit např. pomocí 7-Zip (windows) nebo tar (linux). Poté získáme jednotlivé soubory s obrazem disku *.vmdk (Virtual Machine Disk), konfigurační soubor *.ovf (Open Virtualization Format) a soubor s kontrolními součty *.mf (Manifest).
Otevřeme si konfigurační soubor *.ovf ve svém oblíbeném textovém editoru (jedná se o jednoduché XML, které popisuje konfiguraci VM) a najdeme řetězec, který popisuje typ řadiče disku. V našem případě hledáme Paravirtual SCSI (PVSCSI), v konfiguraci označen jako „VirtualSCSI“ :
<Item>
<rasd:Address>0</rasd:Address>
<rasd:Description>SCSI Controller</rasd:Description>
<rasd:ElementName>SCSI Controller 1</rasd:ElementName>
<rasd:InstanceID>3</rasd:InstanceID>
<rasd:ResourceSubType>VirtualSCSI</rasd:ResourceSubType>
<rasd:ResourceType>6</rasd:ResourceType>
<vmw:Config ovf:required="false" vmw:key="slotInfo.pciSlotNumber" vmw:value="192"/>
</Item>
nahradíme jej za LSI LOGIC SAS, „lsilogic“:
<Item>
<rasd:Address>0</rasd:Address>
<rasd:Description>SCSI Controller</rasd:Description>
<rasd:ElementName>SCSI Controller 1</rasd:ElementName>
<rasd:InstanceID>3</rasd:InstanceID>
<rasd:ResourceSubType>lsilogic</rasd:ResourceSubType>
<rasd:ResourceType>6</rasd:ResourceType>
<vmw:Config ovf:required="false" vmw:key="slotInfo.pciSlotNumber" vmw:value="192"/>
</Item>
poté konfiguraci uložíme.
V této chvíli by nám ale VM stále nešlo importovat, jelikož při uložení nové konfigurace se změnil kontrolní součet *.ovf.
2. Oprava kontrolního součtu
Máme dvě možnosti, jak provést opravu:
- Buď spočítáme nový kontrolní součet, např. pomocí „openssl“ a nahradíme původní *.mf soubor (postup uvádím níže).
- Nebo *.mf soubor jednoduše smažeme, VMware Workstation poté absenci *.mf ignoruje a bez problémů pokračuje v importu.
Tím máme opravu hotovou a VM bez problémů importujeme.
Kdybyste někdy z jakéhokoliv důvodu potřebovali spočítat kontrolní součet, tak zde uvádím postup. Otevřete si *.mf v textovém editoru, výpis bude vypadat nějak takto:
SHA256(FW_Mikrotik_Test-1.vmdk)= 61c0482e5452b51773497bbc17bacd657e73fdc62df030d2e7eb53a5f4c38409 SHA256(FW_Mikrotik_Test.ovf)= 10e281bfd5abd6e2e69f93f77595715459a1a3693a42aa1491b6f811e9ade5f4
Na začátku řádku najdete informaci, jaký typ kontrolního součtu je použit. Pak použijte nějaký nástroj, který umí daný typ kontrolního součtu spočítat. V mém případě je to SHA256, který umí openssl (windows i linux).
martin@testPC:~/Plocha/VMware/Copy_02$ ls -l
celkem 70020
-rwxrwxrwx 1 martin martin 193 pro 22 11:50 FW_Mikrotik_Test.mf
-rwxrwxrwx 1 martin martin 6816 pro 30 16:42 FW_Mikrotik_Test.ovf
-rwxrwxrwx 1 martin martin 71687680 pro 22 11:50 FW_Mikrotik_Test-1.vmdk
martin@testPC:~/Plocha/VMware/Copy_02$ openssl sha256 *.vmdk *.ovf > *.mf
Pomocí jednoduchého příkazu jsem spočítal kontrolní součty pro všechny *.vmdk a *.ovf soubory a uložil je do existujícího *.mf