基础环境#
系统: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
2、下载 QEMU_EFI.fd 固件,下载地址:https://releases.linaro.org/components/kernel/uefi-linaro/16.02/release/qemu64/。
3、下载 ARM 镜像,进入 OpenEuler 官网,在镜像仓列表中找到并下载 openEuler-22.03-LTS-SP4-aarch64-dvd.iso 镜像。
4、安装 tap-windows,安装完成后在本机的网卡适配器中会出现一个为TAP-Windows Adapter V9
的网卡,并将其名改为tap0
。(刚安装时网卡为未连接状态)
5、共享本机无线网卡(本篇中名为WLAN 1)
的网络。右击本机无线网卡(WLAN 1)的属性,在 WLAN 属性 - 共享中将网络共享给tap0
。如下图。
安装过程#
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 挂载部分去除得到的
2、配置系统 IP 地址。使用 tap0 网卡的地址作为网关,配置完成并启用后,使用 ssh 工具连接。
若出现测试网络联通性失败的情况,进行以下操作:
1、取消共享无线网卡的网络
2、重新共享网络
3、启动虚拟机
8、测试网络的连通性,可成功访问网络。
此时安装的 ARM 架构的虚拟机可正常访问网络,但进行发布的业务无法在本地主机访问。即虚拟机可访问互联网,但无法访问本地主机。
本地主机连通虚拟机业务#
要成功访问虚拟机中发布的业务,需要使用一个新的无线网卡(本篇中名为 WLAN 2),用来和 tap0 进行桥接
。
1、将两张无线网卡连接同一网络中,在控制面板 - 网络连接中,按住Ctrl
, 分别选中网卡tap0
和WLAN 2
,右键选择桥接,创建一个网桥。
当 tap0 和 WLAN 2 都显示 “已启用,桥接的”,且网桥处显示连接到的无线网络名称时,在本地主机和虚拟机中均可 ping 通对方地址。(此时本地主机的 ip 应使用 WLAN 分配的)
2、右键查看网桥属性,在Internet协议版本 4(TCP/IPv4)属性
中可查看到网关地址与本机一致。
3、将虚拟机的网关修改为网关对应地址,关闭虚拟机。重新使用命令启动虚拟机。
若虚拟机和本地主机均可 ping 通互联网且可相互 ping 通,此时在本地主机可正常访问虚拟机发布业务。