ubuntu22.04 x86环境上使用QEMU搭建arm虚拟机

1、安装qemu及相关依赖


apt-get -y install qemu

apt-get -y install bridge-utils

apt-get -y install vnc4server

apt-get -y install qemu-kvm

apt install -y qemu-system-arm

apt-get -y install libvirt0

apt-get -y install libvirt-daemon

apt-get -y install libvirt-daemon-system


安装完成后检查:


virsh version

ls /usr/bin/|grep qemu


2、下载 QEMU_EFI.fd 及 iso


wget http://releases.linaro.org/components/kernel/uefi-linaro/16.02/release/qemu64/QEMU_EFI.fd

 wget https://cdimage.ubuntu.com/ubuntu-legacy-server/releases/20.04/release/ubuntu-20.04.1-legacy-server-arm64.iso


下面是我的文件及路径参考

 3、创建虚拟硬盘


创建多大根据你自己的需求而定:

qemu-img create ubuntuimg.img 40G


4、创建虚拟机


qemu-system-aarch64 -m 2048 -cpu cortex-a57 -smp 2 -M virt -bios qemu_system/QEMU_EFI.fd -nographic -drive if=none,file=ubuntu-20.04.1-legacy-server-arm64.iso,id=cdrom,media=cdrom -device virtio-scsi-device -device scsi-cd,drive=cdrom -drive if=none,file=ubuntuimg.img,id=hd0 -device virtio-blk-device,drive=hd0

可以根据自己的配置和需求修改加粗部分


命令解释:

-m megs # 设定虚拟机的RAM大小,单位MB。
-cpu model # 设定CPU模型,如cortex-a57、cortex-a9等。
-smp n # 设定模拟的SMP架构中CPU的个数。
-M machine # 指定要模拟的主机类型
-bios file #设置bios启动文件
-nographic #禁用图形界面支持

5、执行第4步骤的命令后进入安装界面

类似于

根据提示信息一步一步的安装,这一步可能很慢,请耐心点

6、安装成功后

启动命令:

qemu-system-aarch64 -m 2048 -cpu cortex-a57 -smp 2 -M virt -bios qemu_system/QEMU_EFI.fd -nographic -device virtio-scsi-device -drive if=none,file=ubuntuimg.img,format=raw,index=0,id=hd0 -device virtio-blk-device,drive=hd0

进入虚拟机发现默认的ip为 10.0.2.15,可以ping 通宿主机ip (有可能显示没有ping这个命令,很正常,使用 apt-get install iputils-ping 安装),并且可以连网,而宿主机ping不通 虚拟机10.0.2.15

这是由于 虚拟机使用的是NAT网络模式,由qemu负责网络地址转换,数据包首先发送到虚拟化网络中的网关,也就是虚拟网络的一个节点,这个节点代表了宿主机在虚拟网络中的身份。该网关会负责将数据包转发到宿主机所在的物理网络中,从而宿主机能够收到来自虚拟机的请求

虚拟机中下载 一些工具:


apt-get install -y iputils-ping   //ping  ,上面安装了下面就不用安装了

apt-get install -y net-tools    // 下载 ifconfig

apt-get install -y ssh      // 下载ssh服务


7、实现 宿主机可以通过 ssh 进入 虚拟机

此部分参考链接:

访问qemu虚拟机的五种姿势_进入qemu_RichardYSteven的博客-CSDN博客

宿主机侧:

apt install net-tools   // 下载ifconfig

apt install uml-utilities  // 下载tunctl

brctl addbr virbr0   //创建网桥,名字是virbr0

ifconfig virbr0 192.168.122.1 netmask 255.255.255.0 up  // 配置网桥

tunctl -t tap0    // 创建tap接口,名字为tap0

ifconfig tap0 0.0.0.0 up     // 配置 tap0

brctl addif virbr0 tap0      // 将 tap0 放在 virbr0 内

启动虚拟机:(这儿命令变了,添加了-netdev user,id=natnet -device virtio-net-pci,netdev=natnet -netdev tap,id=tapnet,ifname=tap0,script=no -device rtl8139,netdev=tapnet)这儿tap0 和上面一致

