XVA(Xen Virtual Appliance)的格式其實很簡單,就是一個tar檔案,我們可以用file指令來檢查其檔案類型。
# file lochdns-2.0.2-x86_64.xva
lochdns-2.0.2-x86_64.xva: POSIX tar archive
這個包中主要包含以下檔案,還是以上面的這個檔案為例子:
# tar tvf lochdns-2.0.2-x86_64.xva
-rw-r--r-- root/root 527 2009-01-29 10:32:10 ova.xml
-rw-r--r-- root/root 130688573 2009-01-29 10:32:16 xvda/chunk-000000000.gz
-rw-r--r-- root/root 18074944 2009-01-29 10:32:28 xvda/chunk-000000001.gz
ova.xml檔案是關于虛拟機的中繼資料,主要包括記憶體資訊,磁盤資訊等。上面這個例子中ova.xml的檔案内容如下:
<?xml version="1.0" ?>
<appliance version="0.1">
<vm name="vm">
<label>lochDNS Appliance</label>
<shortdesc>Created by rPath rBuilder</shortdesc>
<config mem_set="134217728" vcpus="1"/>
<hacks is_hvm="false" kernel_boot_cmdline="root=/dev/xvda1 ro ">
</hacks>
<vbd device="xvda" function="root" mode="w" vdi="vdi_xvda" />
</vm>
<vdi name="vdi_xvda" size="1209729024" source="file://xvda" type="dir-gzipped-chunks" variety="system" />
</appliance>
xvda目錄下面的檔案則代表這個虛拟機的磁盤映像。 整個虛拟機磁盤被劃分成1000000000大小的塊,每個塊存到一個檔案中,檔案名則從000000000開始順序遞增。每個檔案都用gzip進行了壓縮。另外需要注意的一點是,如果一個檔案中沒有任何資料(即對應虛拟機磁盤上某個部分有個“空洞”,即全部是0x0),則這個檔案不會被建立,其序号也會被跳過。比如,xvda目錄下有如下兩個檔案chunk-000000000.gz, chunk-0000000002.gz則表示磁盤上1000000001至2000000000處全部為0x0,是以這個檔案就不需建立。這麼做主要是出于節省空間的考慮。
可以用dd将xva中的檔案系統複制到實體磁盤上,做法就是将xvda目錄下的檔案解壓縮後順序dd到目标磁盤上即可,當然要注意磁盤中間有空洞的情況,dd的時候也需要相應的跳過(skip)。
本文來自CSDN部落格,轉載請标明出處:http://blog.csdn.net/linaxing/archive/2009/02/10/3873886.aspx