Ubuntu20.04 环境下搭建Virtio-fs

 参考virtiofs - shared file system for virtual machines / Standalone usage

sudo apt-get install ninja-build acpica-tools build-essential zlib1g-dev pkg-config libglib2.0-dev binutils-dev libboost-all-dev autoconf libtool libssl-dev libpixman-1-dev libpython2-dev python3-pip python-capstone virtualenv libpixman-1-dev libbpf-dev libcap-ng-dev libseccomp-dev

配置Qemu

mkdir build | cd build

qemu

./configure --enable-kvm --enable-debug --enable-linux-user --enable-vnc --enable-bpf --enable-werror  --enable-user --enable-vhost-kernel --gdb=/usr/bin/gdb --enable-debug-stack-usage --enable-debug-tcg --enable-debug-mutex --enable-cfi-debug --enable-qom-cast-debug --enable-virtiofsd --target-list="x86_64-softmmu"
../configure --prefix=$PWD --enable-kvm --enable-debug --enable-linux-user --enable-vnc --enable-werror  --enable-user --enable-vhost-kernel --gdb=/usr/bin/gdb   --target-list="x86_64-softmmu"
make -j 8
make -j 8 virtiofsd

编译Guset内核支持Virtio-fs

      git clone https://gitlab.com/virtio-fs/linux.git
      git checkout virtio-fs-dev

首先安装编译所需安装包

sudo apt-get install -y libncurses-dev flex bison openssl libssl-dev dkms  libelf-dev libudev-dev libpci-dev libiberty-dev  autoconf fakeroot bc cpio liblz4-tool dwarves libzstd-dev libncurses-dev gawk flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf llvm

拷贝系统默认配置

cp /boot/config-5.4.0-144-generic ./.config

 修改配置

./scripts/config -e CONFIG_DEBUG_INFO
./scripts/config -e CONFIG_BPF_SYSCALL
./scripts/config -e CONFIG_DEBUG_INFO_BTF
./scripts/config -e CONFIG_UIO
./scripts/config -e CONFIG_UIO_PCI_GENERIC
./scripts/config -d CONFIG_RANDOMIZE_BASE
./scripts/config -e CONFIG_DEBUG_INFO_DWARF5
./scripts/config -e CONFIG_GDB_SCRIPTS
./scripts/config -d CONFIG_MODULE_SIG_KEY
./scripts/config -d CONFIG_MODULE_SIG_ALL
./scripts/config -d CONFIG_MODULE_SIG_KEY_TYPE_RSA
./scripts/config -e CONFIG_SYSTEM_TRUSTED_KEYRING
./scripts/config -d CONFIG_MODULE_SIG_KEY_TYPE_RSA
./scripts/config --set-str CONFIG_SYSTEM_TRUSTED_KEYS ""
./scripts/config -e CONFIG_VIRTIO
./scripts/config -e CONFIG_VIRTIO_FS
./scripts/config -e CONFIG_DAX
./scripts/config -e CONFIG_FS_DAX
./scripts/config -e CONFIG_DAX_DRIVER
./scripts/config -e CONFIG_ZONE_DEVICE
./scripts/config -d SYSTEM_REVOCATION_KEYS

 编译

sudo make deb-pkg -j18

sudo make -j1  deb-pkg |& tee /tmp/kernel-build.log

创建一个磁盘把内核文件写入,并且挂载到guest上安装

 drive format=raw,file=./disk.raw

sudo dpkg -i linux-headers-xx.xx.xx.deb*
sudo dpkg -i linux-image-xx.xx.xx.deb*

grep gnulinux /boot/grub/grub.cfg
//修改/etc/default/grup "1> 4"
sudo update-grub
sudo reboot

也可以装在主机上用如下命令启动

sudo qemu-system-x86_64 -smp 8 -m 4096 -enable-kvm -hda /home/qs/ssd/vhost.qcow2   -kernel /boot/vmlinuz-6.1.0-rc8+ -initrd /boot/initrd.img-6.1.0-rc8+ -append "console=ttyS0 root=/dev/sda5" -net user,hostfwd=::8888-:22 -net nic

 开启环境:

在Qemu build下 启动virtiofsd守护进程

sudo ./virtiofsd -o vhost_user_socket=/tmp/vhostqemu -o source=/home/qs/p5800/Share -o cache=always

开启Qemu,并且开启DAX

sudo ./qemu-system-x86_64 -smp 8 -m 4096 -object memory-backend-file,id=mem,size=4G,mem-path=/dev/shm,share=on -numa node,memdev=mem -enable-kvm -hda /home/qs/p5800/vm/vhost.qcow2  -chardev socket,id=char0,path=/tmp/vhostqemu -device vhost-user-fs-pci,queue-size=1024,chardev=char0,tag=myfs,cache-size=4G  -net user,hostfwd=::8888-:22 -net nic -s -S

在Guset里挂载virtiofs 

sudo mount -t virtiofs,ext4 myfs share/ -o dax
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值