Windows(x86)下QEMU构建虚拟arm架构Linux

安装虚拟机

下载QEMU虚拟机

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

下载系统镜像

https://www.kylinos.cn/support/trial/download/

新建目录:

举例,在D盘新建三个文件夹:

  • qemu:虚拟机软件目录
  • vm:虚拟机镜像目录
  • ISO:系统镜像目录

安装虚拟机

下载启动项

网络驱动程序链接:http://releases.linaro.org/components/kernel/uefi-linaro/16.02/release/qemu64/

创建虚拟机镜像盘

CMD指令: qemu-img create D:\vm\kylinv10arm.img 30G

运行虚拟机

CMD指令:

1
qemu-system-aarch64.exe -m 6144 -cpu cortex-a76 -smp 8,sockets=4,cores=2 -M virt -bios D:\vm\QEMU_EFI.fd -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file=D:\vm\kylinv10arm.img,id=hd0 -device virtio-blk-device,drive=hd0 -drive if=none,file=D:\ISO\Kylin-Server-V10-SP3-2403-Release-20240426-ARM64.iso,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom

参数详情

    • m 8192 表示分配给虚拟机的内存最大 8192 MB
  • -cpu cortex-a76 指定CPU类型,还可以选择cortex-a53、cortex-a57、cortex-a76等

  • -smp 4,cores=4,threads=1,sockets=1,cores=2指定虚拟机最大使用的CPU核心数等

  • -M virt 指定虚拟机类型为virt,具体支持的类型可以使用 qemu-system-aarch64 -M help 查看

  • -bios D:\vm\QEMU_EFI.fd 指定UEFI固件文件

  • -net nic,model=pcnet 启用网络功能

  • -device nec-usb-xhci -device usb-kbd -device usb-mouse 启用USB鼠标等设备

  • -device VGA 启用VGA视图,对于图形化的Linux这条很重要!

  • -drive if=none,file=Z:\uos.iso,id=cdrom,media=cdrom 指定光驱使用镜像文件

  • -device virtio-scsi-device -device scsi-cd,drive=cdrom 指定光驱硬件类型

  • -drive if=none,file=Z:\uos.img 指定硬盘镜像文件

正常安装系统即可

配置网卡

vim /etc/sysconfig/network-scripts/ifcfg-enp0s1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s1
UUID=8d0cb7ef-6ccc-4a5e-ae26-e40a686e5ddc
DEVICE=enp0s1
ONBOOT=yes
IPADDR=192.168.9.165
GATEWAY=192.168.9.1
DNS1=114.114.114.114
DNS2=8.8.8.8
FPREFIX=24
PREFIX=24
1
2
3
sudo systemctl restart NetworkManager
nmcli con down enp0s1
nmcli con up enp0s1

注:此时虚拟机只能由物理机单向访问

重启虚拟机

系统安装完成后想再启动虚拟机,不用再指定系统镜像ISO文件。

CMD指令:

1
qemu-system-aarch64.exe -m 6144 -cpu cortex-a72 -smp 2,cores=2,threads=1,sockets=1 -M virt -bios D:\vm\QEMU_EFI.fd -device nec-usb-xhci -device usb-kbd -device usb-mouse -device VGA -device virtio-scsi-device -drive if=none,file=D:\vm\kylinv10arm.img,id=hd0 -device virtio-blk-device,drive=hd0 -net nic,model=pcnet -net user,hostfwd=tcp::2222-:22

映射到本机`root@127.0.0.1:2222`端口

虚拟机网络设置

关闭虚拟机

安装虚拟网卡

安装TAP-WindowsOpenVPN(仅需安装TAP-Windows模块),这里使用OpenVPNhttps://openvpn.net/community/

选择Customize自定义安装

只安装TAP-Windows驱动

此时在系统-网络连接中TAP-Windows已添加到网络适配器的硬件设备。显示未启用状态是因为此时虚拟机还未启动,将虚拟机与物理机桥接后开机即可激活。

桥接

将虚拟网卡命名为tap0(QEMU使用的网卡名称),再同时选中在使用的网卡,这里是以太网2,将它们桥接起来。

注:由于WLAN和以太网2来源于同一路由器,此时需要将WLAN也一并加入网桥

此时将出现桥接后的网桥

注:桥接后物理机可能出现:

  • VPN掉线
  • 网络掉线
  • 静态地址失效

测试网桥ip地址(dhcp)

1
ipconfig

可以看到,这里自动分配了9.20这个IP

关闭Windows Defender防火墙

防止虚拟机不能与物理机正常通信

启动虚拟机(BIOS)

启动bios进行网络测试

1
qemu-system-aarch64.exe -m 6144 -cpu cortex-a72 -smp 2,cores=2,threads=1,sockets=1 -M virt -bios D:\vm\QEMU_EFI.fd -device nec-usb-xhci -device usb-kbd -device usb-mouse -device VGA -device virtio-scsi-device -drive if=none,file=D:\vm\kylinv10arm.img -net nic -net tap,ifname=tap0

此时虚拟机和物理机已桥接上,虚拟机可以ping通物理机

启动虚拟机

添加硬盘设备

1
qemu-system-aarch64.exe -m 6144 -cpu cortex-a72 -smp 2,cores=2,threads=1,sockets=1 -M virt -bios D:\vm\QEMU_EFI.fd -device nec-usb-xhci -device usb-kbd -device usb-mouse -device VGA -device virtio-scsi-device -drive if=none,file=D:\vm\kylinv10arm.img,id=hd0 -device virtio-blk-device,drive=hd0 -net nic -net tap,ifname=tap0

查看虚拟机网卡ip地址,虽然之前修改过,但是此刻可能也自动变成DHCP了

访问百度,正常

此时远程ssh同样可用。

关闭虚拟机

先前的网络设置会导致网卡重启,主机脱离原有ip,VPN和远程ssh会掉线。

删除网桥

此时本机静态ip恢复,vpn仍不可用

禁用tap0

此时vpn应该可用正常使用。如果还不能使用,需要卸载虚拟网卡,启动虚拟机时再重新按照步骤安装虚拟网卡重新进行

Powered by Hexo and Hexo-theme-hiker

Copyright © 2017 - 2026 青域 All Rights Reserved.

UV : | PV :