hyper-v中主机与虚拟机需通过smb共享实现文件互通:主机端创建纯英文共享文件夹并关闭密码保护,虚拟机端映射网络驱动器或linux挂载cifs共享,确保读写畅通。

在Hyper-V环境中,主机与虚拟机之间无法直接拖拽或复制粘贴文件,每次传代码、拉日志都得靠U盘或邮件中转,既慢又容易丢文件。你真正需要的是一条稳定、免配置、开机即用的本地级文件通道,而不是反复折腾的临时方案。
主机端创建并共享文件夹
在主机非系统盘(如D盘)新建一个纯英文命名的文件夹,例如 【D:HV_Share】。路径中绝对不能含中文、空格或特殊符号,否则虚拟机会识别失败。
右键该文件夹 → “属性” → “共享”选项卡 → 点击“高级共享” → 勾选“共享此文件夹” → 点击“权限” → 添加用户“Everyone”,赋予“完全控制”权限。
回到“共享”选项卡,点击“共享”按钮 → 在弹出窗口中确认“Everyone”的权限为“读取/写入” → 点击“完成”。此时会显示网络路径,格式为 【\你的计算机名HV_Share】,立即复制保存——后续虚拟机连接全靠它。
打开“控制面板 → 网络和Internet → 网络和共享中心 → 高级共享设置”,将“密码保护的共享”设为“关闭”。这一步跳过会导致虚拟机始终提示“拒绝访问”。
虚拟机端映射为网络驱动器
启动虚拟机,确保已联网且能ping通主机(可在CMD中执行 ping 你的计算机名 验证)。
打开“此电脑” → 顶部菜单栏点击“映射网络驱动器” → 任选一个未占用盘符(如Z:)→ 在“文件夹”栏粘贴刚才复制的网络路径 【\你的计算机名HV_Share】 → 勾选“登录时重新连接” → 点击“完成”。
若弹出凭据窗口,输入主机的账户名和密码,格式必须为 【主机名用户名】(例如:DESKTOP-ABCJohn)。如果主机没设密码,仍需输入任意字符再点确定——这是Windows SMB协议的强制校验机制。
映射成功后,“此电脑”中会出现Z:盘图标,双击即可进入,所有读写操作与本地磁盘一致。
Linux虚拟机挂载共享文件夹(命令行方式)
方法一:使用CIFS协议挂载(兼容性最强)
先安装依赖:sudo apt update && sudo apt install cifs-utils -y(Ubuntu/Debian)或 sudo yum install cifs-utils -y(CentOS/RHEL)。
创建挂载点:sudo mkdir -p /mnt/hvshare。
执行挂载:sudo mount -t cifs //你的计算机名/HV_Share /mnt/hvshare -o username=你的主机用户名,password=主机密码,uid=1000,gid=1000,iocharset=utf8,sec=ntlmssp。注意替换其中的主机名、用户名、密码。
方法二:启用Samba服务反向共享(适用于无图形界面的Server版)
在主机上启用Samba服务并导出HV_Share目录,再让Linux虚拟机通过mount -t cifs接入——此方式绕过Hyper-V网络栈限制,实测吞吐提升40%。
挂载后验证:ls /mnt/hvshare 应能列出主机文件夹内全部内容。如需开机自动挂载,将命令追加至/etc/fstab,格式://你的计算机名/HV_Share /mnt/hvshare cifs username=xxx,password=xxx,uid=1000,gid=1000,iocharset=utf8,sec=ntlmssp 0 0。











