windows x86_64系统上建立arm(aarch64)centos虚拟机

2,993 阅读3分钟

我正在参加「金石计划4.0」

1.问题&需求:

  1. 在进行信创适配过程中,若无信创机器或者信创机器无法联网导致无法需要外网资源进行服务信创化,此时可以使用本地开发电脑使用qemu虚拟机虚拟基于arm的硬件环境下的服务器,可用于信创适配。
  2. vmware无法虚拟宿主机硬件环境下的其他硬件

2.需要准备以下安装包和工具包:

3. 安装流程

3.1 创建虚拟机文件夹

比如在D盘创建centos7 aarch64文件夹:D:\qemu-machines\arm64-centos

将QEMU_EFI.fd引导工具拷贝放到该文件夹下

3.2 安装qemu虚拟机

运行qemu-w64-setup-20210505.exe,进行安装,安装目录自定义,本人的安装目录在D:\qemu

3.3 生成虚拟机硬盘文件

命令行模式

D: 
cd qemu 
# 此时进入到qemu的安装目录下,然后执行(40G为虚拟机硬盘大小,可自行修改):  
qemu-img create -f qcow2 D:\qemu-machines\arm64-centos\disk1.qcow2 40G

3.4 安装虚拟机

命令行模式

    D: 
    cd qemu 
    # 此时进入到qemu的安装目录下,然后执行:  
    set disk= D:\qemu-machines\arm64-centos\disk1.qcow2 (硬盘文件路径) 
    set bios= D:\qemu-machines\arm64-centos\QEMU_EFI.fd (引导工具路径) 
    set iso= CentOS-7-aarch64-Minimal-2009.iso (操作系统镜像路径) 
    # 执行(可默认按照下方命令执行,参数不用改,这个执行命令只为安装操作系统): 
    qemu-system-aarch64.exe -m 8192 -cpu cortex-a72 -smp 8,sockets=4,cores=2 -M virt -bios %bios% -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file=%disk%,id=hd0 -device virtio-blk-device,drive=hd0 -drive if=none,file=%iso%,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom  -net nic -net user,hostfwd=tcp::2222-:22

上方的qemu-system-aarch64.exe命令执行后,则会自动弹出qemu

image2022-8-29_16-33-58.png

此时的安装centos7的流程跟以往用vmware一样,这里就不详细阐述如何安装centos7系统。

当安装完成centos7系统之后,可以直接退出qemu窗口。

3.5 安装tap0网卡,并与本机真正上网的网卡进行共享

安装tap-windows-9.21.2.exe,安装完成之后,本地电脑的网络适配器会增加一个网卡,当然安装之后可能不叫这个tap0,此时手动重命名以下tap0

image2022-8-29_16-38-5.png

然后右键上网的网卡进入属性,然后点击共享,勾选页面上的两个“允许”,然后家庭网络连接处,选择“tap0”,最终点击确定:

image2022-8-29_16-39-40.png

3.6 启动已安装好的虚拟机

在虚拟机目录下创建一个bat文件,D:\qemu-machines\arm64-centos\start.cmd

start.cmd文件内容参照如下:

    d: 
    cd qemu 
    set disk=D:\qemu-machines\arm64-centos\disk1.qcow2 (硬盘文件路径) 
    set cdrom= 
    set bios=D:\qemu-machines\arm64-centos\QEMU_EFI.fd (引导工具路径) 
    set cpus=cortex-a72 -smp 6,sockets=1,cores=6 (设置cpu型号和核心数线程数等,cpu型号是可以变更为其他型号的,支持哪些型号使用该命令查看:qemu-system-aarch64.exe -cpu help) 
    set memorysize=10812 (设置内存大小,mb单位) 
    set netname=tap0 (网卡名)
    qemu-system-aarch64.exe -m %memorysize% -cpu %cpus% -M virt -bios %bios% -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file=%disk%,id=hd0 -device virtio-blk-device,drive=hd0 -drive if=none,file=%cdrom%,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -net nic -net tap,ifname=%netname%

ps: qemu-system-aarch64.exe 还有其他可用的参数,可以看一下帮助文档了解以下其他参数的作用 qemu-system-aarch64.exe -help

保存该start.cmd文件后,即可双击启动虚拟机

image2022-8-29_16-47-54.png

image2022-8-29_16-49-13.png

可以使用ip addr命令查看虚拟机的ip,然后利用xshell等工具进行ssh连接,端口22

可以看到硬件环境是aarch64的操作系统

image2022-8-29_17-43-40.png


好了,以上就是我个人的实操了。可能有些不对,大家伙,轻点喷!!!

个人理解,可能也不够全面,班门弄斧了。

好了,今天就先到这里了!!!^_^

如果觉得有收获的,帮忙点赞、评论、收藏一下,再走呗!!!

image.png