1. 程式人生 > >qemu-kvm宿主機和客戶機之間的檔案共享

qemu-kvm宿主機和客戶機之間的檔案共享

在虛擬機器環境下,我們可能會遇到在宿主機和客戶機之間傳輸檔案的需求,目前有幾種方法可以實現這個例如通過9p協議,或者為客戶機和宿主機之間搭建一個網路等。這些都太不容易實現,下面我介紹一種簡單的方法。

1. 使用dd建立一個檔案,作為虛擬機器和宿主機之間傳輸橋樑

dd if=/dev/zero of=/var/lib/libvirt/images/share.img bs=1M count=350
2. 格式化share.img檔案
mkfs.ext4/var/lib/libvirt/images/share.img
3. 在宿主機上建立一個資料夾,
mkdir /tmp/share
mount -o loop/var/lib/libvirt/images/
share.img /tmp/share

這樣,在宿主機上把需要傳輸給虛擬機器的檔案放到/tmp/share 下即可。

4. 啟動qemu-kvm虛擬機器,可以額外為客戶機新增上一塊硬碟。

-drive file=/var/lib/libvirt/images/share.img,if=virtio

5. 在虛擬機器中 mount上新增的一塊硬碟。即可以獲得宿主機上放在/tmp/share資料夾下的檔案,具體做法是:通過dmesg的輸出找到新掛在的硬碟是什麼,然後將硬碟直接mount上來。

mount -t ext4 /dev/vdb /mnt/   

當然,該方法雖然簡單,但它也有缺點:
     宿主機和虛擬機器檔案傳輸不能實時傳輸。如果需要傳輸新檔案,需要重啟虛擬機器。