【虚拟机】Windows(x86)上部署ARM虚拟机(Ubuntu)

零、起因

最近在学嵌入式,这就不得不涉及ARM指令集,但是电脑是x86指令集的,用手机不太方便,买开发板又要等几天……,总之就是要找个理由在x86的Windows上运行一下ARM的Ubuntu~

壹、视频教程

【Windows(x86)上部署ARM虚拟机(Ubuntu)-哔哩哔哩】 https://b23.tv/1ZT0QG8

贰、准备工作

我们要在ARM虚拟机上运行Ubuntu系统需要准备下面这些文件(文末提供网盘分享链接):

1. 虚拟机

这边我们使用的是QEMU,QEMU可以模拟很多不同指令集的CPU,目前包括有 ARM、LoongArch、MIPS、RISCV 和 x86_64 等,我们可以到官网下载最新版:https://www.qemu.org/,也可以选择跟我一样的版本,下载后得到一个软件安装包,按照正常的软件安装方法运行安装程序,设置好安装位置,安装安装即可,这里需要记一下安装位置!下载地址:https://qemu.weilnetz.de/w64/2024/qemu-w64-setup-20240423.exe

2. UEFI

统一可扩展固件接口(英语:Unified Extensible Firmware Interface,缩写UEFI)是一种个人电脑系统规格,用来定义操作系统与系统固件之间的软件界面,作为BIOS(基本输入/输出系统)的替代方案。可扩展固件接口负责加电自检(POST)、联系操作系统以及提供连接操作系统与硬件的接口。我们的ARM虚拟机需要用到这个,下载地址:http://releases.linaro.org/components/kernel/uefi-linaro/16.02/release/qemu64/QEMU_EFI.fd

3. Ubuntu

Ubuntu的系统安装包,Ubuntu系统就不多介绍了,可以自行到官网下载,官网地址:https://cn.ubuntu.com/download/server/arm,也可以下载跟我一样的版本,只要下载的是ARM版本的即可,下载地址:https://cdimage.ubuntu.com/releases/24.04/release/ubuntu-24.04-live-server-arm64.iso

叁、安装

1. 虚拟机的安装

直接运行下载得到的qemu-w64-setup-20240423.exe即可,安装过程中的选项都可以保持默认的,但是要注意记一下安装位置,等下要用到:

我的安装位置:D:\Program Files\qemu

2. 虚拟机环境变量配置(选做)

为了方便,可以把安装路径配置到环境变量中去,这样到时候虚拟机的命令就可以简单一点点,我选择不配置,要配置的同学可以看看:

3. 创建磁盘文件

在安装系统之前,我们需要给虚拟机创建一个磁盘文件,作为虚拟机存储资料的地方,使用如下命令(配置了环境变量后可以省略安装路径):

CMD命令格式:

"QEMU安装路径\qemu-img.exe" create -f qcow2 "保存的文件夹\文件名.qcow2" 文件大小

我的:

"D:\Program Files\qemu\qemu-img.exe" create -f qcow2 "F:\VM\ARM\ubuntu\ubuntu.qcow2" 40G

这样我们会得到一个虚拟磁盘文件:F:\VM\ARM\ubuntu\ubuntu.qcow2

4. 安装Ubuntu系统

CMD命令格式:

"QEMU安装路径\qemu-system-aarch64.exe" -m 8192 -cpu cortex-a72 -smp 8,sockets=4,cores=2 -M virt -bios "下载的 QEMU_EFI.fd 文件路径" -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file="刚刚创建的磁盘文件的路径",id=hd0 -device virtio-blk-device,drive=hd0 -drive if=none,file="Ubuntu系统安装包文件路径",id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom  -net nic -net user,hostfwd=tcp:127.0.0.1:2222-:22

最后一个参数hostfwd是做的端口映射,把虚拟机的端口号为22的TCP协议映射到主机地址127.0.0.1:2222中,方便我们使用SSH链接虚拟机。

我的:

"D:\Program Files\qemu\qemu-system-aarch64.exe" -m 8192 -cpu cortex-a72 -smp 8,sockets=4,cores=2 -M virt -bios "F:\VM\ARM\ubuntu\QEMU_EFI.fd" -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file="F:\VM\ARM\ubuntu\ubuntu.qcow2",id=hd0 -device virtio-blk-device,drive=hd0 -drive if=none,file="F:\VM\ARM\ubuntu\ubuntu-24.04-live-server-arm64.iso",id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom  -net nic -net user,hostfwd=tcp:127.0.0.1:2222-:22

