Windows11 上使用 QEMU 创建 Ubuntu aarch64(ARM64)虚拟机

news2024/11/22 19:45:36

文章目录

  • 背景
  • 步骤要点
    • 一、下载QEMU
    • 二、下载 QEMU UEFI 固件文件
    • 三、Ubuntu 光盘镜像文件
    • 四、安装设置 QEMU
    • 五、创建虚拟网卡
      • 1、安装 tap-windows
      • 2、重命名新网卡
      • 3、共享物理网卡的网络
    • 六、创建硬盘镜像
    • 七、从iso镜像安装虚拟机
    • 八、启动镜像
    • 九、连接 ssh
    • 过程中 powershell 执行的命令和输出

背景

最近在实现一个混沌测试工具,对汽车上分布式系统执行测试。计划运行在 Linux aarch64 环境,需要确定在目标环境能不能运行,但自己和实验室的电脑都是 x86_64,所以打算建一个虚拟机。

通过 Docker容器或VMware都不支持在 x86_64 宿主机运行 aarch64 容器/虚拟机, Virtual Box 似乎也不支持,QEMU支持。

主要参考了 CSDN 菠萝蚊鸭 《Windows11 上使用 QEMU 创建 aarch64(ARM64)虚拟机》 。实测按照这篇文章可以成功创建 openEuer 虚拟机。

步骤要点

一、下载QEMU

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

在这里插入图片描述

我实际用的几个月前下载的 8.0.2 版,当时尝试没成功。

二、下载 QEMU UEFI 固件文件

https://releases.linaro.org/components/kernel/uefi-linaro/latest/release/qemu64/QEMU_EFI.fd

实测是兼容 ubuntu-20.04.5-live-server-arm64 的

三、Ubuntu 光盘镜像文件

https://cdimage.ubuntu.com/releases/focal/release/

https://cdimage.ubuntu.com/releases/focal/release/ubuntu-20.04.5-live-server-arm64.iso

实际用的 ubuntu-20.04.5-live-server-arm64 ,考虑 LTS 可能比较稳定,旧版可能可参考资料多一些。

四、安装设置 QEMU

默认安装,可能需要手动配环境变量?

五、创建虚拟网卡

1、安装 tap-windows

下载地址:https://build.openvpn.net/downloads/releases/

Win10版本的: https://build.openvpn.net/downloads/releases/tap-windows-9.24.7-I601-Win10.exe

默认配置安装即可,看起来最新的就是Win10版,实测可以用于 Win11。

2、重命名新网卡

控制面板\网络和 Internet\网络连接
在这里插入图片描述
不知道为什么右键->重命名没反应,选中后点击名字重命名可行。

3、共享物理网卡的网络

在这里插入图片描述
右键单击本机物理网卡,点击“属性”按钮,在弹出的界面中选择“共享”选项。选中“允许其它网络通过此计算机的Internet连接来连接”复选框,“家庭网络连接”项选择刚才新增加的网卡(且是修改过名字后的名称),选中“允许其它网络用户控制或禁用共享的Internet连接”,确定即可。

注意物理网卡用哪个选哪个。

六、创建硬盘镜像

创建一个名为 ubuntu-20.04.5-live-server-arm64.img 的 20GB 硬盘

qemu-img create -f qcow2 ubuntu-20.04.5-live-server-arm64.img 20G

七、从iso镜像安装虚拟机

qemu-system-aarch64 -m 4000 -cpu cortex-a72 -smp 4,cores=4,threads=1,sockets=1 -M virt -bios 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=ubuntu-20.04.5-live-server-arm64.iso,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -drive if=none,file=ubuntu-20.04.5-live-server-arm64.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 F:\QEMU\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=ubuntu-20.04.5-live-server-arm64.iso,id=cdrom,media=cdrom 指定光驱使用镜像文件
-device virtio-scsi-device -device scsi-cd,drive=cdrom 指定光驱硬件类型
-drive if=none,file=ubuntu-20.04.5-live-server-arm64.img 指定硬盘镜像文件
————————————————
以上内容:
版权声明:本文为CSDN博主「菠萝蚊鸭」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/baidu_25117757/article/details/128302530

ubuntu的图形界面非常简陋,安装过程中应该需要选中安装 openSSH

不知道为什么不能通过 Shift+其它按键 的方式输入上档字符,可能需要某些QEMU参数?
网络不稳定可能需要重试,可能安装失败,产生一个类似 /var/crash/1694074051.472850323.install_fail.crash 的文件,原因不明,重试就成功了。

八、启动镜像

安装完成后会提示重启,但重启后会显示一些错误。
关闭后用以下命令启动:
qemu-system-aarch64 -m 4000 -cpu cortex-a72 -smp 4,cores=4,threads=1,sockets=1 -M virt -bios 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=ubuntu-20.04.5-live-server-arm64.img,id=hd0 -device virtio-blk-device,drive=hd0

