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

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 进行命令行访问。这种配置特别适合需要在不同架构间进行交叉编译和测试的开发场景。