Strumenti Utente

Strumenti Sito


doc:vbox_import_export_ova_issue

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Prossima revisione
Revisione precedente
doc:vbox_import_export_ova_issue [2012/11/30 23:24] – creata xquietdoc:vbox_import_export_ova_issue [2019/01/27 10:59] (versione attuale) – modifica esterna 127.0.0.1
Linea 13: Linea 13:
   * VirtualBox-OSE (versione open source con qualche limitazione rispetto alla prima)   * VirtualBox-OSE (versione open source con qualche limitazione rispetto alla prima)
  
-Questo breve howto illustra come esportare correttamente applicazioni virtuali (macchine virtuali) di Mageia realizzate con VirtualBox-OSE (comodamente installabile dai repositories di Mageia) affinché siano importabili nella versione di VirtualBox distribuita da Oracle.+Questo breve howto illustra come sistemare applicazioni virtuali (macchine virtuali) di Mageia realizzate con VirtualBox-OSE (comodamente installabile dai repositories di Mageia) affinché siano importabili nella versione di VirtualBox distribuita da Oracle.
  
-//Perché si rende necessario scrive questo howto?// Per il semplice fatto che la versione di VirtualBox distribuita da Oracle non supporta nativamente Mageia come sistema operativo guest, mentre VirtualBox-OSE (versione 4.1.22_OSE disponibile su Mageia) sì.+//Perché si rende necessario scrive questo howto?// Per il semplice fatto che la versione di VirtualBox distribuita da Oracle non riconosce Mageia come un sistema operativo guest valido, mentre VirtualBox-OSE (versione 4.1.22_OSE disponibile su Mageia) sì.
  
 ===== Requisiti ===== ===== Requisiti =====
  
-  * Rudimenti di bash e text editing+  * Un editor di testo (gedit, kwrite, leafpad, juffed, vim, emacs, nano, joe, ...)
   * Mageia 2 a 32bit o 64bit   * Mageia 2 a 32bit o 64bit
   * Voglia di smanettare e un cervello funzionante, come sempre ;-)   * Voglia di smanettare e un cervello funzionante, come sempre ;-)
Linea 26: Linea 26:
 ===== Il problema ===== ===== Il problema =====
  
-Supponiamo che vogliate esportare la vostra macchina virtuale con Mageia per poterla distribuire ai vostri clienti o più semplicemente la vogliate passare a qualche amico durante un Install Fest di Mageia. Per fare questo VirtualBox-OSE (così come VirtualBox) mettono a disposizione la funzione **Esporta applicazione** accessibile dal menù //File//. Seguendo la procedura guidata otterrete un file con estensione **.ova** (d'ora in avanti per semplicità //OVA//).+Supponiamo che vogliate esportare la vostra macchina virtuale con Mageia per poterla distribuire ai vostri clienti o più semplicemente la vogliate passare a qualche amico durante un Install Fest di Mageia. Per fare questo VirtualBox-OSE (così come VirtualBox) mette a disposizione la funzione **Esporta applicazione** accessibile dal menù //File//. Seguendo la procedura guidata otterrete un file con estensione **.ova** (d'ora in avanti per semplicità //OVA//).
  
 Supponiamo, sempre per comodità, che la vostra macchina virtuale realizzata con VirtualBox-OSE debba essere importata in una VirtualBox di quelle che potete scaricare in forma binaria dal sito di Oracle, magari in esecuzione su una distribuzione diversa da Mageia. Supponiamo, sempre per comodità, che la vostra macchina virtuale realizzata con VirtualBox-OSE debba essere importata in una VirtualBox di quelle che potete scaricare in forma binaria dal sito di Oracle, magari in esecuzione su una distribuzione diversa da Mageia.
  
-Quello che succederà sarà grosso modo un messaggio di errore tipo:+Quello che succederà nel momento in cui tenterete di importare l'OVA sarà l'apparire di un messaggio di errore del tipo:
  
-''Importazione dell'applicazione virtuale /home/matteo/Documenti/CentOS.ovf non riuscita.''+''Importazione dell'applicazione virtuale /home/matteo/Documenti/Mga01.ova non riuscita.''
  
 ===== Una digressione tecnica ===== ===== Una digressione tecnica =====
Linea 51: Linea 51:
 Un esempio: Un esempio:
  
