牛逼!Windows竟然也能运行QEMU虚拟机!

本文介绍了如何在Windows环境中利用QEMU作为硬件模拟器搭建Ubuntu虚拟机,通过Hyper-V实现CPU硬件加速。在安装过程中提到了启用Hyper-V功能、创建磁盘空间以及使用不同加速选项如TCG和Hyper-V的命令行参数。此外,还指出了安装后需要手动添加sshd服务,并解决网络配置中的hostforwarding问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这些天研究 Miracast,又倒腾了开发用的虚拟机,但是发现了新的东西就是 QEMU ——全宇宙最强的硬件模拟器,原来这玩意可以在Windows上跑虚拟机的。

环境部署

  • msys2
  • mingw-w64-qemu
  • 系统iso
  • Hyper-V 代替 KVM/Linux

安装

Msys2 Repo下载exe,安装程序

运行 Msys2 UCRT, 输入 pacman -Syu更新依赖包

输入pacman -S mingw-w64-x86_64-qemu 安装 QEMU

输入cd /ucrt/bin && ls 查看qemu的工具包

在设置中查询控制面板,找到启动或关闭Windows功能,查看Hyper-V工具是否已经安装了,没有安装并重启。
在这里插入图片描述

运行Msys2 UCRT,输入 qemu-img create /d/kvm/Ubuntu22.img 40G,创建40GB的磁盘空间

可以选择TCG或Hyper-V来实现CPU硬件加速,推荐Hyper-V更快(我知道有HAXE,但是Intel停止项目维护了)

# 常规安装系统(使用TCG)
$ qemu-system-x86_64w.exe -drive file=./Ubuntu22.img,index=0,media=disk,format=raw -cdrom ./ubuntu-22.04.2-desktop-amd64.iso -m 8G -smp 4 -L Bios -usbdevice mouse -usbdevice keyboard -boot menu=on -rtc base=localtime,clock=host -parallel none -serial none -name ubuntu-no-acpi -no-reboot --accel tcg,thread=multi

# Hyper-V
$ qemu-system-x86_64w.exe -drive file=./Ubuntu22.img,index=0,media=disk,format=raw -cdrom ./ubuntu-22.04.2-desktop-amd64.iso -m 8G -smp 4 -L Bios -usbdevice mouse -usbdevice keyboard -boot menu=on -rtc base=localtime,clock=host -parallel none -serial none -name ubuntu-no-acpi -no-reboot --accel whpx,kernel-irqchip=off

注意:kernel-irqchip=off不加进不了系统的,只会卡在Bios

安装完后运行系统,注意Ubuntu22.04默认sshd没有,自己需要在虚拟机里安装的

$ qemu-system-x86_64w.exe -drive file=/d/kvm/Ubuntu22.img,index=0,media=disk,format=raw -m 8G -smp 4 -L Bios -usbdevice mouse -usbdevice keyboard -boot menu=on -rtc base=localtime,clock=host -parallel none -serial none -name ubuntu -no-acpi -no-hpet -no-reboot -device e1000,netdev=user.0 -netdev user,id=user.0,hostfwd=tcp::2222-:22 --accel whpx,kernel-irqchip=off

可以通过ssh -p 2222 username@host远程访问系统

错误情况

遇到Could not set up host forwarding rule这个问题,我查了不少文献,但是都回答得模棱两可,建议直接重启电脑,我就重启后又正常了。

Qemu 1.0.1 Windows QEMU emulator version 1.0.1, Copyright (c) 2003-2008 Fabrice Bellard usage: qemu [options] [disk_image] 'disk_image' is a raw hard disk image for IDE hard disk 0 Standard options: -h or -help display this help and exit -version display version information and exit -machine [type=]name[,prop[=value][,...]] selects emulated machine (-machine ? for list) property accel=accel1[:accel2[:...]] selects accelerator supported accelerators are kvm, xen, tcg (default: tcg) -cpu cpu select CPU (-cpu ? for list) -smp n[,maxcpus=cpus][,cores=cores][,threads=threads][,sockets=sockets] set the number of CPUs to 'n' [default=1] maxcpus= maximum number of total cpus, including offline CPUs for hotplug, etc cores= number of CPU cores on one socket threads= number of threads on one CPU core sockets= number of discrete sockets in the system -numa node[,mem=size][,cpus=cpu[-cpu]][,nodeid=node] -fda/-fdb file use 'file' as floppy disk 0/1 image -hda/-hdb file use 'file' as IDE hard disk 0/1 image -hdc/-hdd file use 'file' as IDE hard disk 2/3 image -cdrom file use 'file' as IDE cdrom image (cdrom is ide1 master) -drive [file=file][,if=type][,bus=n][,unit=m][,media=d][,index=i] [,cyls=c,heads=h,secs=s[,trans=t]][,snapshot=on|off] [,cache=writethrough|writeback|none|directsync|unsafe][,format=f] [,serial=s][,addr=A][,id=name][,aio=threads|native] [,readonly=on|off] use 'file' as a drive image -set group.id.arg=value set parameter for item of type i.e. -set drive.$id.file=/path/to/image -global driver.property=value set a global default for a driver property -mtdblock file use 'file' as on-board Flash memory image -sd file use 'file' as SecureDigital card image -pflash file use 'file'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值