qemu-system-aarch64 -m 2048 -cpu cortex-a57 -smp 2 -M virt -bios qemu_system/QEMU_EFI.fd -nographic -device virtio-scsi-device -drive if=none,file=ubuntuimg.img,format=raw,index=0,id=hd0 -device virtio-blk-device,drive=hd0 -netdev user,id=natnet -device virtio-net-pci,netdev=natnet -netdev tap,id=tapnet,ifname=tap0,script=no -device rtl8139,netdev=tapnet

此命令添加了一张和 宿主机组 tap的网口

在虚拟机侧:

ifconfig ens3 192.168.122.100 netmask 255.255.255.0 up   //设置上面一个网段的ip,ens3根据自己实际的网口名替换

至此,你可以在宿主机侧 通过  ssh 进入虚拟机

ps:

1、ubuntu 创建后第一次给root设置密码:sudo passwd root

2、如果想使用 root 用户登录 vi /etc/ssh/sshd_config 

添加/修改  PermitRootLogin yes

systemctl restart sshd

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Maya动画怎么云渲染?如何避免渲染出错?100%解决方案在这!

1.为什么Maya要使用云渲染? Autodesk Maya是一款3D动画和视觉效果软件,在影视、游戏和广告等各个领域中得到了广泛应用。许多知名的动画制作公司和工作室都使用Maya来制作角色动画和特效。然而,随着视觉效果的不断提升,渲染工作量…

​如何解决SSD NAND Path冲突导致的性能问题?

1.引言 最近看到一篇关于SSD的NAND并发瓶颈相关的论文,思路非常好,这里分享给大家。本篇论文的解读,也是小编上周末在高铁上完成的。存储随笔的论文解读,不是直接翻译,是小编先研读一遍后,再结合自己的理解…

爬虫----robots.txt 协议简介

文章目录 robots.txt 是一个用于指示网络爬虫(web spider或web robot)如何与网站上的内容进行交互的协议。这个文件被网站管理员放置在网站的根目录下,用于告知爬虫哪些部分的网站是可以被抓取的,哪些是不被允许的。以下是 robots.txt 协议的一些关键要点: 控制爬虫访问:…

滴滴 Redis 异地多活的演进历程

为了更好的做好容灾保障,使业务能够应对机房级别的故障,滴滴的存储服务都在多机房进行部署。本文简要分析了 Redis 实现异地多活的几种思路,以及滴滴 Redis 异地多活架构演进过程中遇到的主要问题和解决方法,抛砖引玉,…

【Git】第五篇:基本操作(添加文件)

.git目录结构 我们在前文中提过了.git目录,也明确说了我们不能手动去.git目录下创建修改等任何操作。 添加文件 我们现在已经了解到,git是一个版本控制器,可以对我们的文件进行管理。而我们需要使用git管理文件的时候,我们必须将…

Python爬虫程序网络请求及内容解析

以下是一个简单的Python爬虫程序,用于爬取商户的内容。这个程序使用了requests和BeautifulSoup库来进行网络请求和内容解析。 import requests from bs4 import BeautifulSoup# 爬虫爬虫IP信息 proxy_host duoip proxy_port 8000# 请求URL url 目标网站# 创建一个…

python爬虫 之 JavaScript 简单基础

文章目录 在网页使用JavaScript 代码的方式常用的JavaScript 事件常用的JavaScript 对象 在网页使用JavaScript 代码的方式 在网页中使用 JavaScript 代码的方式主要有三种: 内联方式(Inline): 在 HTML 文件中直接嵌入 JavaScrip…

首发!动手学大模型应用开发教程来了

大模型正逐步成为信息世界的新革命力量,其通过强大的自然语言理解、自然语言生成能力,为开发者提供了新的、更强大的应用开发选择。随着国内外井喷式的大模型 API 服务开放,如何基于大模型 API 快速、便捷地开发具备更强能力、集成大模型的应…

SystemC 学习之与 Verilog 的混合仿真(十)

