qemu学习使用
uwupu 啦啦啦啦啦

archlinux相关安装

1
sudo pacman -S qemu-desktop

一条完整命令

1
2
3
4
5
6
7
8
9
qemu-system-x86_64 \
-machine type=q35,accel=kvm -cpu host -smp 4 -m 4G \
-object iothread,id=iothread0 \
-device virtio-scsi-pci,id=scsi0,iothread=iothread0 -device scsi-hd,drive=disk0,bus=scsi0.0 -drive file=test.qcow2,if=none,id=disk0,format=qcow2,cache=none,discard=unmap \
-display spice-app,gl=on -device virtio-vga-gl,hostmem=1G,blob=true,venus=true \
-device ich9-intel-hda -device hda-duplex \
-device virtio-serial-pci -chardev spicevmc,id=spicechannel0,name=vdagent -device virtserialport,chardev=spicechannel0,name=com.redhat.spice.0 \
-netdev user,id=net0 -device virtio-net-pci,netdev=net0 \
-device virtio-tablet-pci -name linux1 -monitor stdio -device qemu-xhci

可调整参数:

数据参数

  • smp核心数量; -m 内存大小
  • test.qcow2使用的硬盘
  • hostmem 显存

优化参数

  • cache=none: 可选;
    • none: 无缓存
    • writeback: 把宿主机内存作为硬盘缓存.

网络优化

目前介绍三种方案:

  • 桥模式: 性能极高,配置复杂
  • 宿主机nat模式: 性能极高, 配置复杂
  • qemu软模拟nat模式: 性能低, 配置方便
模式性能配置复杂度
桥模式 (不介绍)复杂
宿主机nat模式复杂
qemu软模拟nat模式超简单

qemu模拟nat模式

一个参数实现即可.

1
-netdev user,id=net0 -device virtio-net-pci,netdev=net0

宿主机nat模式

基于libvirtd实现nat方案

  1. 安装
1
2
sudo pacman -S qemu-desktop libvirt dnsmasq iptables-nft
sudo systemctl enable --now libvirtd
  1. 写一个配置文件 ( test1.xml )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<network>
<name>nat1</name>
<forward mode='nat'>
<nat>
<port start='1024' end='65535' />
</nat>
</forward>
<bridge name='virbr1' stp='on' delay='0' />
<ip address='10.0.3.254' netmask='255.255.255.0'>
<dhcp>
<range start='10.0.3.100' end='10.0.3.200' />
</dhcp>
</ip>
</network>
  1. 导入配置文件, 设定开机自启
1
2
3
4
sudo virsh net-define test1.xml  # 导入
sudo virsh net-start nat1 # 启动
sudo virsh net-autostart nat1 # 开机自启
sudo virsh net-list --all # 看下成功没

导入完成后xml就可以删除啦

  1. 为qemu添加libvirtd的网桥使用权限 ( qemu-bridge-helper)

sudo vim /etc/qemu/bridge.conf添加allow virbr1

  1. 添加参数
1
2
-netdev tap,id=net0,br=virbr1,vhost=on,vhost=on,helper=/usr/lib/qemu/qemu-bridge-helper \
-device virtio-net-pci,netdev=net0,mac=52:54:00:00:00:01 \

声卡方案

名称介绍参数
一种模拟声卡中等性能, 高兼容性-device ich9-intel-hda -device hda-duplex
半虚拟化声卡高性能, 低兼容性, 需要单独驱动-audiodev spice,id=audio1 -device virtio-sound-pci,audiodev=audio1

参数说明

Q/A

Q: 为什么都有libvirtd了还手搓qemu?
A: 2025.09.10, libvirtd不支持venus参数, 我要vulkan!

 评论
评论插件加载失败
正在加载评论插件