-''<?xml version="1.0"?> +{{:doc:centos.txt|OVF di una vm Mageia}}
-<Envelope ovf:version="1.0" xml:lang="en-US" xmlns="http://schemas.dmtf.org/ovf/envelope/1" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1" xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_ResourceAllocationSettingData" xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:vbox="http://www.virtualbox.org/ovf/machine"> +
-  <References> +
-    <File ovf:href="CentOS-disk1.vmdk" ovf:id="file1"/> +
-  </References> +
-  <DiskSection> +
-    <Info>List of the virtual disks used in the package</Info> +
-    <Disk ovf:capacity="8589934592" ovf:diskId="vmdisk1" ovf:fileRef="file1" ovf:format="http://www.vmware.com/interfaces/specifications/vmdk.html#streamOptimized" vbox:uuid="656d2cbe-8ed8-4fb2-99fd-c803d50d57d3"/> +
-  </DiskSection> +
-  <NetworkSection> +
-    <Info>Logical networks used in the package</Info> +
-    <Network ovf:name="Bridged"> +
-      <Description>Logical network used by this appliance.</Description> +
-    </Network> +
-  </NetworkSection> +
-  <VirtualSystem ovf:id="CentOS"> +
-    <Info>A virtual machine</Info> +
-    <OperatingSystemSection ovf:id="79"> +
-      <Info>The kind of installed guest operating system</Info> +
-      <Description>GeronimoLOL</Description> +
-      <vbox:OSType ovf:required="false">GeronimoLOL</vbox:OSType> +
-    </OperatingSystemSection> +
-    <VirtualHardwareSection> +
-      <Info>Virtual hardware requirements for a virtual machine</Info> +
-      <System> +
-        <vssd:ElementName>Virtual Hardware Family</vssd:ElementName> +
-        <vssd:InstanceID>0</vssd:InstanceID> +
-        <vssd:VirtualSystemIdentifier>CentOS</vssd:VirtualSystemIdentifier> +
-        <vssd:VirtualSystemType>virtualbox-2.2</vssd:VirtualSystemType> +
-      </System> +
-      <Item> +
-        <rasd:Caption>1 virtual CPU</rasd:Caption> +
-        <rasd:Description>Number of virtual CPUs</rasd:Description> +
-        <rasd:ElementName>1 virtual CPU</rasd:ElementName> +
-        <rasd:InstanceID>1</rasd:InstanceID> +
-        <rasd:ResourceType>3</rasd:ResourceType> +
-        <rasd:VirtualQuantity>1</rasd:VirtualQuantity> +
-      </Item> +
-      <Item> +
-        <rasd:AllocationUnits>MegaBytes</rasd:AllocationUnits> +
-        <rasd:Caption>512 MB of memory</rasd:Caption> +
-        <rasd:Description>Memory Size</rasd:Description> +
-        <rasd:ElementName>512 MB of memory</rasd:ElementName> +
-        <rasd:InstanceID>2</rasd:InstanceID> +
-        <rasd:ResourceType>4</rasd:ResourceType> +
-        <rasd:VirtualQuantity>512</rasd:VirtualQuantity> +
-      </Item> +
-      <Item> +
-        <rasd:Address>0</rasd:Address> +
-        <rasd:Caption>ideController0</rasd:Caption> +
-        <rasd:Description>IDE Controller</rasd:Description> +
-        <rasd:ElementName>ideController0</rasd:ElementName> +
-        <rasd:InstanceID>3</rasd:InstanceID> +
-        <rasd:ResourceSubType>PIIX4</rasd:ResourceSubType> +
-        <rasd:ResourceType>5</rasd:ResourceType> +
-      </Item> +
-      <Item> +
-        <rasd:Address>1</rasd:Address> +
-        <rasd:Caption>ideController1</rasd:Caption> +
-        <rasd:Description>IDE Controller</rasd:Description> +
-        <rasd:ElementName>ideController1</rasd:ElementName> +
-        <rasd:InstanceID>4</rasd:InstanceID> +
-        <rasd:ResourceSubType>PIIX4</rasd:ResourceSubType> +
-        <rasd:ResourceType>5</rasd:ResourceType> +
-      </Item> +
-      <Item> +
-        <rasd:Address>0</rasd:Address> +
-        <rasd:Caption>sataController0</rasd:Caption> +
-        <rasd:Description>SATA Controller</rasd:Description> +
-        <rasd:ElementName>sataController0</rasd:ElementName> +
-        <rasd:InstanceID>5</rasd:InstanceID> +
-        <rasd:ResourceSubType>AHCI</rasd:ResourceSubType> +
-        <rasd:ResourceType>20</rasd:ResourceType> +
-      </Item> +
-      <Item> +
-        <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation> +
-        <rasd:Caption>Ethernet adapter on 'Bridged'</rasd:Caption> +
-        <rasd:Connection>Bridged</rasd:Connection> +
-        <rasd:ElementName>Ethernet adapter on 'Bridged'</rasd:ElementName> +
-        <rasd:InstanceID>6</rasd:InstanceID> +
-        <rasd:ResourceSubType>E1000</rasd:ResourceSubType> +
-        <rasd:ResourceType>10</rasd:ResourceType> +
-      </Item> +
-      <Item> +
-        <rasd:Address>0</rasd:Address> +
-        <rasd:Caption>usb</rasd:Caption> +
-        <rasd:Description>USB Controller</rasd:Description> +
-        <rasd:ElementName>usb</rasd:ElementName> +
-        <rasd:InstanceID>7</rasd:InstanceID> +
-        <rasd:ResourceType>23</rasd:ResourceType> +
-      </Item> +
-      <Item> +
-        <rasd:AddressOnParent>3</rasd:AddressOnParent> +
-        <rasd:AutomaticAllocation>false</rasd:AutomaticAllocation> +
-        <rasd:Caption>sound</rasd:Caption> +
-        <rasd:Description>Sound Card</rasd:Description> +
-        <rasd:ElementName>sound</rasd:ElementName> +
-        <rasd:InstanceID>8</rasd:InstanceID> +
-        <rasd:ResourceSubType>ensoniq1371</rasd:ResourceSubType> +
-        <rasd:ResourceType>35</rasd:ResourceType> +
-      </Item> +
-      <Item> +
-        <rasd:AddressOnParent>0</rasd:AddressOnParent> +
-        <rasd:AutomaticAllocation>true</rasd:AutomaticAllocation> +
-        <rasd:Caption>cdrom1</rasd:Caption> +
-        <rasd:Description>CD-ROM Drive</rasd:Description> +
-        <rasd:ElementName>cdrom1</rasd:ElementName> +
-        <rasd:InstanceID>9</rasd:InstanceID> +
-        <rasd:Parent>4</rasd:Parent> +
-        <rasd:ResourceType>15</rasd:ResourceType> +
-      </Item> +
-      <Item> +
-        <rasd:AddressOnParent>0</rasd:AddressOnParent> +
-        <rasd:Caption>disk1</rasd:Caption> +
-        <rasd:Description>Disk Image</rasd:Description> +
-        <rasd:ElementName>disk1</rasd:ElementName> +
-        <rasd:HostResource>/disk/vmdisk1</rasd:HostResource> +
-        <rasd:InstanceID>10</rasd:InstanceID> +
-        <rasd:Parent>5</rasd:Parent> +
-        <rasd:ResourceType>17</rasd:ResourceType> +
-      </Item> +
-    </VirtualHardwareSection> +
-    <vbox:Machine ovf:required="false" version="1.12-linux" uuid="{4c393e19-4cde-4825-8abc-75c192f360b2}" name="CentOS" OSType="GeronimoLOL" snapshotFolder="Snapshots" lastStateChange="2012-11-08T14:57:10Z"> +
-      <ovf:Info>Complete VirtualBox machine configuration in VirtualBox format</ovf:Info> +
-      <ExtraData> +
-        <ExtraDataItem name="GUI/LastGuestSizeHint" value="720,400"/> +
-        <ExtraDataItem name="GUI/LastNormalWindowPosition" value="363,197,720,444"/> +
-        <ExtraDataItem name="GUI/MiniToolBarAlignment" value="bottom"/> +
-        <ExtraDataItem name="GUI/SaveMountedAtRuntime" value="yes"/> +
-        <ExtraDataItem name="GUI/ShowMiniToolBar" value="yes"/> +
-      </ExtraData> +
-      <Hardware version="2"> +
-        <CPU count="1" hotplug="false"> +
-          <HardwareVirtEx enabled="true" exclusive="true"/> +
-          <HardwareVirtExNestedPaging enabled="true"/> +
-          <HardwareVirtExVPID enabled="true"/> +
-          <PAE enabled="true"/> +
-          <HardwareVirtExLargePages enabled="false"/> +
-          <HardwareVirtForce enabled="false"/> +
-        </CPU> +
-        <Memory RAMSize="512" PageFusion="false"/> +
-        <HID Pointing="PS2Mouse" Keyboard="PS2Keyboard"/> +
-        <HPET enabled="false"/> +
-        <Chipset type="PIIX3"/> +
-        <Boot> +
-          <Order position="1" device="Floppy"/> +
-          <Order position="2" device="DVD"/> +
-          <Order position="3" device="HardDisk"/> +
-          <Order position="4" device="None"/> +
-        </Boot> +
-        <Display VRAMSize="32" monitorCount="1" accelerate3D="false" accelerate2DVideo="false"/> +
-        <RemoteDisplay enabled="false" authType="Null" authTimeout="5000"> +
-          <VRDEProperties> +
-            <Property name="TCP/Ports" value="3389"/> +
-          </VRDEProperties> +
-        </RemoteDisplay> +
-        <BIOS> +
-          <ACPI enabled="true"/> +
-          <IOAPIC enabled="true"/> +
-          <Logo fadeIn="true" fadeOut="true" displayTime="0"/> +
-          <BootMenu mode="MessageAndMenu"/> +
-          <TimeOffset value="0"/> +
-          <PXEDebug enabled="false"/> +
-        </BIOS> +
-        <USBController enabled="true" enabledEhci="true"/> +
-        <Network> +
-          <Adapter slot="0" enabled="true" MACAddress="080027A463E7" cable="true" speed="0" type="82540EM"> +
-            <DisabledModes> +
-              <NAT> +
-                <DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/> +
-                <Alias logging="false" proxy-only="false" use-same-ports="false"/> +
-              </NAT> +
-            </DisabledModes> +
-            <BridgedInterface name="eth0"/> +
-          </Adapter> +
-          <Adapter slot="1" enabled="false" MACAddress="080027CA0E73" cable="true" speed="0" type="82540EM"> +
-            <DisabledModes> +
-              <NAT> +
-                <DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/> +
-                <Alias logging="false" proxy-only="false" use-same-ports="false"/> +
-              </NAT> +
-            </DisabledModes> +
-          </Adapter> +
-          <Adapter slot="2" enabled="false" MACAddress="080027BEDB04" cable="true" speed="0" type="82540EM"> +
-            <DisabledModes> +
-              <NAT> +
-                <DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/> +
-                <Alias logging="false" proxy-only="false" use-same-ports="false"/> +
-              </NAT> +
-            </DisabledModes> +
-          </Adapter> +
-          <Adapter slot="3" enabled="false" MACAddress="0800273DBDA9" cable="true" speed="0" type="82540EM"> +
-            <DisabledModes> +
-              <NAT> +
-                <DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/> +
-                <Alias logging="false" proxy-only="false" use-same-ports="false"/> +
-              </NAT> +
-            </DisabledModes> +
-          </Adapter> +
-          <Adapter slot="4" enabled="false" MACAddress="0800276A9BED" cable="true" speed="0" type="82540EM"> +
-            <DisabledModes> +
-              <NAT> +
-                <DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/> +
-                <Alias logging="false" proxy-only="false" use-same-ports="false"/> +
-              </NAT> +
-            </DisabledModes> +
-          </Adapter> +
-          <Adapter slot="5" enabled="false" MACAddress="08002707D3E0" cable="true" speed="0" type="82540EM"> +
-            <DisabledModes> +
-              <NAT> +
-                <DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/> +
-                <Alias logging="false" proxy-only="false" use-same-ports="false"/> +
-              </NAT> +
-            </DisabledModes> +
-          </Adapter> +
-          <Adapter slot="6" enabled="false" MACAddress="080027769CDE" cable="true" speed="0" type="82540EM"> +
-            <DisabledModes> +
-              <NAT> +
-                <DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/> +
-                <Alias logging="false" proxy-only="false" use-same-ports="false"/> +
-              </NAT> +
-            </DisabledModes> +
-          </Adapter> +
-          <Adapter slot="7" enabled="false" MACAddress="08002798549A" cable="true" speed="0" type="82540EM"> +
-            <DisabledModes> +
-              <NAT> +
-                <DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/> +
-                <Alias logging="false" proxy-only="false" use-same-ports="false"/> +
-              </NAT> +
-            </DisabledModes> +
-          </Adapter> +
-        </Network> +
-        <UART> +
-          <Port slot="0" enabled="false" IOBase="0x3f8" IRQ="4" hostMode="Disconnected"/> +
-          <Port slot="1" enabled="false" IOBase="0x2f8" IRQ="3" hostMode="Disconnected"/> +
-        </UART> +
-        <LPT> +
-          <Port slot="0" enabled="false" IOBase="0x378" IRQ="4"/> +
-          <Port slot="1" enabled="false" IOBase="0x378" IRQ="4"/> +
-        </LPT> +
-        <AudioAdapter controller="AC97" driver="Pulse" enabled="true"/> +
-        <RTC localOrUTC="UTC"/> +
-        <SharedFolders/> +
-        <Clipboard mode="Disabled"/> +
-        <IO> +
-          <IoCache enabled="true" size="5"/> +
-          <BandwidthGroups/> +
-        </IO> +
-        <HostPci> +
-          <Devices/> +
-        </HostPci> +
-        <EmulatedUSB> +
-          <CardReader enabled="false"/> +
-        </EmulatedUSB> +
-        <Guest memoryBalloonSize="0"/> +
-        <GuestProperties/> +
-      </Hardware> +
-      <StorageControllers> +
-        <StorageController name="Controller IDE" type="PIIX4" PortCount="2" useHostIOCache="true" Bootable="true"> +
-          <AttachedDevice passthrough="false" type="DVD" port="1" device="0"/> +
-        </StorageController> +
-        <StorageController name="Controller SATA" type="AHCI" PortCount="1" useHostIOCache="false" Bootable="true" IDE0MasterEmulationPort="0" IDE0SlaveEmulationPort="1" IDE1MasterEmulationPort="2" IDE1SlaveEmulationPort="3"> +
-          <AttachedDevice type="HardDisk" port="0" device="0"> +
-            <Image uuid="{656d2cbe-8ed8-4fb2-99fd-c803d50d57d3}"/> +
-          </AttachedDevice> +
-        </StorageController> +
-      </StorageControllers> +
-    </vbox:Machine> +
-  </VirtualSystem> +
-</Envelope> +
-''+
  
 ==== Cosa è un manifesto ==== ==== Cosa è un manifesto ====
