一、使用 win11 x86 系统部署arm架构的虚拟机(银河麒麟为例)
1.1.1、前言
信创的产品越来越多的情况下,最近经常遇到银河麒麟arm架构服务器,此文章而出现。
我们经常使用的是 x86 架构的CPU,这样一来不利于我们练习arm架构,在琢磨arm架构下的一些技术问题,没有arm架构的电脑,钱不够时间来凑,花了一天时间搞定。
不同cpu架构的arm架构的操作系统,可以通过QEMU
模拟器来进行模拟一个arm环境,方便我们后面遇到信创的操作系统是arm架构系统上面的软件进行测试与学习。
随着国产化的推进,现在采用ARM、MIPS的机器越来越多,作为开发、运维人员要调测软件总不能每种架构的机器都去买一台吧?主要像我这样的穷B,实在也是承受不起。 (建议还是去租一台云服务器吧,玩起来太卡了)
1.1.2、准备环境
1.1.1.1、首先,需要一个银河麒麟的arm镜像
Kylin-Server-10-SP2-aarch64-Release-Build09-20210524.iso # 镜像名
# 因为之前有前辈遇到鲲鹏版的执行不了初始化脚本,故而使用它。
1.1.1.2、QEMU 软件的下载地址
https://qemu.weilnetz.de/w64/2021/qemu-w64-setup-20210505.exe
1.1.1.3、UEFI(BIOS的替代方案)的下载地址
http://releases.linaro.org/components/kernel/uefi-linaro/16.02/release/qemu64/QEMU_EFI.fd
1.1.1.4、在win11的路径
所需的材料 | 路径 |
---|---|
Kylin-Server-10-SP2-aarch64-Release-Build09-20210524.iso | D:\ISO |
qemu-w64-setup-20210505.exe | D:\test_arm\qemu_arm64 |
QEMU_EFI.fd | D:\test_arm\qemu_arm64 |
1.1.1.5、创建虚拟网卡
下载地址:https://build.openvpn.net/downloads/releases/
Win10版本的:https://build.openvpn.net/downloads/releases/tap-windows-9.24.7-I601-Win10.exe
1.1.1.6、重新命名网卡
1.1.1.7、共享物理网卡的网络
1.1.3、安装qemu
运行 qemu-w64-setup-20210505.exe ,安装在当前目录下
安装好后,我们需要利用qemu生成一个硬盘文件
进入到qemu的安装目录(D:\test_arm\qemu_arm64\qemu),如下图,打开cmd命令行
qemu-img create -f qcow2 D:\test_arm\qemu_arm64\Kylin-Server-10-SP2-aarch64.img 50G
# 注意路径不同
名称 | 位置 |
---|---|
虚拟机镜像 | D:\ISO |
qemu | D:\test_arm\qemu_arm64 |
QEMU_EFI.fd | D:\test_arm\qemu_arm64 |
虚拟机磁盘位置 | D:\test_arm\qemu_arm64 |
至此安装虚拟机所需要的东西都已经准备好了
1.1.4、安装银河麒麟操作系统(ARM架构)
1.1.4.1、进入到 qemu 所在位置(D:\test_arm\qemu_arm64)
1.1.4.2、输入 cmd 命令行,执行以下命令
# 注意路径不同
qemu-system-aarch64 -m 4000 -cpu cortex-a72 -smp 4,cores=4,threads=1,sockets=1 -M virt -bios D:\test_arm\qemu_arm64\QEMU_EFI.fd -net nic -net tap,ifname=tap1212 -device nec-usb-xhci -device usb-kbd -device usb-mouse -device VGA -drive if=none,file=D:\ISO\Kylin-Server-10-SP2-aarch64-Release-Build09-20210524.iso,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -drive if=none,file=D:\test_arm\qemu_arm64\Kylin-Server-10-SP2-aarch64.img,id=hd0 -device virtio-blk-device,drive=hd0
-m 4000 表示分配给虚拟机的内存最大4000MB,可以直接使用 -m 4G
-cpu cortex-a72 指定CPU类型,还可以选择cortex-a53、cortex-a57等
-smp 4,cores=4,threads=1,sockets=1 指定虚拟机最大使用的CPU核心数等
-M virt 指定虚拟机类型为virt,具体支持的类型可以使用 qemu-system-aarch64 -M help 查看
-bios D:\test_arm\qemu_arm64\QEMU_EFI.fd 指定UEFI固件文件
-net tap,ifname=tap1212 启用网络功能(ifname=tap1212中的tap1212请修改为前面步骤中自己修改后的网卡名称)
-device nec-usb-xhci -device usb-kbd -device usb-mouse 启用USB鼠标等设备
-device VGA 启用VGA视图,对于图形化的Linux这条很重要!
-drive if=none,file=D:\ISO\Kylin-Server-10-SP2-aarch64-Release-Build09-20210524.iso,id=cdrom,media=cdrom 指定光驱使用镜像文件
-device virtio-scsi-device -device scsi-cd,drive=cdrom 指定光驱硬件类型
-drive if=none,file=D:\test_arm\qemu_arm64\Kylin-Server-10-SP2-aarch64.img 指定硬盘镜像文件
很卡很卡,请耐心等待一下,正在安装中…
**只有上面创建了虚拟网卡,这里才会有网卡显示(注意,手动配置网络的时候网关不能配置错误,否则虚拟机连不上外网) **
重启系统
1.1.4.3、连接 ssh
1.1.4.4、启动虚拟机
安装好之后,我们需要再次启动(无需再次指定iso文件启动)
进入到qemu所在位置(D:\test_arm\qemu_arm64
)
进入到cmd命令行,执行以下命令
# 无需再次指定iso文件启动
qemu-system-aarch64 -m 4000 -cpu cortex-a72 -smp 4,cores=4,threads=1,sockets=1 -M virt -bios D:\test_arm\qemu_arm64\QEMU_EFI.fd -net nic -net tap,ifname=tap1212 -device nec-usb-xhci -device usb-kbd -device usb-mouse -device VGA -drive if=none,file=,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -drive if=none,file=D:\test_arm\qemu_arm64\Kylin-Server-10-SP2-aarch64.img,id=hd0 -device virtio-blk-device,drive=hd0