运行此命令后会弹出一个窗口,稍作等待即可进入Ubuntu的安装引导程序了,具体如何配置Ubuntu的安装程序我就不多介绍了,系统安装完即可正常使用了,至此我们成功在Windows(x86)上运行了Ubuntu(ARM)。

5. 运行已安装好系统的虚拟机

安装好后把虚拟机窗口关掉了,想再次打开可以使用下面的命令(不需要指定系统安装包了):

CMD命令格式:

"QEMU安装路径\qemu-system-aarch64.exe" -m 8192 -cpu cortex-a72 -smp 8,sockets=4,cores=2 -M virt -bios "下载的 QEMU_EFI.fd 文件路径" -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file="安装有系统的磁盘文件路径",id=hd0 -device virtio-blk-device,drive=hd0 -drive if=none,file=,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -net nic -net user,hostfwd=tcp:127.0.0.1:2222-:22

我的:

"D:\Program Files\qemu\qemu-system-aarch64.exe" -m 8192 -cpu cortex-a72 -smp 8,sockets=4,cores=2 -M virt -bios "F:\VM\ARM\ubuntu\QEMU_EFI.fd" -device VGA -device nec-usb-xhci -device usb-mouse -device usb-kbd -drive if=none,file="F:\VM\ARM\ubuntu\ubuntu.qcow2",id=hd0 -device virtio-blk-device,drive=hd0 -drive if=none,file=,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -net nic -net user,hostfwd=tcp:127.0.0.1:2222-:22

稍作等待,Ubuntu系统成功在ARM虚拟机中启动之后就可以使用了~

可以输入如下命令查看系统使用的CPU指令集:

6. 配置Ubuntu系统

Ubuntu系统安装好后还需要经过一定的配置才好用,这边不详细讲,给同学们找了几篇文章参考:

  1. 配置SSH:如何在 Ubuntu 上启用 SSH,安全地远程管理和传输数据:https://developer.aliyun.com/article/1375688
  2. 配置远程连接:【Linux】远程连接Linux虚拟机(MobaXterm):https://www.cnblogs.com/minuhy/p/18324410
  3. 配置镜像软件源:【Ubuntu】Ubuntu 配置镜像源(ARM):https://www.cnblogs.com/minuhy/p/18323928
  4. 安装编程软件(可选):如何在 Ubuntu 22.04 上安装 GCC:https://cn.linux-console.net/?p=14950

肆、参考文档

伍、文件资源

链接:https://pan.baidu.com/s/1hYPR9RymKkGBgHj9YMaeGQ?pwd=j0y3

提取码:j0y3

