如何在windows中使用qemu
[toc]
qemu在windows11中安装并运行windows10
1. 准备工作
安装qemu并配置环境变量
2. 通过命令行启动无盘系统
- 安装tap网卡并与网卡桥接
- qemu使用无盘启动参数
1 | qemu-system-x86_64 -m 8G -smp 4,sockets=2,cores=2 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000,netdev=net0 -vga virtio -boot n |
3.命令行配置硬盘并安装windows系统
使用QEMU的
qemu-img工具创建一个虚拟硬盘。打开命令提示符并运行以下命令:1
qemu-img create -f qcow2 D:\virtual\windows10.img 30G
-f qcow2:指定虚拟硬盘的格式为QCOW2(支持快照和压缩)。D:\virtual\windows10.img:指定虚拟硬盘的路径和文件名。30G:指定虚拟硬盘的大小(可以根据需要调整)。
启动QEMU并安装Windows 10
使用以下命令启动QEMU并加载Windows 10 ISO进行安装:
1
qemu-system-x86_64 -hda D:\virtual\windows10.img -cdrom D:\Users\3\Downloads\tianyiyunpan\Micro10.iso -boot d -m 8G
-hda D:\virtual\windows10.img:指定刚刚创建的虚拟硬盘。-cdrom D:\Users\3\Downloads\tianyiyunpan\Micro10.iso:指定Windows 10的ISO镜像文件路径。-boot d:表示从光盘(ISO)启动。-m 8G:分配 8GB内存给虚拟机(可以根据需要调整)。
启动Windows 10
选择创建的虚拟硬盘(
D:\virtual\windows10.img)进行安装。安装完成后,使用以下命令启动已安装的Windows 10:
1
qemu-system-x86_64 -hda D:\virtual\windows10.img -m 8G
使用用户模式网络启动虚拟机,添加以下参数:
1
qemu-system-x86_64 -hda D:\virtual\windows10.img -m 8G -net nic -net user
-net nic:创建一个虚拟网络接口。-net user:设置用户模式网络。
使用桥接网络,虚拟机直接连接到物理网络可以使用桥接网络。确保已经创建了一个TAP设备,并使用以下命令启动虚拟机:
1
qemu-system-x86_64 -hda D:\virtual\windows10.img -m 8G -netdev tap,id=net0,ifname=tap0 -device e1000,netdev=net0
4.创建并使用vhd或者vmdk格式的硬盘
创建vhd或者vmdk格式的硬盘
创建VHD格式的虚拟硬盘:
1
qemu-img create -f vpc D:\virtual\windows10.vhd 30G
-f vpc:指定虚拟硬盘格式为VHD。D:\virtual\windows10.vhd:指定虚拟硬盘的路径和文件名。50G:指定虚拟硬盘的大小。
创建VMDK格式的虚拟硬盘:
1
qemu-img create -f vmdk D:\virtual\windows10.vmdk 30G
-f vmdk:指定虚拟硬盘格式为VMDK。D:\virtual\windows10.vmdk:指定虚拟硬盘的路径和文件名。30G:指定虚拟硬盘的大小。
启动虚拟机使用VHD或VMDK格式的硬盘并安装Windows10
创建完虚拟硬盘后,可以使用QEMU启动虚拟机,指定相应的虚拟硬盘文件。例如,使用VHD格式的虚拟硬盘:
1
qemu-system-x86_64 -hda D:\virtual\windows10.vhd -cdrom D:\Users\3\Downloads\tianyiyunpan\Micro10.iso -boot d -m 8G -smp 4,sockets=2,cores=2
使用VMDK格式的虚拟硬盘:
1
qemu-system-x86_64 -hda D:\virtual\windows10.vmdk -cdrom D:\Users\3\Downloads\tianyiyunpan\Micro10.iso -boot d -m 8G -smp 4,sockets=2,cores=2
启动虚拟机的参数说明
-hda D:\virtual\windows10.vmdk:指定使用的虚拟硬盘文件(VMDK格式)。-cdrom D:\Users\3\Downloads\tianyiyunpan\Micro10.iso:指定Windows 10的ISO镜像文件路径。-boot d:表示从光盘(ISO)启动。-m 8G:分配 8GB内存给虚拟机(可以根据需要调整)。-smp 4:表示虚拟机将使用 4个虚拟 CPU(vCPU)。这意味着虚拟机可以并行处理 4 个线程。sockets=2:表示将这 4 个虚拟 CPU 分配到 2 个 CPU 插槽(sockets)中。每个插槽可以容纳多个核心。cores=2:表示每个插槽中有 2 个核心(cores)。因此,2 个插槽 × 2 个核心 = 4 个虚拟 CPU。
5.运行很卡试着配置显卡
2. 使用Virtio显卡
Virtio显卡提供了更好的性能,适用于需要高性能图形的应用。要使用Virtio显卡,您可以使用以下命令:
1
qemu-system-x86_64 -hda D:\virtual\windows10.vmdk -m 8G -smp 4,sockets=2,cores=2 -vga virtio
-vga virtio:指定使用Virtio显卡。
使用标准VGA显卡
如果您希望使用标准的VGA显卡,可以使用以下命令:1
qemu-system-x86_64 -hda D:\virtual\windows10.vmdk -m 8G -smp 4,sockets=2,cores=2 -vga std
-vga std:指定使用标准VGA显卡。
6.分配最大显存
在QEMU中,显存的最大分配量取决于几个因素,包括所使用的显卡类型、主机的硬件资源以及QEMU的版本。以下是一些常见显卡类型的显存限制:
- Virtio显卡
对于Virtio显卡,可以通过vgamem_mb参数设置显存。Virtio显卡的显存通常可以设置为最大256MB或更高,具体取决于QEMU的实现和主机的资源。
1 | qemu-system-x86_64 -hda D:\virtual\windows10.vmdk -m 8G -smp 4,sockets=2,cores=2 -device qxl-vga,vgamem_mb=256 |
标准VGA显卡
对于标准VGA显卡,QEMU并不提供直接设置显存的选项。标准VGA显卡的显存通常是固定的,通常为16MB或32MB,无法通过命令行参数进行调整。其他因素
主机资源:显存的分配也受到主机系统可用内存的限制。如果主机内存不足,可能无法分配较大的显存。
QEMU版本:不同版本的QEMU可能对显存的支持和限制有所不同。确保使用最新版本的QEMU以获得最佳性能和功能。
总结
在QEMU中,可以为QXL和Virtio显卡分配显存,通常最大为256MB或更高。具体的最大值可能会因QEMU版本和主机资源而异。通过合理配置显存,可以优化虚拟机的图形性能。
7.启动虚拟机并使用客户端连接虚拟机桌面
使用spice协议
下载支持spice协议的客户端virt-viewer
使用命令运行qemu虚拟机,添加
-spice port=5900,disable-ticketing=on1
qemu-system-x86_64 -hda D:\virtual\windows10.vmdk -m 8G -smp 4,sockets=2,cores=2 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000,netdev=net0 -device qxl-vga,vgamem_mb=256 -spice port=5900,disable-ticketing=on
运行remote view并输入地址连接
1 | spice://localhost:5900 |
使用vnc协议
下载RealVNC Viewer
运行时添加选项
-vnc :01
qemu-system-x86_64 -hda D:\virtual\windows10.vmdk -m 8G -smp 4,sockets=2,cores=2 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000,netdev=net0 -device qxl-vga,vgamem_mb=256 -vnc :0
运行RealVNC Viewer并连接
1
2#地址与端口
127.0.0.1:5900
8.boot启动选项
在 QEMU 中,-boot 参数用于指定虚拟机的启动顺序和启动设备。以下是一些常用的 -boot 参数及其含义:
-boot d:从光盘启动(CD-ROM)。
-boot c:从硬盘启动(通常是第一个硬盘)。
-boot n:从网络启动(PXE)。
-boot a:自动选择启动设备,通常是根据启动顺序选择第一个可用的设备。
-boot f:从指定的设备启动,f 后面可以跟设备字母(如 f0、f1 等),表示从特定的设备启动。
此外,-boot 参数还可以与其他选项结合使用,例如:
-boot order=dc:指定启动顺序,首先从光盘启动,然后从硬盘启动。
-boot menu=on:启用启动菜单,允许用户在启动时选择设备。
9.开启uefi引导
1 | -pflash .\edk2-x86_64-code.fd |
10.启动whpx加速(运行windows10没成功)
运行命令查看加速方式
1
qemu-system-x86_64 -accel help
结果如下所示:
1
2
3
4C:\Users\3>qemu-system-x86_64 -accel help
Accelerators supported in QEMU binary:
tcg
whpx在控制面板中的
windows功能里打开`Windows虚拟机监控程序平台。重启电脑。
运行qemu并添加启动参数
-accel whpx,kernel-irqchip=off1
qemu-system-x86_64 -m 8G -smp 4,sockets=2,cores=2 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000,netdev=net0 -vga virtio -boot n -accel whpx,kernel-irqchip=off
whpx加速不支持uefi引导。
11.从U盘启动
- 确定驱动器的名字,此时测试环境为PhysicalDrive2。
- 添加参数
1 | qemu-system-x86_64 -hda D:\virtual\qemu\windows10.img -m 8G -smp 4,sockets=2,cores=2 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000,netdev=net0 -vga virtio -drive file=\\.\PhysicalDrive2,format=raw -boot d |
完整启动命令
1. UEFI引导启动
- 使用vmdk格式硬盘
-hda D:\virtual\Mirco11\Mirco11.vmdk - 8G运行内存
-m 8G - 4个cpu核心
-smp 4,sockets=2,cores=2 - 设置桥接网络
-netdev tap,id=net0,ifname=tap0,script=no,downscript=no - 将网卡设为e1000
-device e1000,netdev=net0 - 使用virtio虚拟显卡
--vga virtio - 开启远程桌面
-spice port=5900,disable-ticketing=on - uefi引导
-drive file="D:\Program Files\qemu\share\edk2-x86_64-code.fd",format=raw,if=pflash - 从硬盘启动
-boot c
1 | qemu-system-x86_64 -hda D:\virtual\Mirco11\Mirco11.vmdk -m 8G -smp 4,sockets=2,cores=2 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000,netdev=net0 -vga virtio -spice port=5900,disable-ticketing=on -drive file="D:\Program Files\qemu\share\edk2-x86_64-code.fd",format=raw,if=pflash -boot c |
2.网络启动BIOS引导并开启whpx加速
1 | qemu-system-x86_64 -m 8G -smp 4,sockets=2,cores=2 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000,netdev=net0 -vga virtio -boot n -accel whpx,kernel-irqchip=off |
