前言

本文将指导你在Windows系统上使用QEMU虚拟化工具安装openEuler的aarch64版本,这对于需要在Windows环境下进行ARM架构开发和测试的用户非常有用。

准备工作

在开始之前,请确保你的Windows系统满足以下要求:

  • Windows 10或11(64位)
  • 至少8GB内存(推荐16GB)
  • 50GB可用磁盘空间
  • 已启用Hyper-V或关闭Hyper-V(QEMU与Hyper-V可能有冲突

第一步:安装QEMU for Windows

1、下载QEMU for Windows安装包:
访问 QEMU for Windows – Installers (64 bit) 下载最新版本的QEMU for Windows(如qemu-w64-setup-20250422.exe

2、运行安装程序:

  • 选择安装路径(建议使用默认路径)
  • 确保勾选"Add QEMU to the system PATH for all users"选项
  • 完成安装

3、验证安装:

打开命令提示符(cmd)或PowerShell,运行:

qemu-system-aarch64 --version

应该能看到QEMU的版本信息

第二步:准备安装文件

1、下载openEuler aarch64 ISO镜像:

openEuler-24.03-LTS-SP1-aarch64-dvd.iso

从官网手动下载:https://mirror.nyist.edu.cn/openeuler/openEuler-24.03-LTS-SP1/ISO/aarch64/openEuler-24.03-LTS-SP1-aarch64-dvd.iso

2、创建虚拟磁盘:

qemu-img create -f qcow2 openEuler-aarch64.qcow2 20G

3、下载UEFI固件(用于AArch64虚拟机的启动):

qemu_efi.fd

下载地址: https://releases.linaro.org/components/kernel/uefi-linaro/

第三步:配置并启动QEMU虚拟机

1、cmd执行启动脚本:

qemu-system-aarch64.exe -m 4G -cpu cortex-a72 -smp 8,sockets=4,cores=2 -M virt -bios D:\arm\QEMU_EFI.fd -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file=D:\arm\openEuler-aarch64.qcow2,id=hd0 -device virtio-blk-device,drive=hd0 -drive if=none,file=D:\arm\openEuler-24.03-LTS-aarch64-dvd.iso,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom

2、双击运行start_vm.bat启动虚拟机

第四步:安装openEuler系统

1、虚拟机启动后,你会看到GRUB引导菜单,选择"Install openEuler 24.03-LTS"

2、按照安装向导进行操作:

  • 选择语言(建议英文)
  • 配置安装目标:选择创建的虚拟磁盘
  • 设置root密码
  • 创建普通用户(可选)
  • 开始安装

3、安装完成后,系统会提示重启

4、修改启动脚本,移除CDROM引导

编辑start_vm.bat,删除或注释掉-cdrom %ISO%这一行

5、重新启动脚本进入已安装的系统

第五步:网络配置(需要有虚拟网卡,可以安装openvpn)

安装完成后,在openEuler中配置静态IP或DHCP:

# 查看网卡名称
ip a
# 编辑网络配置
vi /etc/sysconfig/network-scripts/ifcfg-eth0

配置文件内容示例:

TYPE=Ethernet
BOOTPROTO=static   ## 设置成静态ip
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
ONBOOT=yes
IPADDR=192.168.100.10   #指定ip地址
NETMASK=255.255.255.0
GATEWAY=192.168.100.1   #看虚拟网卡的网关  
DNS1=8.8.8.8
DNS2=8.8.4.4

指定网卡启动虚拟机

qemu-system-aarch64 -m 4G -cpu cortex-a72 -smp 4,cores=4,threads=1,sockets=1 -M virt -bios D:\arm\QEMU_EFI.fd -net nic -net tap,ifname=tap0 -device nec-usb-xhci -device usb-kbd -device usb-mouse -device VGA -drive if=none,file=D:\arm\openEuler-aarch64.qcow2,id=hd0 -device virtio-blk-device,drive=hd0

第六步:配置启动脚本

创建一个启动脚本start_vm.bat

@echo off
:: QEMU 启动脚本 for OpenEuler ARM64
:: 请根据实际情况修改路径

set QEMU_PATH="D:\qemu\qemu-system-aarch64.exe"
:: 如果qemu-system-aarch64.exe在系统PATH环境变量中,可以注释掉上面这行,直接使用qemu-system-aarch64

set MEMORY=4000
set CPU=cortex-a72
set SMP=4,cores=4,threads=1,sockets=1
set MACHINE=virt
set BIOS_FILE="D:\arm\QEMU_EFI.fd"
set TAP_INTERFACE=tap0
set DISK_IMAGE="D:\arm\openEuler-aarch64.qcow2"

echo 正在启动 QEMU 虚拟机...
echo.

%QEMU_PATH% ^
-m %MEMORY% ^
-cpu %CPU% ^
-smp %SMP% ^
-M %MACHINE% ^
-bios %BIOS_FILE% ^
-net nic ^
-net tap,ifname=%TAP_INTERFACE% ^
-device nec-usb-xhci ^
-device usb-kbd ^
-device usb-mouse ^
-device VGA ^
-drive if=none,file=%DISK_IMAGE%,id=hd0 ^
-device virtio-blk-device,drive=hd0

:: 检查QEMU是否成功启动
if %errorlevel% neq 0 (
    echo.
    echo QEMU 启动失败!请检查:
    echo 1. QEMU 是否已正确安装?
    echo 2. 路径 "%QEMU_PATH%" 是否正确?
    echo 3. BIOS 文件 "%BIOS_FILE%" 是否存在?
    echo 4. 磁盘镜像 "%DISK_IMAGE%" 是否存在?
    echo 5. TAP 网络接口 "%TAP_INTERFACE%" 是否已创建并配置?
    pause
)

echo.
echo QEMU 已退出。
pause

双击运行start_vm.bat启动虚拟机

常见问题解决

性能问题:

  • QEMU在Windows上使用TCG加速可能较慢
  • 可以尝试减少内存或CPU核心数
  • 考虑使用WSL2中的QEMU可能获得更好性能

网络问题:

  • 确保Windows防火墙没有阻止QEMU
  • 可以尝试不同的网络模式(如tap)

显示问题:

  • 如果GTK显示有问题,可以尝试-display sdl-display vnc

优化建议

启用KVM加速(如果Windows支持):

  • 需要Windows Subsystem for Linux 2 (WSL2)
  • 在WSL2中安装QEMU可能获得更好性能

调整内存大小:

  • 根据主机配置调整-m参数的值

使用VirtIO驱动:

  • 可以获得更好的磁盘和网络性能

结语

通过本指南,你应该已经成功在Windows上使用QEMU运行了openEuler的aarch64版本。这种方法非常适合需要在Windows环境下进行ARM架构开发和测试的场景。虽然性能可能不如原生ARM硬件,但它提供了一个方便的测试和学习环境。

转自:在Windows X86上使用QEMU安装openEuler aarch64版本的详细指南_qemu openeuler aarch64-CSDN博客

Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