fstab 中的 libvirt/9p/kvm 挂载无法在启动时挂载

edA*_*a-y 21 mount linux-kvm virtio

我正在尝试使用 qemu-kvm/9p 挂载一个共享文件夹,如果我将它添加到 fstab 文件中,它将无法工作。我在启动时收到一个错误,提示无法挂载设备,但是在启动后,如果我运行“mount -a”,设备将被挂载。

fstab 行:

src_mnt /src 9p trans=virtio 0 0
Run Code Online (Sandbox Code Playgroud)

从 dmesg 我可以看到:

[    7.606258] 9p: Could not find request transport: virtio
Run Code Online (Sandbox Code Playgroud)

几行之后,我看到了“virtio-pci”条目。但是,我不清楚如何推迟安装,直到该设备可用。

小智 26

不知道这是否是理想的解决方案,但在 Ubuntu 12.04 来宾上,我通过将 9p 模块添加到 initramfs 使其工作。

添加到 /etc/initramfs-tools/modules:

9p
9pnet
9pnet_virtio
Run Code Online (Sandbox Code Playgroud)

然后:

sudo update-initramfs -u
Run Code Online (Sandbox Code Playgroud)


小智 7

在 2020 年,将挂载延迟到我们可以访问9p模块的更好方法/lib/modules是添加_netdev作为挂载参数:

/data   /data   9p  trans=virtio,rw,_netdev 0   0
Run Code Online (Sandbox Code Playgroud)


小智 5

在 Ubuntu 14.04 上,只有9pnet_virtio模块需要按照bhassel 的回答进行预加载。

引用前几行的 dmesg 显示其他两个已经加载但找不到所需的传输。

[ 1.370611] 9pnet: Installing 9P2000 support 
[ 1.376384] 9p: Installing v9fs 9p2000 file system support 
[ 1.376754] 9pnet: Could not find request transport: virtio 
Run Code Online (Sandbox Code Playgroud)

在 openSUSE 13.2 上的 qemu/KVM 上使用 Ubuntu 14.04 来宾进行测试。