guest和host共享目录
qemu编译配置
--enable-virtfs
内核的配置
开启guest内核配置选项
CONFIG_NET_9P=y
CONFIG_NET_9P_VIRTIO=y
CONFIG_NET_9P_DEBUG=y (Optional)
CONFIG_9P_FS=y //如果是m的话需要insmod 9p.ko才可以写权限
CONFIG_9P_FS_POSIX_ACL=y
CONFIG_PCI=y
CONFIG_VIRTIO_PCI=y
还有一些
CONFIG_PCI_HOST_GENERIC=y (only needed for the QEMU Arm 'virt' board)
编译安装完成后在龙芯平台使用过程如下:
1、点击左下角添加硬件
2、选择Filesystem
选择驱动程序
模式
源路径(在host主机的path)
目标路径(mount_tag)
如下图
3、example 上图
比如我的测试源路径是/home/loongson/host_guest_share
目标路径(mount_tag)hostfiles
4、启动虚拟机挂载
具体挂在用法
mount -t 9p -o trans=virtio [mount tag] [mount point] -oversion=9p2000.L
mount -t 9p -o trans=virtio,version=9p2000.L hostfiles /mnt
测试结果如下能看到主机文件
host里的文件
[root@localhost host_guest_share]# ls -l
总用量 16
-rw------- 1 qemu qemu 36 2月 22 11:21 guest_create.c
-rw------- 1 qemu qemu 48 2月 22 11:17 hello_9p.c
-rw------- 1 qemu qemu 35 2月 22 11:22 host_create.c
[root@localhost host_guest_share]#
guest mnt里的文件
注意:mapped模式 host 或者root用户创建后 guest 的root用户可以读写
[root@localhost mnt]# sync //写完之后记得同步一下
测试1、:guest 创建文件 host和guest 读写
guest 操作 创建文件并写入
[root@localhost mnt]# touch guset_create.c
[root@localhost mnt]# echo "guest create" >> guset_create.c
[root@localhost mnt]# ls -l
总用量 8
-rw-r--r-- 1 root root 13 2月 22 11:35 guset_create.c
[root@localhost mnt]# cat guset_create.c
guest create
host操作 读文件并写入
[root@localhost host_guest_share]# ls -l guset_create.c
-rw------- 1 qemu qemu 13 2月 22 11:35 guset_create.c
[root@localhost host_guest_share]# cat guset_create.c
guest create
[root@localhost host_guest_share]# echo "host write" >> guset_create.c
[root@localhost host_guest_share]# cat guset_create.c
guest create
host write
guest操作 读文件再次写入
[root@localhost mnt]# cat guset_create.c
guest create
host write
[root@localhost mnt]# echo "guest write" >> guset_create.c
[root@localhost mnt]# cat guset_create.c
guest create
host write
guest write
[root@localhost mnt]#
host:读文件
[root@localhost host_guest_share]# cat guset_create.c
guest create
host write
guest write
测试2、:host 创建文件 host和guest 读写
host端:
[root@localhost host_guest_share]# ls -l
总用量 8
-rw------- 1 qemu qemu 36 2月 22 11:36 guset_create.c
[root@localhost host_guest_share]# touch host_create.c
[root@localhost host_guest_share]# ls -l
总用量 8
-rw------- 1 qemu qemu 36 2月 22 11:36 guset_create.c
-rw-r--r-- 1 root root 0 2月 22 11:42 host_create.c
[root@localhost host_guest_share]# echo "host create" >> host_create.c
[root@localhost host_guest_share]# cat host_create.c
host create
[root@localhost host_guest_share]#
guest端
[root@localhost mnt]# cat guset_create.c
guest create
host write
guest write
[root@localhost mnt]# ls -l
总用量 12
-rw-r--r-- 1 root root 36 2月 22 11:36 guset_create.c
-rw-r--r-- 1 root root 12 2月 22 11:42 host_create.c
[root@localhost mnt]# cat host_create.c
host create
[root@localhost mnt]# echo "guest write 1" >> host_create.c
bash: host_create.c: 权限不够 //注意host创建文件时候 修改文件权限,因为虚拟机访问文件相对与host来说是other用户
[root@localhost mnt]# echo "guest write 1" >> host_create.c
[root@localhost mnt]# cat host_create.c
host create
guest write 1
host端
[root@localhost host_guest_share]# chmod 777 host_create.c
[root@localhost host_guest_share]# ls -l
总用量 12
-rw------- 1 qemu qemu 36 2月 22 11:36 guset_create.c
-rwxrwxrwx 1 root root 26 2月 22 11:44 host_create.c
[root@localhost host_guest_share]# cat host_create.c
host create
guest write 1
[root@localhost host_guest_share]# echo "host write 2" >> host_create.c
[root@localhost host_guest_share]# cat host_create.c
host create
guest write 1
host write 2
guest端
[root@localhost mnt]# ls -l
总用量 12
-rw-r--r-- 1 root root 36 2月 22 11:36 guset_create.c
-rwxrwxrwx 1 root root 39 2月 22 11:47 host_create.c
[root@localhost mnt]# cat host_create.c
host create
guest write 1
host write 2
[root@localhost mnt]#
具体参考
https://wiki.qemu.org/Documentation/9psetup
http://www.linux-kvm.org/page/9p_virtio
https://blog.csdn.net/xuriwuyun/article/details/45061587