QEMU 8.2.2 Windows 10 部署 ARM 银河麒麟:3步脚本实现一键启动与SSH连接
📅 2026/7/13 9:55:23
👁️ 阅读次数
📝 编程学习
QEMU 8.2.2 Windows 10 部署 ARM 银河麒麟:3步脚本实现一键启动与SSH连接
在跨架构开发测试场景中,x86平台模拟ARM环境的需求日益增长。本文将演示如何通过QEMU 8.2.2在Windows 10系统上快速搭建银河麒麟ARM64虚拟机环境,并提供三个自动化脚本实现从安装到连接的完整流程。
1. 环境准备与自动化部署方案
传统QEMU部署ARM虚拟机需要手动执行十余条命令,而我们的方案将其简化为三个脚本文件:
deploy_arm_kylin ├── 1_install_qemu.bat # 环境检测与QEMU安装 ├── 2_create_vm.bat # 虚拟磁盘创建与系统安装 └── 3_start_vm.bat # 虚拟机启动与SSH端口映射1.1 硬件与软件需求
最低配置要求:
- Windows 10 64位系统(版本1903及以上)
- 四核CPU(推荐Intel i5/i7或同级AMD)
- 16GB内存(虚拟机分配8GB)
- 100GB可用磁盘空间
必要组件下载:
| 组件名称 | 推荐版本 | 存储路径示例 |
|---|---|---|
| QEMU安装包 | 8.2.2 Windows版 | C:\qemu\installer |
| 银河麒麟ISO镜像 | V10 SP2 ARM64 | D:\iso\kylin-server |
| UEFI固件文件 | QEMU_EFI.fd | C:\qemu\firmware |
提示:银河麒麟镜像需从官方渠道获取,UEFI文件可从Linaro官网下载最新稳定版
1.2 自动化安装脚本(1_install_qemu.bat)
@echo off :: 检测系统架构 wmic os get osarchitecture | find "64" >nul || ( echo 错误:需要64位Windows系统 pause exit /b 1 ) :: 创建QEMU安装目录 if not exist "C:\qemu" ( mkdir C:\qemu mkdir C:\qemu\firmware ) :: 下载并安装QEMU(示例使用本地路径) if exist "%~dp0qemu-w64-setup-20230816.exe" ( start /wait "" "%~dp0qemu-w64-setup-20230816.exe" /S /D=C:\qemu ) else ( echo 请将QEMU安装包放置在脚本同级目录 pause exit /b 1 ) :: 添加系统环境变量 setx PATH "%PATH%;C:\qemu" /m echo QEMU 8.2.2安装完成 pause2. 虚拟机创建与系统安装
2.1 一键创建虚拟磁盘(2_create_vm.bat)
@echo off set QEMU_DIR=C:\qemu set VM_DIR=D:\vm\kylin_arm set ISO_PATH=%~dp0Kylin-Server-10-SP2-aarch64-Release-Build09-20210524.iso :: 验证镜像文件 if not exist "%ISO_PATH%" ( echo 错误:银河麒麟ISO镜像未找到 pause exit /b 1 ) :: 创建虚拟机目录 if not exist "%VM_DIR%" ( mkdir "%VM_DIR%" ) :: 生成80GB虚拟磁盘(qcow2格式) "%QEMU_DIR%\qemu-img.exe" create -f qcow2 "%VM_DIR%\kylin_disk.qcow2" 80G :: 启动安装进程 "%QEMU_DIR%\qemu-system-aarch64.exe" ^ -m 8192 -cpu cortex-a72 -smp 4 ^ -M virt -bios "%QEMU_DIR%\firmware\QEMU_EFI.fd" ^ -device VGA -device nec-usb-xhci ^ -device usb-tablet -device usb-kbd ^ -drive if=none,file="%VM_DIR%\kylin_disk.qcow2",id=hd0 ^ -device virtio-blk-device,drive=hd0 ^ -drive if=none,file="%ISO_PATH%",id=cdrom,media=cdrom ^ -device virtio-scsi-device -device scsi-cd,drive=cdrom ^ -net nic -net user,hostfwd=tcp::2222-:22 echo 安装完成后请运行3_start_vm.bat启动虚拟机 pause关键参数解析:
-m 8192:分配8GB内存-cpu cortex-a72:模拟ARM Cortex-A72处理器hostfwd=tcp::2222-:22:将宿主机的2222端口映射到虚拟机22端口
2.2 银河麒麟安装注意事项
分区方案:
- 建议使用自动分区
- 手动分区时确保有:
/boot至少1GBswap内存的1.5倍/剩余所有空间
网络配置:
# 虚拟机内执行 nmcli con mod "有线连接" ipv4.method manual ipv4.addresses 192.168.100.2/24 nmcli con up "有线连接"性能优化:
- 安装时选择"最小安装"
- 取消不必要的桌面环境
- 关闭图形登录界面:
systemctl set-default multi-user.target
3. 自动化启动与SSH连接
3.1 优化启动脚本(3_start_vm.bat)
@echo off set QEMU_DIR=C:\qemu set VM_DIR=D:\vm\kylin_arm :: 检测虚拟磁盘是否存在 if not exist "%VM_DIR%\kylin_disk.qcow2" ( echo 错误:虚拟磁盘未找到,请先运行2_create_vm.bat pause exit /b 1 ) :: 启动虚拟机(无图形加速) start "QEMU ARM Kylin" "%QEMU_DIR%\qemu-system-aarch64.exe" ^ -m 8192 -cpu cortex-a72 -smp 4 ^ -M virt -bios "%QEMU_DIR%\firmware\QEMU_EFI.fd" ^ -device virtio-gpu-pci ^ -device nec-usb-xhci -device usb-tablet -device usb-kbd ^ -drive if=none,file="%VM_DIR%\kylin_disk.qcow2",id=hd0 ^ -device virtio-blk-device,drive=hd0 ^ -net nic,model=virtio -net user,hostfwd=tcp::2222-:22 ^ -daemonize echo 虚拟机已启动,SSH连接命令: echo ssh -p 2222 kylinuser@127.0.0.1 echo 默认密码:Kylin123123 pause3.2 SSH连接与文件传输
基础连接:
# Windows终端执行 ssh -p 2222 root@localhostSCP文件传输:
# 上传文件到虚拟机 scp -P 2222 .\local_file.txt root@localhost:/home/ # 下载虚拟机文件 scp -P 2222 root@localhost:/var/log/syslog .\VS Code远程开发配置:
- 安装Remote - SSH扩展
- 添加配置:
Host QEMU-Kylin HostName localhost User root Port 2222
4. 常见问题排查手册
4.1 启动故障处理
| 故障现象 | 可能原因 | 解决方案 |
|---|---|---|
| 黑屏无响应 | UEFI版本不兼容 | 更换为Linaro 2023版UEFI固件 |
| 报错"failed to initialize" | 缺少SDL2.dll | 安装最新版SDL2运行时库 |
| 网络连接超时 | 端口冲突 | 修改脚本中的2222为其他端口 |
4.2 性能优化方案
内存分配建议:
- 4GB:基础命令行操作
- 8GB:轻量级服务测试
- 16GB:完整开发环境
磁盘IO加速:
:: 修改3_start_vm.bat的-drive参数 -drive if=none,file="%VM_DIR%\kylin_disk.qcow2",id=hd0,cache=writeback多核CPU配置:
:: 修改-smp参数(示例:8核) -smp 8,sockets=2,cores=4,threads=14.3 高级网络配置
桥接模式示例:
-net nic,model=virtio -net bridge,br=eth0端口转发扩展:
-hostfwd=tcp::3389-:3389 -hostfwd=tcp::8080-:80
编程学习
技术分享
实战经验