1. 程式人生 > >qemu-kvm虛擬機器與宿主機之間簡單檔案傳輸方法

qemu-kvm虛擬機器與宿主機之間簡單檔案傳輸方法

 qemu-kvm虛擬機器與宿主機之間實現檔案傳輸,大概兩類方法:
1. 虛擬機器與宿主機之間,使用網路來進行檔案傳輸。這個需要先在宿主機上配置網路橋架,在qemu-kvm啟動配置網絡卡就可以實現檔案傳輸。
2. 使用9psetup協議實現虛擬機器與宿主機之間檔案傳輸。該方法先要宿主機需要在核心中配置了9p選項,即:
     CONFIG_NET_9P=y
     CONFIG_net_9P_VIRTIO=y
     CONFIG_NET_9P_DEBUG=y (可選項)
     CONFIG_9P_FS=y
     CONFIG_9P_FS_POSIX_ACL=y
另外,qemu在編譯時需要支援ATTR/XATTR。

綜上,兩類方法配置起來都比較麻煩。
這個地方,提供一種簡單的方法,實現簡單的虛擬機器和宿主機之間的檔案傳輸
1. 使用dd建立一個檔案,作為虛擬機器和宿主機之間傳輸橋樑
 dd if=/dev/zero of=/opt/share.img bs=1M count=200
2. 格式化share.img檔案
  mkfs.ext4 /opt/share.img
3. 在宿主機上建立一個資料夾,
   mkdir /tmp/share
   mount -o loop /opt/share.img /tmp/share
這樣,在宿主機上把需要傳輸給虛擬機器的檔案放到/tmp/share 下即可。
4. 啟動qemu-kvm虛擬機器,新增上/opt/share.img檔案。
5. 在虛擬機器中 mount上新增的一塊硬碟。即可以獲得宿主機上放在/tmp/share資料夾下的檔案

該方法的缺點:
     宿主機和虛擬機器檔案傳輸不能實時傳輸。如果需要傳輸新檔案,需要重啟虛擬機器。