基礎環境#
系統: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 通,此時在本地主機可正常訪問虛擬機發布業務。