guest和host共享目录 -----9p fs

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)

如下图

guest和host共享目录 -----9p fs_第1张图片

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

 

你可能感兴趣的:(虚拟化)