You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 24.04虚拟机无法正常使用QEMU/KVM virtio passthrough文件系统共享,其他虚拟机正常

Ubuntu 24.04虚拟机无法正常使用QEMU/KVM virtio passthrough文件系统共享,其他虚拟机正常

我最近碰到了个挺棘手的问题:主机是Ubuntu 20.04,跑着5台虚拟机,其中Ubuntu 20.04、22.04,以及Fedora 39、40都能正常用virtio文件系统共享目录,唯独Ubuntu 24.04出了问题。

先给大家说下我的配置情况,所有虚拟机的主机端libvirt XML配置都完全一致:

<filesystem type="mount" accessmode="passthrough">
  <driver type="path" wrpolicy="immediate"/>
  <source dir="/mnt/sda1/VM_data"/>
  <target dir="VM_data"/>
  <address type="pci" domain="0x0000" bus="0x06" slot="0x00" function="0x0"/>
</filesystem>

每台虚拟机里也都在/etc/fstab里加了相同的挂载配置:

/VM_data   /home/<user>/host_data   9p  trans=virtio,rw,_netdev 0   0

其他四台虚拟机都没问题——共享目录显示正常,主机和虚拟机之间的读写操作能实时同步。但Ubuntu 24.04就很奇怪:虚拟机里的/home/<user>/host_data是空目录,不管在主机还是虚拟机里往这个目录写内容,两边都看不到对方的修改,完全没实现共享效果。

可能的排查和解决方向

针对Ubuntu 24.04的这个问题,你可以试试这些步骤:

  1. 检查9p相关内核模块是否加载
    在Ubuntu 24.04虚拟机里执行lsmod | grep 9p,看看有没有9p和9p_virtio这两个模块。如果没有,手动加载试试:

    sudo modprobe 9p 9p_virtio
    

    要是加载后能正常工作了,记得把这两个模块加到自动加载列表里,避免重启后失效:

    echo -e "9p\n9p_virtio" | sudo tee /etc/modules-load.d/9p.conf
    
  2. 调整fstab挂载参数
    Ubuntu 24.04的9p驱动可能对参数更敏感,试试修改fstab里的挂载选项:

    • 先去掉_netdev参数,这个参数原本是针对网络文件系统的,9p virtio其实不需要
    • 或者添加cache=loose参数,调整缓存策略
      修改后的fstab行大概是这样:
    /VM_data   /home/<user>/host_data   9p  trans=virtio,rw,cache=loose 0   0
    

    修改后执行sudo mount -a重新挂载,看看是否生效。

  3. 检查共享目录的权限
    确认主机上/mnt/sda1/VM_data的权限设置,确保虚拟机用户有足够的读写权限。可以先临时把权限改成777测试:

    sudo chmod 777 /mnt/sda1/VM_data
    

    如果这样能正常工作,再根据实际需求调整更严格的权限和用户组设置。

  4. 查看系统日志找错误信息

    • 在Ubuntu 24.04虚拟机里执行dmesg | grep 9p,看看有没有9p驱动相关的报错
    • 主机端查看libvirt或QEMU的日志(通常在/var/log/libvirt/qemu/目录下),找和该虚拟机相关的错误信息,这些日志能帮你定位具体的问题原因
  5. 调整libvirt XML里的共享配置
    试试修改XML里的accessmode参数,从passthrough改成mapped,或者调整wrpolicy为writeback,然后重启虚拟机测试:

    <filesystem type="mount" accessmode="mapped">
      <driver type="path" wrpolicy="writeback"/>
      <source dir="/mnt/sda1/VM_data"/>
      <target dir="VM_data"/>
      <address type="pci" domain="0x0000" bus="0x06" slot="0x00" function="0x0"/>
    </filesystem>
    

备注:内容来源于stack exchange,提问作者Mlocik97

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 07:28:07