qemu-kvm宿主机和客户机之间的文件共享

本文介绍了在qemu-kvm环境中,如何便捷地实现宿主机与客户机之间的文件共享。通过使用dd创建文件桥接,附加到虚拟机作为硬盘,并在虚拟机内部挂载该硬盘来实现共享。详细步骤包括创建共享文件、启动qemu-kvm并挂载硬盘。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在虚拟机环境下,我们可能会遇到在宿主机和客户机之间传输文件的需求,目前有几种方法可以实现这个例如通过9p协议,或者为客户机和宿主机之间搭建一个网络等。这些都太不容易实现,下面我介绍一种简单的方法。

1. 使用dd创建一个文件,作为虚拟机和宿主机之间传输桥梁

dd if=/dev/zero of=/var/lib/libvirt/images/share.img bs=1M count=350
2. 格式化share.img文件
### 实现Proxmox VE虚拟机主机之间的文件或数据复制 在 Proxmox VE (PVE) 中,可以通过多种方法实现虚拟机主机之间的文件或数据复制。以下是几种常见的方法及其具体操作: #### 1. 使用 `scp` 或 `rsync` 通过 SSH 协议可以方便地在虚拟机宿主机之间传输文件。如果启用了 QEMU Guest Agent,则可以直接访问虚拟机内部的文件系统。 - **从宿主机虚拟机发送文件** 假设虚拟机 IP 地址为 `192.168.1.100`,用户名为 `root`,则命令如下: ```bash scp /path/to/file root@192.168.1.100:/destination/path/ ``` - **从虚拟机宿主机接收文件** 同样,在宿主机上执行以下命令即可: ```bash scp root@192.168.1.100:/source/path/file /local/destination/path/ ``` 此方式适用于任何支持 SSH 的环境,并且能够保持较高的安全性[^4]。 #### 2. 利用共享目录(NFS/CIFS/Samba) 为了更高效地管理传递大量数据,可以在宿主机设置一个网络文件系统供虚拟机挂载使用。 - **配置 NFS 共享** 宿主机作为服务器端需编辑 `/etc/exports` 文件并重启服务: ```bash echo "/shared/folder *(rw,sync,no_subtree_check)" >> /etc/exports exportfs -ra systemctl restart nfs-kernel-server ``` 接着让目标 VM 挂载该路径: ```bash mount -t nfs <host-ip>:/shared/folder /mnt/nfs_share ``` 这种方法特别适合长期协作项目中的资源共享需求[^5]。 #### 3. 应用 VirtIO-FS 功能 VirtIO-FS 是一种新型高性能机制允许直接暴露本地存储给 KVM/QEMU 虚拟客户操作系统读取而不必经过传统 I/O 层次结构转换过程。它提供了接近裸设备性能的同时还保留了灵活性优势。 要启用 virtio-fs ,首先确认内核版本兼容性以及相关模块加载情况;其次按照官方文档指导完成相应参数设定工作流[^6]。 --- ```python # 示例 Python 脚本展示如何调用 subprocess 执行 SCP 复制任务 import subprocess def copy_file_to_vm(local_path, remote_user, remote_ip, remote_dest): command = f&#39;scp {local_path} {remote_user}@{remote_ip}:{remote_dest}&#39; result = subprocess.run(command.split(), stdout=subprocess.PIPE, stderr=subprocess.PIPE) if result.returncode != 0: raise Exception(f&#39;Error copying file: {result.stderr.decode()}&#39;) copy_file_to_vm(&#39;/tmp/testfile&#39;, &#39;root&#39;, &#39;192.168.1.100&#39;, &#39;/root/&#39;) ``` --- #### 总结 以上介绍了三种主要途径来达成 PVE 平台上虚实两界间的资料交流目的。每种方案各有侧重领域适用场景,请依据实际业务特性选取最合适的手段加以实施应用。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值