1、SC 与 Verilog 的通信方式 Systemc 和 verilog 通信方式有两种,一种是 PLI,但是 PLI 只能 verilog 调用 c/c,不能从 c/c 直接调用 verilog,想要从 c/c 调用 verilog 的话,需要先用 verilog 调用 c/c 函数&#xff…

github镜像访问方法

https://ghproxy.com/ (GitHub 文件 , Releases , archive , gist , raw.githubusercontent.com 文件代理加速下载服务) https://mirror.ghproxy.com/ 在这个网址后面直接加上github的网址,如: https://mirror.ghproxy.com/htt…

光刻机ASML CYMER光电模块组件维修114122,S111310

1:436nm g-line 可以满足0.8-0.35 微米制程芯片的生产,对应设备有接触式和接近式光刻机。 2:365nm i-line 同样可以满足0.8~0.35微米制程芯片的生产。设备于上相同。 早期的光刻机采用接触式光刻,即掩模贴在硅片上进行光刻&…

hadoop 大数据集群环境配置 配置hadoop配置文件 hadoop(七)

1. 虚拟机的三台机器分别以hdfs 存储, mapreduce计算,yarn调度三个方面进行集群配置 hadoop 版本3.3.4 官网:Hadoop – Apache Hadoop 3.3.6 jdk 1.8 三台机器尾号为:22, 23, 24。(没有用hadoop102, 103,10…

C 语言数组

C 语言数组 在本教程中,您将学习如何使用数组。您将借助示例学习如何声明,初始化和访问数组的元素。 数组是可以存储多个值的变量。例如,如果要存储100个整数,则可以为其创建一个数组。 示例 cint data[100];如何声明数组&…

vue3 el-menu初始化时选中没有高亮的问题(default-active和index的问题)

首先看官方文档的示例: 需要注意的是: 1、default-active的值是字符串,那么index绑定的值也要是字符串,且数字对应。不能default-avtive绑定的是1,而menu-item的index绑定的是45 2、default-active的值是当前选中me…

[工业自动化-20]:西门子S7-15xxx编程 - 软件编程 - 基本编程指令与梯形图基本元素:位逻辑指令、定时器指令、计数器指令、触发器指令

目录 一、PLC编程的基本指令 1.1 什么是PLC指令 1.2 PLC指令的分类 1.3 PLC指令与梯形图基本元素的关系 三、基本的位运算指令 四、边沿触发指令 4.1 什么是沿 4.2 沿的持续时间 4.3 使用场景 五、定时器指令 六、计数器指令 七、触发器指令 一、PLC编程的基本指令…

gpt-4-vision-preview 识图

这些图片都是流行动画角色的插图。 第一张图片中的角色是一块穿着棕色方形裤子、红领带和白色衬衫的海绵,它站立着并露出开心的笑容。该角色在一个蓝色的背景前,显得非常兴奋和活泼。 第二张图片展示的是一只灰色的小老鼠,表情开心&#xf…

esp32cam串口问题

选择的串口 Failed to execute script esptool不存在或开发板没有连接 设置串口参数时出错:9,600 N 8 1注意到他说的串口设置错误,但是在设置里不能设置串口参数 所以说是串口打印的问题 把他换成esp32用的115200就行

大模型的全面回顾,看透大模型 | A Comprehensive Overview of Large Language Models

大模型的全面回顾:A Comprehensive Overview of Large Language Models 返回论文和资料目录 论文地址 1.导读 相比今年4月的中国人民大学发表的大模型综述,这篇综述角度更侧重于大模型的实现,更加硬核,更适合深入了解大模型的一…

《从零开始读懂相对论》

内容简介 相对论诞生至今已逾百年,但依然被人们津津乐道。相对论为什么如此有魅力?爱因斯坦为什么要创立相对论?本书从“零”开始,紧抓“相对”二字,将所有问题置于历史的背景下,竭力展现人类探索运动本质…

实用篇-ES-DSL操作文档

一、mapping属性 mapping属性的官方文档: https://elastic.co/guide/en/elasticsearch/reference/current/index.html 下面的表格是介绍elasticsearch中的各个概念以及含义,看的时候重点看第二、三列,第一列是为了让你更理解第二列的意思,所…