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

QEMU 8.2.2 Windows 部署 UOS ARM 虚拟机:3步脚本配置与 SSH 端口 2222 映射

QEMU 8.2.2 Windows 部署 UOS ARM 虚拟机:3步脚本配置与 SSH 端口 2222 映射

对于需要在 Windows 环境下进行 ARM 架构开发或测试的技术人员来说,搭建一个稳定可靠的 ARM 虚拟机环境是必不可少的。本文将介绍如何使用 QEMU 8.2.2 在 Windows 系统上快速部署 UOS ARM 虚拟机,并通过脚本化配置实现一键启动和 SSH 端口映射。

1. 环境准备与基础配置

1.1 安装 QEMU 8.2.2

首先需要从 QEMU 官网下载 Windows 版本的安装包。推荐使用 8.2.2 版本,它在 ARM 虚拟化方面有较好的稳定性和性能表现。

安装步骤:

  1. 运行下载的安装程序(如 qemu-w64-setup-20231224.exe)
  2. 选择安装路径(默认是 C:\Program Files\qemu)
  3. 勾选"Add QEMU to the system PATH for all users"选项
  4. 完成安装后,验证安装是否成功:
qemu-system-aarch64 --version

1.2 准备必要文件

部署 UOS ARM 虚拟机需要两个关键文件:

  1. UOS ARM 系统镜像:从统信官网下载最新版本
  2. ARM64 BIOS 文件(QEMU_EFI.fd):从 Linaro 官网获取

建议创建一个专门目录存放这些文件,例如:

D:\VirtualMachines\uos_arm\ ├── QEMU_EFI.fd └── uniontechos-desktop-20-professional-1050-arm64.iso

提示:UOS 镜像文件较大(约4GB),下载时请确保网络连接稳定。如果下载速度较慢,可以尝试使用镜像站点或下载工具。

2. 自动化部署脚本

2.1 创建虚拟磁盘

首先需要为虚拟机创建一个虚拟磁盘文件。打开命令提示符,导航到你的虚拟机目录,执行:

qemu-img create -f qcow2 uos_arm.qcow2 64G

这个命令会创建一个 64GB 的 qcow2 格式虚拟磁盘。qcow2 格式支持动态分配空间,实际占用的磁盘空间会随着使用量增长。

2.2 安装脚本(install.bat)

创建一个批处理文件 install.bat,内容如下:

@echo off set QEMU_PATH="C:\Program Files\qemu\qemu-system-aarch64.exe" set BIOS_PATH="D:\VirtualMachines\uos_arm\QEMU_EFI.fd" set IMAGE_PATH="D:\VirtualMachines\uos_arm\uniontechos-desktop-20-professional-1050-arm64.iso" set DISK_PATH="D:\VirtualMachines\uos_arm\uos_arm.qcow2" %QEMU_PATH% ^ -m 4096 ^ -cpu cortex-a72 ^ -smp 4 ^ -M virt ^ -bios %BIOS_PATH% ^ -device VGA ^ -device nec-usb-xhci ^ -device usb-mouse ^ -device usb-kbd ^ -drive if=none,file=%DISK_PATH%,id=hd0 ^ -device virtio-blk-device,drive=hd0 ^ -drive if=none,file=%IMAGE_PATH%,id=cdrom,media=cdrom ^ -device virtio-scsi-device ^ -device scsi-cd,drive=cdrom ^ -net nic,model=pcnet

关键参数说明:

参数说明
-m 4096分配 4GB 内存
-cpu cortex-a72使用 Cortex-A72 CPU 模型
-smp 4使用 4 个 CPU 核心
-M virt使用 QEMU 的 virt 机器类型

2.3 启动脚本(start.bat)

安装完成后,创建启动脚本 start.bat:

@echo off set QEMU_PATH="C:\Program Files\qemu\qemu-system-aarch64.exe" set BIOS_PATH="D:\VirtualMachines\uos_arm\QEMU_EFI.fd" set DISK_PATH="D:\VirtualMachines\uos_arm\uos_arm.qcow2" %QEMU_PATH% ^ -m 8192 ^ -cpu cortex-a72 ^ -smp 8 ^ -M virt ^ -bios %BIOS_PATH% ^ -device VGA ^ -device nec-usb-xhci ^ -device usb-mouse ^ -device usb-kbd ^ -drive if=none,file=%DISK_PATH%,id=hd0 ^ -device virtio-blk-device,drive=hd0 ^ -net user,hostfwd=tcp::2222-:22 ^ -net nic

这个脚本与安装脚本的主要区别是:

  1. 移除了 CD-ROM 驱动(不再需要安装镜像)
  2. 增加了网络端口映射(将虚拟机的 22 端口映射到主机的 2222 端口)
  3. 提高了内存和 CPU 配置(8GB 内存,8 个 CPU 核心)

3. 系统安装与配置

3.1 执行安装

  1. 双击运行 install.bat
  2. QEMU 窗口会启动并进入 UOS 安装界面
  3. 按照屏幕提示完成安装过程
  4. 安装完成后关闭虚拟机

注意:ARM 虚拟机在 x86 主机上运行时性能较低,安装过程可能会比较缓慢,这是正常现象。

3.2 启用 SSH 服务

