当前位置: 首页 > news >正文

在Windows11上通过QEMU搭建ARM64服务器:以openEuler为例

1. 为什么要在Windows11上搭建ARM64服务器?

最近几年ARM架构的处理器越来越火,从手机芯片到苹果M系列处理器,再到各种云服务器,ARM64架构正在快速崛起。作为开发者,我们经常需要在本地搭建测试环境,但大多数人的主力机还是x86架构的Windows电脑。这时候QEMU就派上用场了——它能在x86电脑上完美模拟ARM64环境。

我在实际项目中遇到过很多需要ARM64环境的情况,比如:

  • 开发跨平台应用时测试ARM64兼容性
  • 学习ARM架构的汇编语言和系统编程
  • 在本地搭建轻量级服务器进行开发测试
  • 体验openEuler等国产操作系统

传统做法是购买ARM开发板或者租用云服务器,但前者成本高,后者延迟大。用QEMU在本地搭建环境,既省钱又方便调试。下面我就手把手教你如何在Windows11上,用QEMU搭建一个完整的ARM64服务器环境。

2. 准备工作:下载必要组件

2.1 安装QEMU模拟器

QEMU是目前最强大的开源虚拟机软件,支持跨架构模拟。Windows版本可以直接从官网下载:

https://qemu.weilnetz.de/w64/

建议选择最新稳定版,我测试时用的是qemu-w64-setup-20231211.exe。安装过程很简单,一路Next就行,但记得勾选"Add QEMU to the system PATH for all users",这样后面在命令行使用会更方便。

2.2 获取UEFI固件文件

由于我们要模拟的是ARM64架构,需要专门的UEFI固件。推荐使用Linaro提供的版本:

https://releases.linaro.org/components/kernel/uefi-linaro/latest/release/qemu64/QEMU_EFI.fd

下载后建议放在一个简单的路径,比如我放在了D:\QEMU目录下。这个文件很关键,后续启动虚拟机时要用到。

2.3 下载openEuler镜像

openEuler是华为开源的Linux发行版,对ARM架构支持很好。我们到官网下载aarch64版本:

https://www.openeuler.org/zh/download/

建议选择LTS长期支持版本,我使用的是openEuler-20.03-LTS-SP3。清华镜像站下载速度更快:

https://mirrors.tuna.tsinghua.edu.cn/openeuler/openEuler-20.03-LTS-SP3/ISO/aarch64/openEuler-20.03-LTS-SP3-aarch64-dvd.iso

3. 配置虚拟网络环境

3.1 安装TAP虚拟网卡

要让虚拟机联网,需要先安装TAP虚拟网卡驱动。从OpenVPN官网下载:

https://build.openvpn.net/downloads/releases/tap-windows-9.24.7-I601-Win10.exe

安装完成后,在"网络连接"里会多出一个"TAP-Windows Adapter V9"的网卡。建议重命名为简单好记的名字,比如"tap-arm",后面配置时会用到。

3.2 设置网络共享

右键点击主机的物理网卡(比如WIFI或者以太网),选择"属性"→"共享",勾选"允许其他网络用户通过此计算机的Internet连接来连接",在下拉菜单中选择刚才创建的TAP虚拟网卡。

这一步是关键,相当于把主机的网络共享给虚拟机使用。如果配置正确,虚拟机的网卡会自动获取IP地址。

4. 创建并安装虚拟机

4.1 创建虚拟磁盘

打开PowerShell,使用qemu-img命令创建虚拟磁盘:

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

这里解释下参数:

  • -f qcow2:使用qcow2格式,支持动态扩容
  • 20G:分配20GB空间(实际不会立即占用20G物理空间)

4.2 启动安装程序

这是最复杂的部分,需要输入一长串命令:

qemu-system-aarch64 -m 4G -cpu cortex-a72 -smp 4 -M virt -bios D:\QEMU\QEMU_EFI.fd -net nic -net tap,ifname=tap-arm -device nec-usb-xhci -device usb-kbd -device usb-mouse -device VGA -drive if=none,file=D:\QEMU\openEuler-20.03-LTS-SP3-aarch64-dvd.iso,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -drive if=none,file=D:\QEMU\openEuler-arm64.img,id=hd0 -device virtio-blk-device,drive=hd0

关键参数说明:

  • -m 4G:分配4GB内存
  • -cpu cortex-a72:模拟ARM Cortex-A72 CPU
  • -smp 4:使用4个CPU核心
  • -net tap,ifname=tap-arm:使用之前创建的虚拟网卡
  • -device VGA:启用图形界面(安装系统必须)

执行后会弹出QEMU窗口,开始安装openEuler。安装过程可能会比较慢,建议耐心等待。

5. 系统配置与远程连接

5.1 首次启动配置

安装完成后,用以下命令启动虚拟机(去掉ISO相关参数):

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

首次启动需要完成一些初始化设置,比如创建用户、设置密码等。建议创建一个具有sudo权限的普通用户,而不是直接使用root账户。

5.2 配置SSH远程连接

默认情况下网卡可能不会自动启用,需要手动配置:

cd /etc/sysconfig/network-scripts/ vi ifcfg-eth0

将ONBOOT=no改为ONBOOT=yes,保存后重启网络服务:

systemctl restart network

