Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3754659
  • 博文数量: 880
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 6155
  • 用 户 组: 普通用户
  • 注册时间: 2016-11-11 09:12
个人简介

To be a better coder

文章分类

全部博文(880)

文章存档

2022年(5)

2021年(60)

2020年(175)

2019年(207)

2018年(210)

2017年(142)

2016年(81)

分类: LINUX

2021-10-15 14:04:06

在虚拟机环境下,我们可能会遇到在宿主机和客户机之间传输文件的需求,目前有几种方法可以实现这个例如通过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/   

当然,该方法虽然简单,但它也有缺点:
     宿主机和虚拟机文件传输不能实时传输。如果需要传输新文件,需要重启虚拟机。
————————————————
版权声明:本文为CSDN博主「瞧见风」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/scaleqiao/article/details/45197093



https://blog.csdn.net/wangyangzhizunwudi/article/details/104441861/
qemu编译增加选项:
./configure --enable-kvm --enable-virtfs --prefix=/opt/software/toolchain/qemu

1sudo yum install -y libcap-devel 2sudo yum install -y libattr-devel

内核配置:
1CONFIG_NET_9P=y 2CONFIG_9P_FS=y 3CONFIG_VIRTIO_PCI=y 4CONFIG_NET_9P_VIRTIO=y 5CONFIG_9P_FS_POSIX_ACL=y 6CONFIG_NET_9P_DEBUG=y (Optional可选)


 
 


客户机端挂载
mount -t 9p -o trans=virtio [mount tag] [mount point] -oversion=9p2000.L
阅读(4770) | 评论(0) | 转发(0) |
0

上一篇:kvm的动态迁移

下一篇:kvm之ksm内存合并

给主人留下些什么吧!~~