为了通过 SSH 连接虚拟机,需要在 UOS 系统中启用 SSH 服务:

  1. 启动虚拟机(运行 start.bat)
  2. 登录 UOS 系统
  3. 打开终端,执行以下命令:
sudo apt update sudo apt install openssh-server -y sudo systemctl enable ssh sudo systemctl start ssh

3.3 连接测试

在主机上可以使用任何 SSH 客户端连接虚拟机:

ssh -p 2222 username@localhost

其中 username 是你在 UOS 系统中创建的用户名。

4. 性能优化与高级配置

4.1 性能调优

由于 ARM 指令需要在 x86 主机上通过软件模拟执行,性能损失较大。可以通过以下方式优化:

  1. 使用 KVM 加速(如果主机支持):
    -accel kvm
  2. 调整 CPU 模型
    -cpu max
  3. 启用多线程翻译
    -accel tcg,thread=multi

4.2 网络配置

除了基本的端口转发,还可以配置更复杂的网络环境:

  1. 桥接网络
    -netdev bridge,br=br0,id=net0 -device virtio-net-pci,netdev=net0
  2. TAP 设备
    -netdev tap,id=net0 -device virtio-net-pci,netdev=net0

4.3 共享文件夹

实现主机与虚拟机之间的文件共享:

  1. 在主机上创建共享目录
  2. 使用 Samba 或 NFS 在虚拟机中挂载

或者使用 virtio-fs:

-fsdev local,security_model=passthrough,id=fsdev0,path=D:\share \ -device virtio-9p-pci,id=fs0,fsdev=fsdev0,mount_tag=hostshare

然后在虚拟机中挂载:

mount -t 9p -o trans=virtio hostshare /mnt

通过以上配置,你可以在 Windows 系统上获得一个功能完整的 UOS ARM 开发环境,既可以通过图形界面操作,也可以通过 SSH 进行命令行访问。这种配置特别适合需要在不同架构间进行交叉编译和测试的开发场景。

http://www.jsqmd.com/news/1176950/

相关文章:

  • 移动端 PGO 优化怎么评估:平均 FPS 没变,为什么 1% Low 更关键?
  • vLLM部署Qwen3.5-397B-A17B-NVFP4最佳实践:8卡GPU配置与高并发优化指南
  • 8款高效护眼终端配色方案:告别视觉疲劳的完整指南
  • 等保测评前夜,改错一条审计规则差点让系统被“一票否决”!我把国产库审计策略做成了“Git化”自动同步与回滚引擎
  • 如何在GTA5线上模式中解锁超乎想象的游戏体验?
  • 2026年5月成都装修公司实测榜:优选六大本土品牌,口碑稳定与施工实力双认证 - 推荐官
  • SUID高级主题:自定义组件、扩展系统、插件开发的完整教程
  • 正则生成已进入“提示词工程+语法感知”双阶段:2024最新Benchmark显示,带AST约束的Prompt使错误率下降73.4%
  • ShellWrap高级用法:流式输出处理与回调函数应用指南
  • 4. 【Java】JVM 的秘密:Java 为什么能“一次编写,到处运行“
  • python数据可视化技巧的100个练习 -- 8. 使用 Python 可视化多个函数
  • 2026 铜川耀州黄金回收规范化盘点:告别小作坊套路,30 年零差评连锁全域免费上门 - 福金阁黄金回收
  • 分享一套锋哥原创的基于Python的会员管理系统(带微信小程序会员端)(FastAPI+Vue3)优质版
  • 2026 龙州黄金回收实地走访:3 大收割套路深度拆解,三大 30 年零差评老牌全城全覆盖免费上门 - 福金阁黄金回收
  • LinkSwift:八大网盘直链下载助手的完整开发者指南
  • 【信息科学与工程学】【通信工程】第七十七篇 城域网+FTTR/FTTB/FTTC/FTTO的数学分析01
  • NVIDIA多模态嵌入模型架构揭秘:Llama 3.2 1B + SigLip2 400M的完美结合
  • 2026年6月成都装修公司排行榜|权威实测评测(覆盖成都全域) - 推荐官
  • 【计算机工具类-协作工具Skills】cal-com-automation 技能
  • unipp中 @tap 运行到小程序,不生效
  • MiniMax-M2.5-NVFP4推理优化技巧:让你的AMD GPU推理速度提升300%
  • 地球物理大地测量学计算系列之十广义Stokes/Hotine数值积分外部高程异常计算
  • MiniMax-M2.7-NVFP4模型配置详解:理解3072隐藏层与256专家的设计原理
  • ChatDocs完全指南:如何快速搭建本地文档智能问答系统
  • 2026 年长武靠谱的2507不锈钢管平台深度剖析,扔掉304吧!这种双相钢才是化工厂真正的省钱利器 - 行业推荐【认证官】
  • Docker容器化部署:AMD MiniMax-M2.1-MXFP4生产环境最佳实践
  • 内存狂飙到32G导致OOM?我用C# IMemoryOwner手搓“零拷贝”引擎,把国产库驱动的GC压力按在地上摩擦!
  • 宝珀中国官方售后服务中心|服务热线及门店详细地址权威信息声明(2026年7月最新) - 宝珀官方售后服务中心
  • 让AI读懂你的文档:Langchain-Chatchat本地知识库构建实战
  • Redux-cycles vs Redux-thunk:为什么函数式响应式编程是更好的异步解决方案