Linea 330: Linea 60:
 Un esempio: Un esempio:
  
-''SHA1 (Mageia01.ovf)= 5091b321c361f76c39b5d988947258e1741424aa +{{:doc:centos_mf.txt|manifest di una vm mageia}}
-SHA1 (Mageia01-disk1.vmdk)= 7b1e10f19b182a375f21b473abafeee9036e0fbd''+
  
 +==== Come estraggo il contenuto da un file OVA? ====
 +
 +Trattandosi di un tarball sarà sufficiente usare il comando come segue:
 +
 +''tar -xf file.ova''
 ===== La soluzione ===== ===== La soluzione =====
  
 +La soluzione è piuttosto semplice, se si sa dove mettere le mani.
 +
 +In particolare focalizzeremo la nostra attenzione sul file OVF trascurando in questa occasione il manifest.
 +
 +Una volta estratto il contenuto del file OVA, come indicato poco più sopra, aprite con un editor di testo l'//OVF// ed utilizzando la funzione di ricerca trovate le occorrenze di ''Mageia'' (o ''Mageia_64'' se la vostra macchina virtuale è a 64bit).
 +
 +L'attributo chiave da //sistemare// è **OSType** in quanto il VirtualBox distribuito in forma binaria da Oracle lo leggerà e trovandovi all'interno Mageia ci restituirà l'errore citato precedentemente.
 +
 +Procedete quindi a sostituire le occorrenze di ''OSType="Mageia"'' con ''OSType="Mandriva"'', dal momento che quest'ultima -//storicamente più nota//- viene riconosciuta correttamente sia da VirtualBox che da VirtualBox-OSE. Salvate quindi il file e chiudetelo.
 +
 +**Finito!** Potete ora procedere all'importazione della vostra applicazione virtuale Mageia importando il file OVF appena corretto, facendo credere a VirtualBox di importare Mandriva.
  
 +**NOTA BENE:**  //il parametro OSType non è del tutto inutile e il suo contenuto dovrebbe rispecchiare la distribuzione realmente installata nei dischi virtuali, in quanto VirtualBox opererà alcune ottimizzazioni (spesso però di scarsissima rilevanza). Non è colpa nostra però se VirtualBox non aggiunge il supporto a Mageia ;-) //
doc/vbox_import_export_ova_issue.1354317858.txt.gz · Ultima modifica: 2019/01/27 10:39 (modifica esterna)