【虚拟机】Windows(x86)上部署ARM虚拟机(Ubuntu)的更多相关文章

  1. 在 Windows Azure 上部署并定制化 FreeBSD 虚拟机镜像

     发布于 2014-12-11 作者 陈阳 FreeBSD 基础镜像现已登陆中国的 VM Depot! 对于青睐 BSD 而非 Linux 的开源爱好者来说,这无疑是个好消息.同时,随着该基础镜像 ...

  2. 虚拟机评估——如何确定一个CPU核上部署的虚拟机数量?

    最近研究虚拟化技术,不可避免遇到一个问题:如何评估物理主机上虚拟主机的容量?下面这篇文章的思路有一定的启发性,转发一下. 如何确定一个CPU核上部署的虚拟机数量? 摘要:本文说明一个CPU核上部署虚拟 ...

  3. 在 Windows Azure 上部署预配置 Oracle VM

    Microsoft 和 Oracle 近期宣布建立战略合作伙伴关系,基于此,我们将通过 Windows Azure 镜像库推出多种常用的 Oracle 软件配置.即日起,客户可以在 Windows S ...

  4. .Net Core WebApi(二)在Windows服务器上部署

    上一篇学习到了如何简单的创建.Net Core Api和Swagger使用,既然写了接口,那么就需要部署到服务器上才能够正式使用.服务器主要用到了两种系统,Windows和Linux,.Net和Win ...

  5. WINDOWS Server2003上部署一个Asp.Net的网站

    对于许多新手来说,如何在服务器上部署网站并不了解,这个教程希望对新手有帮助. 1.IIS服务器 2..Net Framework3.5 (方便起见,我们这里Framework说的都是指的这个版本) 这 ...

  6. Express在windows IIS上部署详解

    最近公司在用Express+angularjs+wcf开发系统,让我在windows上部署系统,遇到不少问题,不过最后还是解决了,在IIS上部署系统, 首先windows需安装以下软件: 1.node ...

  7. Windows Server上部署IoTdb 集群

    本文是参考官方的 IoTDB 集群版(1.0.0)的安装及启动教程:https://iotdb.apache.org/zh/UserGuide/V1.0.x/Cluster/Cluster-Setup ...

  8. 使用nssm在windows服务器上部署nodejs

    Linux上,可以轻松的使用forever或者pm2来部署nodejs应用.但是在windows下就麻烦了,pm2明确的说支持Linux & MacOS,forever在windows下貌似问 ...

  9. nssm在windows服务器上部署nodejs,coffee启动方式

    本想用forever / pm2 来部署nodejs, 百度后发现只能在Linux系统上使用,window上没法使用,兜一圈后又转nssm了.... 在Linux上,可以轻松的使用forever或者p ...

  10. 【netcore入门】在Windows IIS上部署.NET Core 2.1项目

    部署之前先检查下面2个先决条件是否满足 1.安装了 IIS 模块 win7 在 控制面板→程序和功能→打开或关闭Windows功能→勾选Internet 信息服务(Internet Informati ...

随机推荐

  1. MACOS 降级

    最近升级了macos 15.2,结果导致外接显示器显示不正常,经常断掉或者黑屏,因此macos进行降级处理: 1. 首先在App Store下载Ventura 系统; 2. 准备一个16G的U盘,然后 ...

  2. G1原理—1.G1回收器的分区机制

    大纲 1.G1垃圾回收器的分区(Region大小+G1分区+Region过大过小和计算) 2.Region大小的计算原理(先转字节然后确定2的n次幂再通过1左移n位) 3.新生代分区及自动扩展(新生代 ...

  3. 【BUG排查记】HttpUtil和SpringSecurity结合的坑

    一.背景 最近为了做微服务高可用和优化上线流程,我参与了一个微服务的改造开发. 主要包括redis切换哨兵模式.接入高可用xxljob集群.配置和升级脚本优化. 二.问题描述   项目改造提测后,测试 ...

  4. java技术架构图

    架构图有哪几种 业务架构:需求初期业务的结果和过程描述一般比较模糊,可能来自于某个老板.运营或用户的反馈.客户说海尔洗衣机洗土豆会堵,海尔立马设计专门的土豆洗衣机 业务方向往往是定方向和结果的叫战略, ...

  5. 微服务实战系列(十一)-微服务之自定义脚手架-copy

    微服务实战系列(十一)-微服务之自定义脚手架   1. 场景描述 (1)随着微服务越来越常见,一个大的项目会被拆分成多个小的微服务,jar包以及jar之间的版本冲突问题,变得越来越常见,如何保持整体微 ...

  6. biancheng-Python教程

    目录http://c.biancheng.net/python/ 1Python编程基础2Python编程环境搭建3变量类型和运算符4列表.元组.字典和集合5Python字符串常用方法6Python流 ...

  7. ctfshow--web6 sql注入空格绕过

    这道题目空格被过滤了,那么我们可以用/**/来替换空格 'union/**/select/**/1,(select/**/database()),3# //查看数据库名名字为web2 查看web2下的 ...

  8. idea构建Build Project项目时一直卡在解析阶段解决办法

    可能是内存不足,修改以下三个地方 1.help->Edit Custom VM Options-Xmx4096m 2.file->settings->Build,Execution, ...

  9. NIT GREAT NITYACKE DESTROYS THE UNIVERSE

    线段树 一般线段树维护的东西是什么?设其维护的信息的半群 \((A,+)\),维护标记的半群 \((T,\times)\) 和一种运算 \(*\mapsto A*T\to A\). 要求 \((b+c ...

  10. 数据团队必读:智能数据分析文档(DataV Note)五种高效工作模式

    数据项目,无论是数据分析.可视化,还是数据科学和机器学习相关的项目,通常都非常复杂,涉及多个组成部分,比如代码.数据.运行环境.SQL脚本以及分析报告等:与此同时,随着AI时代的到来,数据科学领域正经 ...