banner
云野阁

云野阁

闲云野鹤,八方逍遥

Windows 10(x86_64)使用QEMU安装ARM虚拟机

基础环境#

系统:Windows 10

硬件:双网卡(本篇中使用的是两个无线网卡)

所需软件:QEMU、tap-windows

所需软件固件:QEMU_EFI.fd

ARM 镜像:openEuler-22.03-LTS-SP4-aarch64-dvd.iso

环境准备#

1、进入 QEMU 官网https://qemu.weilnetz.de/,下载 exe 程序,本篇中使用的是qemu-w64-setup-20240903.exe, 按引导进行安装。(最新版无需配置环境变量)

打开命令提示符输入qemu-system-aarch64 -version,查看到其详细版本号即为安装成功。

QEMU emulator version 9.1.0 (v9.1.0-12064-gc658eebf44)

Copyright (c) 2003-2024 Fabrice Bellard and the QEMU Project developers

1

2、下载 QEMU_EFI.fd 固件,下载地址:https://releases.linaro.org/components/kernel/uefi-linaro/16.02/release/qemu64/

2

3、下载 ARM 镜像,进入 OpenEuler 官网,在镜像仓列表中找到并下载 openEuler-22.03-LTS-SP4-aarch64-dvd.iso 镜像。

3

4、安装 tap-windows,安装完成后在本机的网卡适配器中会出现一个为TAP-Windows Adapter V9的网卡,并将其名改为tap0。(刚安装时网卡为未连接状态)

4

5、共享本机无线网卡(本篇中名为WLAN 1)的网络。右击本机无线网卡(WLAN 1)的属性,在 WLAN 属性 - 共享中将网络共享给tap0。如下图。

5

安装过程#

1、将 QEMU_EFI.fd 和 openEuler-22.03-LTS-SP4-aarch64-dvd.iso 镜像放在同一文件夹中,在该文件夹下打开命令指示符

2、输入命令为虚拟机创建一个虚拟磁盘文件。

qemu-img.exe create -f qcow2 "F:\arm-os-test\openeuler.qcow2" 60G
  • qemu-img.exe: 调用 QEMU 的图像管理工具。

  • create: 指令用于创建一个新的磁盘映像文件。

  • -f qcow2: 指定要创建的文件格式为 QCOW2,这是一种支持压缩和快照的格式。

  • "F:\arm-os-test\openeuler.qcow2": 指定虚拟硬盘的文件路径及名称。

  • 60G: 设置虚拟硬盘的大小为 60 GB。

命令执行后会在该文件夹下生成一个名为openeuler.qcow2的磁盘文件。

3、执行命令,安装 openEuler。

 qemu-system-aarch64.exe -m 8192 -cpu cortex-a72 -smp 4,sockets=2,cores=2 -M virt -bios "F:\arm-os-test\QEMU_EFI.fd" -net nic -net tap,ifname=tap0 -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file="F:\arm-os-test\openeuler.qcow2",id=hd0 -device virtio-blk-device,drive=hd0 -drive if=none,file="F:\arm-os-test\openEuler-22.03-LTS-SP4-aarch64-dvd.iso",id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom
  • qemu-system-aarch64.exe: 启动 AArch64 架构的 QEMU 模拟器。

  • -m 8192: 分配 8 GB 的内存给虚拟机。

  • -cpu cortex-a72: 指定使用 Cortex-A72 CPU 模型。

  • -smp 4,sockets=2,cores=2: 配置 4 个 CPU 核心,分为 2 个插槽,每个插槽 2 个核心。

  • -M virt: 使用 “virt” 机器类型,适合虚拟化。

  • -bios "F:\arm-os-test\QEMU_EFI.fd": 指定 EFI BIOS 文件。

  • -net nic -net tap,ifname=tap0: 设置网络,使用 NIC 和 tap 接口。

  • -device VGA: 添加 VGA 显示设备。

  • -device nec-usb-xhci: 添加 USB 控制器。

  • -device usb-mouse -device usb-kbd: 添加 USB 鼠标和键盘设备。

  • -drive if=none,file="F:\arm-os-test\openeuler.qcow2",id=hd0 -device virtio-blk-device,drive=hd0: 配置一个 VirtIO 块设备作为主磁盘。

  • -drive if=none,file="F:\arm-os-test\openEuler-22.03-LTS-SP4-aarch64-dvd.iso",id=cdrom,media=cdrom: 设置 CD-ROM 驱动器,使用指定的 ISO。

  • -device virtio-scsi-device -device scsi-cd,drive=cdrom: 添加 SCSI 控制器,并连接 CD-ROM 驱动器。

执行命令后,在弹出的系统安装界面,按引导进行系统的配置和安装。

连接互联网#

1、系统安装完成后,在 tap0 网卡的属性中查看 ip 地址,将 ip 地址改为与主机同一网段的 ip,DNS 和网关与主机一致。执行命令启动系统。

qemu-system-aarch64.exe -m 8192 -cpu cortex-a72 -smp 4,sockets=2,cores=2 -M virt -bios "F:\arm-os-test\QEMU_EFI.fd" -net nic -net tap,ifname=tap0 -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file="F:\arm-os-test\openeuler.qcow2",id=hd0 -device virtio-blk-device,drive=hd0

启动系统命令是将安装命令中去除 iso 挂载部分去除得到的

6

2、配置系统 IP 地址。使用 tap0 网卡的地址作为网关,配置完成并启用后,使用 ssh 工具连接。

7

若出现测试网络联通性失败的情况,进行以下操作:

1、取消共享无线网卡的网络

2、重新共享网络

3、启动虚拟机

8、测试网络的连通性,可成功访问网络。

8

此时安装的 ARM 架构的虚拟机可正常访问网络,但进行发布的业务无法在本地主机访问。即虚拟机可访问互联网,但无法访问本地主机。

本地主机连通虚拟机业务#

要成功访问虚拟机中发布的业务,需要使用一个新的无线网卡(本篇中名为 WLAN 2),用来和 tap0 进行桥接

1、将两张无线网卡连接同一网络中,在控制面板 - 网络连接中,按住Ctrl, 分别选中网卡tap0WLAN 2 ,右键选择桥接,创建一个网桥。

9

当 tap0 和 WLAN 2 都显示 “已启用,桥接的”,且网桥处显示连接到的无线网络名称时,在本地主机和虚拟机中均可 ping 通对方地址。(此时本地主机的 ip 应使用 WLAN 分配的)

2、右键查看网桥属性,在Internet协议版本 4(TCP/IPv4)属性中可查看到网关地址与本机一致。

10

3、将虚拟机的网关修改为网关对应地址,关闭虚拟机。重新使用命令启动虚拟机。

若虚拟机和本地主机均可 ping 通互联网且可相互 ping 通,此时在本地主机可正常访问虚拟机发布业务。

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。