fstab中的libvirt / 9p / kvm安装在引导时无法安装


18

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

fstab行:

src_mnt /src 9p trans=virtio 0 0

从dmesg我可以看到:

[    7.606258] 9p: Could not find request transport: virtio

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

Answers:


24

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

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

9p
9pnet
9pnet_virtio

然后:

sudo update-initramfs -u

谢谢-我认为可以合理地说这是ideal解决方案。问题是在文件系统挂载期间未挂载模块,您的解决方案是将其添加到在挂载时加载的模块列表中。
格雷格,

为什么这样理想?
林德

4

在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 

已在openSUSE 13.2的qemu / KVM上的Ubuntu 14.04 guest虚拟机上进行测试。


蒂姆,您好,欢迎访问该网站。请记住,答案的顺序可以通过社区投票和用户偏好来改变,因此请尽量始终明确指出您所指的答案。我已经在您的帖子中修复了此问题;请将来自己这样做。谢谢!
CVn 2015年

这也适用于ubuntu 16.04。
stalet

这也适用于Ubuntu 18.04
jackkamm

1

这里的问题是如何在主机上设置virtio安装。有两种方法可以解决此问题。

解决方案1:使用映射而不是传输

<filesystem type='mount' accessmode='mapped'>
  <source dir='/src_dir'/>
  <target dir='src'/>
</filesystem>

这可行,但是所有文件将由运行libvirt的用户拥有。这不适用于tmp或日志文件系统。

解决方案2:以root用户身份运行libvirt并使用直通

vi /etc/libvirt/qemu.conf

然后取消注释或添加:

user=root
group=root

重新引导主机或重新启动所有libvirt和qemu / kvm进程,并使用passthrough:

<filesystem type='mount' accessmode='passthrough'>
  <source dir='/src_dir'/>
  <target dir='src'/>
</filesystem>

尽管可能会对主机造成一定的安全影响,但这会使主机上的文件uid:gid与来宾上的文件相同,这对于日志和tmp文件系统非常有效。这恰好是我在这种情况下要做的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.