在X64位Windows系统上安装 arm64架构的Linux虚拟机 您所在的位置:网站首页 hyper-v能装linux吗 在X64位Windows系统上安装 arm64架构的Linux虚拟机

在X64位Windows系统上安装 arm64架构的Linux虚拟机

2023-04-16 03:14| 来源: 网络整理| 查看: 265

因为公司一个项目甲方是国企,要用arm64架构的CPU,但国企效率又很低,迟迟不提供测试机器,又让研究技术可行性。尝试用Docker buildx也没有成功,于是想到用虚拟机来做。

网上查了下Windows环境下虚拟机软件,Vmware、VirtualBox、Hyper-V都不支持在X86_64的CPU下虚拟出Arm64的CPU,有的就只支持Intel和AMD的CPU。在Linux下的qemu倒是可以实现这样的虚拟。也没在linux中装过虚拟机,当时有些担心,把这个方案放在最后尝试,主要参照这篇文章去做: https://blog.csdn.net/chenxiangneu/article/details/78955462

但我是先在Windows系统用上用VMWare安装一个类似CentOS的虚拟机,然后再在虚拟机中安装Qemu,编译Qemu可能还需要一些其他的软件文章中没有提到的,需要什么就安装什么了,比如ninja,用yum search 命令检索,再用yum install 命令安装就可以了,编译需要一点时间。

VmWare第一层虚拟网络使用的桥接模式,安装第二层虚拟机也算顺利,而且在第二层虚拟机内也能上网了,但是在ssh工具远程访问不到。后来看到了https://wzt.ac.cn/2019/09/10/QEMU-networking/这篇文章,按照内容执行命令把网络也配置好了,但每次都要启动虚拟机都要执行这些命令,可以做成一个shell 脚本:

#!/bin/bash #ens33改为宿主机中能上网的网卡名,注意替换 ifconfig ens33 down # 首先关闭宿主机网卡接口 brctl addbr br0 # 添加一座名为 br0 的网桥 brctl addif br0 ens33 # 在 br0 中添加一个接口 brctl stp br0 off # 如果只有一个网桥,则关闭生成树协议 brctl setfd br0 1 # 设置 br0 的转发延迟 brctl sethello br0 1 # 设置 br0 的 hello 时间 ifconfig br0 0.0.0.0 promisc up # 启用 br0 接口 ifconfig ens33 0.0.0.0 promisc up # 启用网卡接口 dhclient br0 # 从 dhcp 服务器获得 br0 的 IP 地址 brctl show br0 # 查看虚拟网桥列表 brctl showstp br0 # 查看 br0 的各接口信息 tunctl -t tap0 -u root # 创建一个 tap0 接口,只允许 root 用户访问 brctl addif br0 tap0 # 在虚拟网桥中增加一个 tap0 接口 ifconfig tap0 0.0.0.0 promisc up # 启用 tap0 接口 brctl showstp br0 # 显示 br0 的各个接口 #启动虚拟机,注意相关文件的路径 qemu-system-aarch64 -m 2048 -cpu cortex-a57 -smp 2 -M virt -bios QEMU_EFI.fd -nographic -device virtio-scsi-device -drive if=none,file=虚拟磁盘名.img,id=hd0 -device virtio-blk-device,drive=hd0 -net nic -net tap,ifname=tap0,script=no,downscript=no

启动虚拟机之后,用ifconfig命令查看IP地址,再用SSH工具来连接这个IP地址,就可以做你想做的事了。尝试了下载arm64的docker镜像和构建arm64镜像都成功了。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有