qemu使用9pfs共享host目录

2021年11月20日 阅读数:3
这篇文章主要向大家介绍qemu使用9pfs共享host目录,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

对于常用qemu的人,常常要在guest中访问host中的内容,或者要把一些日志信息保存在host中,等等。虽然能够经过挂载虚拟磁盘,虚拟sd卡等方式共享文件,但不是很方便。git

 这个时候9pfs文件系统来了,能够用来共享host和guest中的目录,本篇不介绍它的历史背景和原理。
微信


        1)先贴上我本身的qemu启动参数:app

     

1.-cpu host:把host cpu的特性所有暴露给guest,我主要用来进行kvm嵌套socket


2.-enable-kvm:使用kvm来硬件加速(其实我原本就是用来调试kvm的)spa

      (若是不使用kvm加速,1,2 两个参数都不须要)

.net

3.-m 1024M 给guest分配1024M内存(对应host上1024M虚拟内存而已)线程


4.-nographic:以非图形界面启动,配合内核参数中的console=ttyS0调试

以非图形界面启动,要进入qemu控制台的话按 ctrl+a+c,更多命令输 入 ctrl+a+h.日志

以图形界面启动进入qemu控制台命令 ctrl+alt+2 ,返回ctrl+alt+1code


5. -smp 4,sockets=1,cores=2,threads=2 分配4个cpu(1个物理cpu,两个核心,每一个核心两个线程)


6.-hda ./x86-kvm.img -kernel ./nest-kvm/bzImage分配一个硬盘和指明内核路径,由于kvm能够嵌套,我本身使用的这个镜像把kvm内核模块也编译进guest内核了,启动qemu以后,又能够在guest中再启动另外的guest. (若是不使用-hda也能够使用 -drive file=./x86-kvm.img,if=virtio来代替,可是-append 中的root=/dev/vda)。


7.指明9p文件系统要共享的目录和mount_tag(在guest中挂载9p文件系统的时候须要这个标签)


8.-balloon:内存气球,host进入qemu控制台用来动态控制guest中的内存大小.


9.传递内核参数


2).运行上面的脚本,启动guest内核以后在guest中:

     mount  jeff-host-code  -t  9p  /mnt

 进入/mnt目录以后就能看到主机/home/jeff/git下面的内容了。


 guest的内核在编译的时候须要打开如下选项:

        CONFIG_NET_9P=y    

        CONFIG_NET_9P_VIRTIO=y   

        CONFIG_9P_FS=y  

        CONFIG_9P_FS_POSIX_ACL=y 

        CONFIG_PCI=y   

        CONFIG_VIRTIO_PCI=y


----

~jeff

        

本文分享自微信公众号 - 相遇Linux(LinuxJeff)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。