九、连接 ssh

ubuntu不需要手动启动网卡,用 ip addr 看一下 IP 地址,通过 ssh 连接即可。

过程中 powershell 执行的命令和输出

PS E:\QEMU\ubuntu> qemu-img create -f qcow2 ubuntu-20.04.5-live-server-arm64.img 20G
Formatting 'ubuntu-20.04.5-live-server-arm64.img', fmt=qcow2 cluster_size=65536 extended_l2=off compression_type=zlib size=21474836480 lazy_refcounts=off refcount_bits=16
PS E:\QEMU\ubuntu> qemu-system-aarch64 -m 4000 -cpu cortex-a72 -smp 4,cores=4,threads=1,sockets=1 -M virt -bios 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=ubuntu-20.04.5-live-server-arm64.iso,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -drive if=none,file=ubuntu-20.04.5-live-server-arm64.img,id=hd0 -device virtio-blk-device,drive=hd0

(qemu:32448): Gtk-WARNING **: 16:43:21.287: Could not load a pixbuf from icon theme.
This may indicate that pixbuf loaders or the mime database could not be found.
PS E:\QEMU\ubuntu> qemu-system-aarch64 -m 4000 -cpu cortex-a72 -smp 4,cores=4,threads=1,sockets=1 -M virt -bios 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=ubuntu-20.04.5-live-server-arm64.img,id=hd0 -device virtio-blk-device,drive=hd0 -k en-us

(qemu:9712): Gtk-WARNING **: 17:24:37.157: Could not load a pixbuf from icon theme.
This may indicate that pixbuf loaders or the mime database could not be found.
PS E:\QEMU\ubuntu>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/988263.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【已更新建模代码】2023数学建模国赛B题matlab代码--多波束测线问题

一、 问题重述 1.1问题背景 海洋测深是测定水体深度与海底地形的重要任务,有两种主要技术:单波束测 深与多波束测深。单波束适用于简单任务,但多波束可提供更精确的地形数据。多 波束系统的关键在于覆盖宽度与重叠率的设计,以确保…

【Python 自动化】小说推文一键生成思路概述

最近看了一下小说推文成品软件的思路,发现可以完全迁移到我的 BookerAutoVideo 上面来。这篇短文里面,我试着分析一下整个推文视频生成的流程,以及简要阐述一下有什么工具。 整体流程是这样: 分句 原文是按照段落组织的&#xf…

下载安装包,安装 PySide2 到 windows 系统

20201206 修订:修改 PyCharm 中工具的配置描述 一、下载两个.whl 文件到本地, 可以在此下载 https://mirrors.tuna.tsinghua.edu.cn/ 我选用的是以下两个版本: shiboken2-5.15.2-5.15.2-cp35.cp36.cp37.cp38.cp39-none-win_amd64.whl …

Netty源码剖析之HashedWheelTimer时间轮

版本信息: JDK1.8 Netty-all:4.1.38.Final 时间轮的介绍 我们知道钟表分为很多块,每时钟滴答一次就往前走一个块,而时间轮就是使用这个思想。如下图 上图总共分为8块,每过100ms就往前走一块,然后周而复始。此时&#…

关于faust勒索病毒,这些您该了解,勒索病毒解密,数据恢复

faust勒索病毒是一种近年来流行的恶意软件,它通过对计算机系统进行加密并要求支付赎金来达到释放系统的目的。faust勒索病毒的流行程度和危害性不断上升,给企业和个人带来了严重的安全威胁。接下来云天数据恢复中心将从faust勒索病毒的背景、特点、危害、…

paddlespeech on centos7

概述 paddlespeech是百度飞桨平台的开源工具包,主要用于语音和音频的分析处理,其中包含多个可选模型,提供语音识别、语音合成、说话人验证、关键词识别、音频分类和语音翻译等功能。 paddlespeech整体是比较简单易用的,但是安装…

开学季!ChatGPT遭多国高校“封杀”!

