【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
相关推荐
Piko61420 小时前
H3C IRF2 堆叠实战:打造高可靠核心交换网络
运维·网络·笔记
JAVA面经实录91720 小时前
Linux 常用命令完整知识体系
java·linux·开发语言·汇编
Quincy_Freak21 小时前
信创内网数据规范实践:银河麒麟下SQLite本地数据安全管理方案
数据库·sqlite·arm·数据库管理·大数据分析·银河麒麟·aarch64
万联WANFLOW1 天前
SD-WAN 控制平面高可用怎么做?SDWAN 控制器挂了,全网会发生什么
运维·网络·分布式·架构
踩着两条虫1 天前
可视化 vs 终端 vs 云端:VTJ.PRO、Claude Code、Codex 三强横评
前端·vue.js·人工智能·低代码·架构
Fabarta1 天前
从 0 实现 ChatGPT 风格的流式对话 UI
算法·架构
程序员老油条1 天前
WSL2 + Docker Desktop:Windows 下的完美 Java 开发环境
java·windows·docker·wsl2
搭贝1 天前
低代码平台私有化部署架构与信创全栈适配实战
低代码·架构·rxjava
dexi.Chi 攻城狮1 天前
SQL层次查询语法
经验分享·笔记·sql
学渣超1 天前
记一次分布式事务数据不一致的排查之旅:从超时到索引,层层剥茧
java·后端·架构