当前位置: 首页 > news >正文

QEMU 8.2.2 Windows 10 部署 ARM 银河麒麟:3步脚本实现一键启动与SSH连接

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 ARM64D:\iso\kylin-server
UEFI固件文件QEMU_EFI.fdC:\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安装完成 pause

2. 虚拟机创建与系统安装

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 银河麒麟安装注意事项

  1. 分区方案

    • 建议使用自动分区
    • 手动分区时确保有:
      • /boot至少1GB
      • swap内存的1.5倍
      • /剩余所有空间
  2. 网络配置

    # 虚拟机内执行 nmcli con mod "有线连接" ipv4.method manual ipv4.addresses 192.168.100.2/24 nmcli con up "有线连接"
  3. 性能优化

    • 安装时选择"最小安装"
    • 取消不必要的桌面环境
    • 关闭图形登录界面:
      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 pause

3.2 SSH连接与文件传输

基础连接

# Windows终端执行 ssh -p 2222 root@localhost

SCP文件传输

# 上传文件到虚拟机 scp -P 2222 .\local_file.txt root@localhost:/home/ # 下载虚拟机文件 scp -P 2222 root@localhost:/var/log/syslog .\

VS Code远程开发配置

  1. 安装Remote - SSH扩展
  2. 添加配置:
    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=1

4.3 高级网络配置

桥接模式示例

-net nic,model=virtio -net bridge,br=eth0

端口转发扩展

-hostfwd=tcp::3389-:3389 -hostfwd=tcp::8080-:80
http://www.jsqmd.com/news/1179787/

相关文章:

  • 从零搭建后端项目:技术栈选择与架构设计思路
  • STM32WB55 NUCLEO板蓝牙安全绑定实战:手机配对+绑定状态持久化+低功耗运行
  • 欧盟强制新车配备驾驶员监控摄像头:技术实现与隐私博弈的深度解析
  • Unity VR开发入门:Oculus集成包核心功能与实战指南
  • PHP轻量级Excel在线查表工具,含班级经费专用管理模块(密码123)
  • 无锡卖 LV 包包必看!这几个配件留好,回收多赚几千 - 全城热点
  • Unity安卓打包失败:分层排查法与Gradle依赖冲突实战解决
  • Frida动态分析环境搭建:从零配置到实战Hook脚本开发
  • 组织化电商交易网络钓鱼犯罪链路与主动防御技术研究 —— 基于白俄罗斯 21 人诈骗团伙案件实证分析
  • Python+Power BI实现关键词短语提取与交互可视化
  • win10/11 WSL2 安装ubuntu20.04 (最新)
  • 2026 浙东大型推拉棚 景观棚 充气膜结构本地工程商 TOP5 实地测评分享 - LYL仔仔
  • Unity 2D游戏开发实战:从零实现经典坦克大战游戏
  • A/B Test 统计陷阱:样本量计算与MDE校验的5个实战误区解析
  • 遗传算法工程化实战:从原理失效到工业落地的关键跃迁
  • Unity MVVM框架Loxodon实战:性能优化与UI开发架构指南
  • 社区老人健康档案与在线问诊系统(SpringBoot毕业设计全套:源码+数据库+论文+部署指南)
  • Unity NetCode位置同步实战:从权威模式到预测调和,解决联机游戏同步难题
  • 多Agent系统上线首周:我们为任务调度交的4笔学费
  • Unity3D与ROS 2联合仿真:构建高保真机器人控制与可视化平台
  • 消解原理与子句集转换:从谓词逻辑到5步标准化实战解析
  • 腹腔镜手术图像分割数据集:245张训练图+62张测试图,含可视化脚本与标准目录结构
  • 高校教学全流程Django系统源码:课程排课、作业批改、考勤统计与成绩自动合成
  • IEEE 57节点系统MATLAB直接调用数据脚本(含bus/branch/baseMVA结构)
  • Godot 3D游戏物理碰撞优化实战:从原理到性能提升
  • LiteLLM:统一LLM调用协议的轻量级抽象层
  • 游戏引擎集成RmlUi:高性能UI解决方案的架构设计与实战
  • 后端技术栈选型指南:从业务需求出发
  • Unity粒子系统性能优化实战:从火焰特效拆解10大关键属性调优
  • 湖北新东方烹饪学校 2026 招生简章|助学政策、报名条件、校园环境一览 - 湖北找学校