美国OpenAI公司研发的聊天机器人ChatGPT,在过去的几个月席卷全球。 OpenAI的创始人之一马斯克(Elon Musk)曾在社交媒体平台上称赞ChatGPT:“这是全新的世界。和家庭作业说再见吧!”(Its a new world. Good…

轮播图横向和纵向同时滚动

轮播图横向和纵向同时滚动: <view><swiper v-if"noticeList.length > 0" style"margin-left: 20rpx;position: fixed;margin-top: 10rpx;z-index: 9999;width: 710rpx;border-radius: 20rpx !important;overflow: hidden;transform: translateY(0)…

js-13-Js中的事件模型

事件模型分为&#xff1a;事件与事件流、原始事件模型、标准事件模型和IE事件模型 1、事件与事件流 js中的事件&#xff0c;可以理解为是在HTML中文档或者浏览器中发生的一种交互操作&#xff0c;使得网页具备互动性&#xff0c;常见的有加载事件、鼠标事件、自定义事件等。 由…

CocosCreator3.8研究笔记(十)CocosCreator 图像资源的理解

一、图像资源导入 Cocos Creator 可使用图像文件格式&#xff0c;支持 JPG、PNG、BMP、TGA、HDR、WEBBP、PSD、TIFF 等。 将图像资源直接拖拽到 资源管理器 即可将其导入 二、图像资源的类型 在 属性检查器 面板中便可根据需要设置图像资源的使用类型&#xff1a;raw 、 textu…

window和linux下载ffmpeg

window 进入官方 进入 download 页面并选择 window 版本 下载 zip 压缩包 解压压缩包 解压压缩包之后&#xff0c;在 bin 目录下有三个文件&#xff0c;我们要下载的 window 版 ffmpeg.exe 就在其中&#xff0c;后续你可以添加系统环境变量或者在每次执行 ffmpeg.exe 都带上路…

leetcode386. 字典序排数(java)

字典序排数 题目描述递归法迭代 题目描述 难度 - 中等 leetcode386. 字典序排数 给你一个整数 n &#xff0c;按字典序返回范围 [1, n] 内所有整数。 你必须设计一个时间复杂度为 O(n) 且使用 O(1) 额外空间的算法。 示例 1&#xff1a; 输入&#xff1a;n 13 输出&#xff1a…

学习Jetpack Compose的反思,总结及新的开始(无干货,纯叙事)

前言及个人简介 我是一名90后安卓开发者&#xff0c;我是从去年五月四日开始学习 Jetpack Compose的&#xff0c;出于对前沿安卓知识的渴望&#xff0c;我点开了Jetpack Compose官网的网页&#xff0c;开始了我的学习之旅&#xff0c;那时候国内的相关文档还没有现在多&#x…

小程序中使用分包

前言 小程序在未使用的分包的情况下仅支持大小为2M,如果图片等资源过多的情况下可以使用分包功能&#xff0c;使用分包的情况下单个分包大小不能超过2M,总大小不能超过20M&#xff0c;分包有两种情况&#xff1a;普通分包和独立分包&#xff0c;下面介绍的是普通分包。官方文档…

Linux常用命令——cp命令

在线Linux命令查询工具 cp 将源文件或目录复制到目标文件或目录中 补充说明 cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件&#xff0c;当一…

大佬带飞,代码分享不会用?玩转Git,跟上大佬节奏!

一、安装 Git 客户端 这里为大家提供了windows版的Git客户端以及安装图文详解文档。百度网盘&#xff1a; https://pan.baidu.com/s/1CDu0Ke199pt3Ysv-QtWObA 提取码&#xff1a;8888 如果过期了请留言联系我。 二、注册码云账号 打开码云网站&#xff1a;https://gitee.co…

分布式 - 服务器Nginx:基础系列之Nginx静态资源配置优化sendfile | tcp_nopush | tcp_nodelay

文章目录 1. sendfile 指令2. tcp_nopush 指令3. tcp_nodelay 指令 1. sendfile 指令 请求静态资源的过程&#xff1a;客户端通过网络接口向服务端发送请求&#xff0c;操作系统将这些客户端的请求传递给服务器端应用程序&#xff0c;服务器端应用程序会处理这些请求&#xff…

ARM+Codesys标准通用型控制器

整机工业级设计&#xff0c;通讯外设经过隔离保护 电源宽电压设计(9~36V DC ) 丰富的通讯接口&#xff0c;满足多种场合控制和通讯需求 四核工业级处理器&#xff0c;高性能&#xff0c;低功耗&#xff0c;高可靠性 机身无风扇设计&#xff0c;外壳小巧 搭载内核 100% 自主…

【面试高频题】二叉树“神级遍历“入门

题目描述 这是 LeetCode 上的 「99. 恢复二叉搜索树」 &#xff0c;难度为 「中等」。 Tag : 「二叉树」、「树的搜索」、「递归」、「迭代」、「中序遍历」、「Morris 遍历」 给你二叉搜索树的根节点 root&#xff0c;该树中的 恰好 两个节点的值被错误地交换。请在不改变其结…

HBuilderX安装+配置教程

HbuilderX是Hbuilder的升级版。它是是DCloud&#xff08;数字天堂&#xff09;推出为前端开发者服务的通用IDE&#xff0c;或者称为编辑器。 目录 一 下载 二 安装 三 创建桌面快捷方式 四 使用 1.【新建项目】&#xff1a; 2 运行 一 下载 官网&#xff1a;DCloud - …