qemu的msys2版本为qemu官网在windows 平台的推荐。
此处以windows x86_64平台的msys2版本为例子。
一、安装msys2 x86_64版本
官网下载msys2 的x86_64版本安装包安装即可,此处示例安装了支持windows8.1 x86_64和以上的msys2版本。此处示例将msys2安装到windows硬盘的d:\msys64文件夹。
二、安装ucrt64版本的qemu
点击开始菜单,点击msys2程序组, 点击msys2 ucrt64。
打开了msys2 ucrt64的终端,终端里面输入命令
pacman -Sy mingw-w64-ucrt-x86_64-qemu
按回车键,按y确认安装
:: Synchronizing package databases...
clangarm64 is up to date
mingw32 is up to date
mingw64 is up to date
ucrt64 is up to date
clang32 is up to date
clang64 is up to date
msys is up to date
Packages (1) mingw-w64-ucrt-x86_64-qemu-9.2.0-2
mingw-w64-ucrt-x86_64-qemu下载文件200多MB,安装完毕占用2GB多。安装完毕后,
qemu-system-x86_64w.exe在msys2环境中的路径是/ucrt64/bin/qemu-system-x86_64w.exe
三、qemu 从 BIOS模式 启动u盘的bat和sh文件
将u盘插入电脑,然后右键点击"我的电脑",点击"管理",进入“计算机管理"。
计算机管理里面有磁盘管理。
或者右键点击"开始"->点击"运行"->输入diskmgmt.msc
按回车键即可打开磁盘管理。
此处示例,u盘显示为磁盘1,那么下文的文件phydrive.bat就
set drive="PhysicalDrive1"。u盘显示为磁盘2,那么就set drive="PhysicalDrive2"。
在电脑桌面,使用notepad--或者notepad4新建一个文件,保存为phydrive.bat
phydrive.bat内容如下:
set batpath=%~dp0
REM phydrive.sh为要运行的bash shell文件名字
set shpath="%batpath:\=\\%phydrive.sh"
REM 根据自己电脑上U盘显示 把1改成实际的数字
set drive="PhysicalDrive1"
REM D:\msys64为msys2安装的路径
D:\msys64\msys2_shell.cmd -ucrt64 -mintty -c "$(cygpath -u '%shpath%') '%drive%'"
注意:phydrive.bat和phydrive.sh要在同一个文件夹。
在电脑桌面,使用notepad--或者notepad4新建一个文件,保存为phydrive.sh
文件内容如下:
#! /usr/bin/bash
qemu-system-x86_64w.exe -m 1536 -rtc base=localtime -drive file=\\\\.\\$1,format=raw -machine q35 &
-m 1536 设置qemu的启动内存为1.5GB 可以根据需要改成别的数字,比如2560
-rtc base=localtime 使用localtime为时间基准
-machine q35 使用q35架构。如果需要体验老式机器的慢速度,可以使用-machine pc
四、使用方法
右键点击phydrive.bat, 点击"以管理员身份运行(A)", 即可打开bios模式的qemu,从U盘启动。
qemu快捷键:
Ctrl+Alt+G键,释放鼠标。
Alt+M键,控制虚拟机电源。P键暂停,D键关机, R键重启,Q键退出。
五、msys2版本qemu其他命令示例
UEFI固件:可以下载已经编译好的OVMF文件,或者自己建立编译环境编译。
qemu可以通过软盘img、硬盘img、iso、虚拟硬盘、物理硬盘等,以bios或者uefi固件启动。
下面是一些命令示例。qemu-system-x86_64.exe可以替换为qemu-system-x86_64w.exe
#qemu 使用BIOS固件 启动物理硬盘1 U盘 简化版
qemu-system-x86_64.exe -m 1536 -rtc base=localtime -hda \\\\.\\PhysicalDrive1 -machine q35 &
#qemu 使用BIOS固件 启动物理硬盘1 U盘
qemu-system-x86_64.exe -m 1536 -rtc base=localtime -drive file=\\\\.\\PhysicalDrive1,format=raw -machine q35 &
#qemu 使用BIOS固件 内存2560MB 启动物理硬盘1 U盘 cpu使用qemu64
qemu-system-x86_64.exe -m 2560 -rtc base=localtime -drive file=\\\\.\\PhysicalDrive1,format=raw -machine q35 -cpu qemu64 &
#qemu 使用BIOS固件 启动myiso光盘iso文件
qemu-system-x86_64.exe -m 1536 -rtc base=localtime -cdrom /d/data/bootdisk/DOS_IMGtoISO/myiso.iso -machine q35 -boot d &
#qemu 使用BIOS固件 启动ATI.img硬盘映像
qemu-system-x86_64.exe -m 1536 -rtc base=localtime -drive file=/d/data/bootdisk/ATI.img,format=raw -machine q35 &
#qemu 使用BIOS固件 启动ATI.img硬盘映像 -blockdev -device
qemu-system-x86_64.exe -m 1536 -rtc base=localtime -blockdev driver=raw,file.driver=file,file.filename=/d/data/bootdisk/ATI.img,file.aio=native,node-name=disk1 -device ide-hd,drive=disk1 -machine q35 &
#假设UEFI固件在windows路径d:\data\OVMF\RELEASEX64_OVMF.fd
#qemu 使用UEFI固件 启动硬盘映像img文件
qemu-system-x86_64.exe -m 1536 -rtc base=localtime -bios /d/data/OVMF/RELEASEX64_OVMF.fd -drive file=/d/data/bootdisk/ATI.img,format=raw -machine q35&
#qemu 使用UEFI固件 启动物理硬盘1 U盘 完备版参数
qemu-system-x86_64.exe -m 2560 -rtc base=localtime -drive file=/d/data/OVMF/RELEASEX64_OVMF.fd,format=raw,if=pflash -drive file=\\\\.\\PhysicalDrive1,format=raw -machine q35 -cpu qemu64&
#qemu 使用UEFI固件 启动myiso光盘iso文件
qemu-system-x86_64.exe -m 1536 -rtc base=localtime -drive file=/d/data/OVMF/RELEASEX64_OVMF.fd,format=raw,if=pflash -cdrom /d/data/bootdisk/DOS_IMGtoISO/myiso.iso -machine q35 -boot d &
#qemu 使用BIOS固件 使用标准vga 启动myiso光盘iso文件 附加hda.vmdk虚拟硬盘
qemu-system-x86_64.exe -m 1536 -rtc base=localtime -vga std -blockdev driver=vmdk,file.driver=file,file.filename=/d/data/bootdisk/DOS_IMGtoISO/hda.vmdk,file.aio=native,node-name=disk1 -device ide-hd,drive=disk1 -cdrom /d/data/bootdisk/DOS_IMGtoISO/myiso.iso -machine q35 -boot d &
#qemu 使用BIOS固件 启动非标准的软盘映像img文件
#启动失败。非标准floppy img,需要转换为iso才可以
qemu-system-x86_64.exe -m 1536 -rtc base=localtime -vga std -drive file=/d/data/bootdisk/images/maxdos93.img,format=raw,if=floppy -machine q35 -boot order=a &
#qemu 使用UEFI固件 启动ATI.img硬盘映像
qemu-system-x86_64.exe -m 1536 -rtc base=localtime -pflash /d/data/OVMF/RELEASEX64_OVMF.fd -blockdev driver=raw,file.driver=file,file.filename=/d/data/bootdisk/ATI.img,file.aio=native,node-name=disk1 -device ide-hd,drive=disk1 -machine q35 &
#qemu 使用UEFI固件 启动ATI.img硬盘映像 -blockdev -device
qemu-system-x86_64.exe -m 1536 -rtc base=localtime -drive file=/d/data/OVMF/RELEASEX64_OVMF.fd,format=raw,if=pflash -blockdev driver=raw,file.driver=file,file.filename=/d/data/bootdisk/ATI.img,file.aio=native,node-name=disk1 -device ide-hd,drive=disk1 -machine q35 &