一般我们在使用 KVM/QEMU 虚拟机时,都是需要创建一个 block 设备,然后格式化成文件系统作为里面的主文件系统(rootfs)来使用的。但这里有个问题,就是在创建设备文件时,需要预先设定该 block 设备的大小,一旦设置好,在使用过程中如果发现空间不足需要扩容,修改起来就不是那么方便了。 使用虚拟机的另一个问题就是怎么便捷地与宿主机交换文件,通常情况下会使用 nfs/smb 这些网络文件系统协议,但这需要先部署它们 才能使用,没办法做到开箱即用。 通过搜索发现有两种方案可以实现共享宿主机的目录给虚拟机用,分别是 virtio-fs 和 9pfs,virtio-fs 需要先启动 virtfsd 服务,通过 libvirt 来启动虚拟机时如果配置了共享目录,会自动启动该服务,但通过 qemu 直接启动虚拟时就需要手动启动 virtfsd 了。而 9pfs 则没有这个问题,是 qemu 内置支持的,