然后用ifconfig查看IP地址,就可以用Xshell、MobaXterm等工具SSH连接了。这样操作比在QEMU窗口里方便得多。

6. 性能优化与实用技巧

6.1 启用KVM加速(可选)

如果你的Windows11支持WSL2,可以通过以下步骤启用KVM加速:

  1. 确保BIOS中开启了虚拟化支持
  2. 安装WSL2和Linux发行版
  3. 在Linux子系统中运行QEMU,添加-enable-kvm参数

这样性能会有显著提升,特别是对于CPU密集型任务。

6.2 共享文件夹配置

要实现宿主机和虚拟机之间的文件共享,可以这样操作:

  1. 在Windows上创建一个共享文件夹
  2. 在openEuler中安装samba客户端
  3. 使用mount.cifs命令挂载共享目录

具体命令示例:

sudo yum install cifs-utils sudo mkdir /mnt/share sudo mount -t cifs //192.168.1.100/share /mnt/share -o username=winuser,password=123456

6.3 常见问题解决

我在实践中遇到过几个典型问题:

  1. 启动时卡在UEFI界面:通常是-bios参数指定的路径不对,检查UEFI文件路径
  2. 网络连接失败:确认TAP网卡名称是否正确,ifname参数要完全匹配
  3. 图形界面黑屏:确保添加了-device VGA参数
  4. 性能太差:尝试减少CPU核心数或内存大小,或者改用KVM加速

7. 进阶应用场景

7.1 搭建开发测试环境

配置好基础环境后,可以进一步安装开发工具链:

sudo yum install gcc make git python3

这样就能在ARM64环境下编译和测试代码了。特别适合需要交叉编译的场景,比如开发IoT设备应用。

7.2 部署轻量级服务

openEuler自带了Docker支持,可以方便地部署各种服务:

sudo yum install docker sudo systemctl start docker sudo docker run -d -p 8080:80 nginx

这样就在ARM64环境下运行了一个Nginx服务器,完全模拟了生产环境。

7.3 集群实验环境

通过复制多个虚拟磁盘文件,可以轻松创建多个ARM64虚拟机,搭建分布式系统的实验环境。配合虚拟网络配置,能够模拟真实的服务器集群。

我在学习Kubernetes时就用这种方法搭建了3节点的ARM64集群,完全不需要额外硬件投入。QEMU的命令行参数支持脚本化,可以编写批处理文件一键启动多个虚拟机。

http://www.jsqmd.com/news/808895/

相关文章:

  • 免拆机解锁AX201网卡黑苹果上网:OC引导+HeliPort实战指南
  • ChatLaw终极指南:如何用中文法律大模型构建你的专属AI律师
  • 高效部署工具完全手册:APK Installer在Windows平台的专业实践指南
  • 构建可信智能体:KYA框架下的透明度、可解释性与工程实践
  • 2026年无锡充电桩运营系统与社区生态物联解决方案横评指南 - 精选优质企业推荐官
  • 别再手动画表格了!用AxureRP9中继器5分钟搞定动态数据增删改查
  • 青岛丰唇医生哪个好?2026年口碑不错的专家名单 - GrowthUME
  • 小学AI教育隐私保护:从技术架构到实践部署的伦理框架
  • iPhone本地离线AI部署实战:从模型选择到Swift集成全流程
  • 从芯片设计到知识管理:构建工程师的数字遗产与团队智慧资产
  • Blender水流模拟革命:Waterways插件程序化生成动态河流
  • 华为和信通院发了一份AI安全报告
  • 2026年,这些目前知名的衬氟轴流泵制造商,你都知道吗? - GrowthUME
  • ClawZero:基于信息流控制的AI智能体执行防火墙实战指南
  • 放心之选!西安超声炮正版仪器究竟凭啥赢得大家信任? - GrowthUME
  • 开源AI健康数据分析框架:构建个人化健康数据中枢与洞察引擎
  • 创意编码工具包vibecodekit:从图形渲染到音频交互的完整开发指南
  • 2026年柯桥高中数学辅导机构对比评测:基于“可验证制度”的深度解析 - nigel37
  • 终极JPEGView图像查看器:轻量高效的Windows图片浏览解决方案
  • AI驱动下核扩散风险量化分析:PETs与DETs的攻防博弈与相对优势指数模型
  • 2026年无锡充电桩运营系统深度横评:从社区两轮到全场景SaaS赋能解决方案 - 精选优质企业推荐官
  • Windows安卓应用安装工具终极指南:轻量级APK安装方案完全解析
  • Linux已程序已经运行起来了,此时把可执行文件或者动态库删除,程序会崩溃吗
  • 终极指南:5分钟掌握通达信缠论可视化插件的完整教程
  • 恒盛通美线直飞空派专线的时效稳定吗? - 恒盛通物流
  • 福州福人贸易有限公司:福人精板福州运营中心,引领饰面板行业的设计时尚与环保标杆 - 品牌策略师
  • 工业建筑板材服务商 - GrowthUME
  • 杭州地区优质劳动仲裁律师综合分析与推荐 - GrowthUME
  • Ubuntu 22.04升级后,Chrome总提示‘连接中断’?别急着重装,试试这个代理设置修复法
  • 虫草食用方法哪家最实用?搞懂这些,少走90%弯路 - GrowthUME