【Windows】QEMU 启动 openEuler aarch64/arm64 架构系统 + 离线软件源

【Windows】QEMU 启动 openEuler aarch64/arm64 架构系统

一、下载 openEuler aarch64/arm64 架构镜像

openEuler 镜像下载地址

下载页面

下载某一版本镜像

  • 架构:aarch64 架构
  • 场景:云计算(这里有qcow2格式镜像)
  • 下载后是下面的压缩包,找工具解压即可的到qcow2镜像

二、找一个 QEMU_EFI.fd 文件

QEMU_EFI.fd 是 QEMU 模拟器专用的 UEFI 固件镜像文件 ,本质是EDK2 (TianoCore) 项目为 ARM64 架构编译的虚拟固件 ,作用相当于真实计算机主板上的UEFI BIOS 芯片

我提供一个我自己找的 QEMU_EFI.fd 下载吧

三、写一个启动qemu的bat脚本

可以直接执行命令启动,也可以方便的将命令写入bat脚本中,方便重复执行。

我这里提供一个我自己的bat脚本,因为我的这个是最后完全使用的,所以其中有一个iso文件,那是后面会说到的一个工具包文件,因为qemu上使用dnf连网下载太慢了,所以用这个挂载配置本地源来使用。

仅供参考:

powershell 复制代码
@echo off
setlocal enabledelayedexpansion
chcp 65001 >nul
cls
title openEuler 22.03 ARM64 Control Panel

:: ===================== 你的 everything ISO 文件路径 =====================
set "ISO_FILE=openEuler-22.03-LTS-SP1-everything-aarch64-dvd.iso"
:: ============================================================================

echo.
echo ============================================================
echo            openEuler 22.03-LTS-SP1 ARM64 VM
echo ============================================================
echo.
echo  [VM Configuration]
echo  - RAM: 8192 MB (8GB)
echo  - CPU Cores: 8
echo  - Arch: ARM64 (aarch64)
echo  - Image: openEuler 22.03-LTS-SP1-aarch64.qcow2
echo.
echo  [Login Info]
echo  - Username: root
echo  - Password: openEuler12#$
echo.
echo  [Network]
echo  - SSH Forward: Windows 2222 → VM 22
echo  - Xshell/XFTP: 127.0.0.1 Port 2222
echo.
echo  [Operations]
echo  - Normal Shutdown: Run command "poweroff" in VM
echo  - Force Stop: Close the VM running window directly
echo ============================================================
echo.
:: 自动检测 ISO 是否存在
set "CDROM_ARG="
if exist "%ISO_FILE%" (
    echo  [✅STATUS] ISO file detected, loading virtual CD-ROM
    set "CDROM_ARG=-drive file="%ISO_FILE%",format=raw,if=virtio,media=cdrom"
) else (
    echo  [✅STATUS] No ISO file detected, starting VM normally
)
echo.
echo  [✅STATUS] VM is starting in a new window...
echo.

start "openEuler ARM64 Running Window" /wait qemu-system-aarch64.exe ^
-m 8192 ^
-smp 8 ^
-cpu cortex-a72 ^
-machine virt ^
-bios QEMU_EFI.fd ^
-drive file=openEuler-22.03-LTS-SP1-aarch64.qcow2,format=qcow2,if=virtio ^
!CDROM_ARG! ^
-net nic,model=virtio ^
-net user,hostfwd=tcp::2222-:22 ^
-nographic

echo.
echo ============================================================
echo  [STATUS] VM has been CLOSED!
echo  Exit Code: %errorlevel%
echo ============================================================
echo.
echo  Press any key to close this window...
pause >nul

四、下一个离线软件包ISO(可以,但建议)

aarch64架构的全量安装ISO,包含了运行完整系统所需的全部组件

  • 还是前面下载qcow2镜像的页面
  • 场景:服务器
  • 下载:Offline Everything ISO
  • 下载好后,就是一个非常大的iso文件

五、启动虚拟机

将前面下载的四个东西放在一起,点击脚本启动虚拟机即可。

脚本会启动两个窗口

一个窗口是我显示的系统信息和登录默认用户名密码。

一个窗口是系统启动的窗口

我这里是执行着 top 命令,你进去是登录,让输入用户名和密码,按上面信息输入即可,都是默认用户名和密码。

六、远程连接

我这用的连接工具:Xshell/XFTP(也可以用其他工具,ssh连接工具很多的)

连接信息:

  • 主机:127.0.0.1
  • 端口:2222
  • 用户名:root
  • 密码:openEuler12#$

连接成功后,你可以在Xshell/XFTP中操作虚拟机,Xshell可以打开Xftp,传文件用它也方便,当然你scp也行。

七、配置软件源

(一)挂载光驱

1. 查看光驱

lsblk 能看到 vdb 就是通过 QEMU 虚拟光驱加载的 openEuler ISO 镜像!

bash 复制代码
[root@localhost ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
vda    253:0    0   40G  0 disk 
├─vda1 253:1    0    2G  0 part /boot
└─vda2 253:2    0   38G  0 part /
vdb    253:16   0 16.1G  1 disk

2. 挂载光驱

mount 的时候出现 mount: /mnt/cdrom: WARNING: source write-protected, mounted read-only. 这个警告完全从正常,不是错误,挂载已经成功了

bash 复制代码
# 创建挂载目录
mkdir -p /mnt/cdrom

# 挂载vdb(你的光驱)
mount /dev/vdb /mnt/cdrom

# 验证挂载成功(能看到文件就是没问题)
ls /mnt/cdrom

(二)本地 DNF 源配置

1. 备份系统原有网络源(防止冲突)

bash 复制代码
mkdir -p /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak/ 2>/dev/null

2. 创建本地 DVD 源配置文件

bash 复制代码
cat > /etc/yum.repos.d/local-dvd.repo << EOF
[LocalDVD]
name=openEuler 22.03 Local DVD Source
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0
EOF

3. 清空旧缓存 + 生成新的本地缓存

bash 复制代码
dnf clean all
dnf makecache
相关推荐
AIHR数智引擎1 小时前
KPI物理失效:AI原生组织的效能重构与技能度量
人工智能·经验分享·职场和发展·重构·ai-native·aihr
张飞飞飞飞飞1 小时前
Tmux命令使用教程
linux·服务器·ubuntu
自传.1 小时前
尚硅谷 Vibe Coding|第三章(1) Claude Code深度使用与进阶技巧 学习笔记
笔记·学习·尚硅谷·vibecoding
Fcy6482 小时前
Linux下 可重入函数、volatile关键字和SIGCHLD信号
linux·可重入函数·volatile关键字·sigchld
qeen872 小时前
【Linux】Linux简单介绍与基本指令(上)
linux·运维·服务器·学习
.千余2 小时前
【C++】模板进阶全解:非类型参数|全特化|偏特化|分离编译完全指南
开发语言·c++·笔记·学习·其他
自传.2 小时前
尚硅谷 Vibe Coding|第二章 AI编程工具生态 学习笔记
笔记·学习·ai编程·尚硅谷·vibe coding
caimouse3 小时前
Reactos 第 10 章 网络操作 — 10.3.1 NIC驱动
网络·windows
tianyuanwo3 小时前
深入解析 RISC-V 虚拟化中的 UEFI 固件配置:从 XML 到 NVRAM 的生命周期管理
xml·linux·risc-v