当前位置: 首页 > 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.cnnetsun.cn/news/3326666.html

相关文章:

  • 3个秘籍让旧版Python在Windows上重获新生
  • 告别 Demo 陷阱:用 LangGraph 构建可观测的生产级 Agent 工作流
  • Inventory Kamera未来路线图:计划中的新功能和改进方向 [特殊字符]
  • 2026年AI论文生成工具哪家强?5款热门工具实测对比
  • 终极指南:1500+ AI代理技能库如何彻底改变你的开发工作流
  • 如何快速上手Laguna-XS-2.1-bf16:5分钟完成MLX模型安装与推理
  • 探索CountryPicker核心功能:国旗显示、本地化名称与ISO标准支持
  • AI 写达梦/金仓代码疯狂翻车?我手撸了一套“信创专属 AI 生成引擎”,把大模型的方言幻觉按在地上摩擦!
  • 关于算法优化的量化评估与测试框架设计7
  • BSC信道下重复码纠错性能仿真 P124302178 李云徽
  • 如何在macOS上构建Windows应用运行环境的3种终极方案
  • Ream插件开发指南:打造属于你的自定义功能扩展
  • TVA:具身智能动力引擎与能力底座(23)
  • Frame用户系统API启动器:5分钟快速搭建企业级用户管理系统
  • BunnyPHP TLS/SSL安全连接配置完全指南
  • NVIDIA Eagle VLM架构详解:动态分块和混合视觉编码器的创新设计
  • TRON Wallet CLI安全配置指南:多重签名与账户权限设置
  • 探索Rhythm的Material 3设计:打造视觉与听觉的双重盛宴
  • AI Agent自动客服上线前必须完成的17项合规性检查(含GDPR/《生成式AI服务管理暂行办法》双标对照表)
  • Edalize未来路线图:AI辅助硬件设计和云EDA集成的发展趋势
  • FeedFlow隐私保护详解:你的数据如何安全存储与同步
  • 从零到一:使用Wails框架开发数据库管理工具Tiny RDM的完整指南
  • 从0到1开发开心消消乐:Cocos Creator组件化开发最佳实践
  • ReactPrimer新手入门:10分钟学会创建你的第一个组件原型
  • Seekr Docker部署:容器化OSINT环境的搭建与维护
  • HarmonyKit | 鸿蒙开发:API 废弃与迁移策略——从 pushUrl 到 UIContext
  • UVM编译问题
  • kspack-java贡献指南:参与开源项目的详细步骤与最佳实践
  • 【审计专栏——监督监管】【司法领域】【信息科学与工程学】【管理科学】 第三十三篇 公司内部的资源运作和职位运作01 关注人性、资源绑定和制衡博弈
  • 企业级图表协作解决方案:drawio-desktop的战略实施框架