Linux 利用 qemu-system-aarch64 实现 x86 机器安装 arm64 的操作系统

news2024/12/23 12:32:36

文章目录

    • @[toc]
    • 遇到的问题
    • 安装 qemu-system-aarch64
    • 创建 aarch64 操作系统
      • 准备 aarch64 的 iso 镜像
      • 下载 aarch64 的 UEFI 固件
      • 创建虚拟磁盘
      • 创建虚拟机
        • 语言设置
        • 时区设置
        • 安装来源
        • 软件选择
        • 磁盘分区
        • Kdump 配置
        • 网络配置
        • root 用户密码
        • 创建用户
        • 安装操作系统

遇到的问题

qemu-system-aarch64 启动的虚拟机,无法受到 kvm 的管理,也无法在后台运行

终端一旦断开了,虚拟机就被关掉了,想再次进入目前没找到方法,都会回到安装操作系统的步骤

可能是 centos 有某些特殊性吧,暂时没太多时间研究,后期有时间了再看看有没有解决的方案

安装 qemu-system-aarch64

qemu-5.2.0 和之后的版本都需要使用 python 3.6 以上版本的环境才可以编译,不然会返回下面的报错

ERROR: Cannot use '/usr/bin/python', Python >= 3.6 is required.
       Use --python=/path/to/python to specify a supported Python.

安装依赖

yum install -y pixman-devel gcc gcc-c++ make

不安装 pixman-devel 会有下面的报错

ERROR: pixman >= 0.21.8 not present.
       Please install the pixman devel package.

开始编译

wget --no-check-certificate https://download.qemu.org/qemu-4.2.0.tar.xz
tar xf qemu-4.2.0.tar.xz
cd qemu-4.2.0/
./configure --target-list=aarch64-softmmu
make
make install

--target-list 指定需要装的架构,支持的架构非常多,默认这个 参数是 ALL ,太多了,没必要,这里就取自己需要的 aarch64-softmmu

创建 aarch64 操作系统

创建 kvm 存储路径

mkdir -p /data/kvm/iso
cd /data/kvm/iso

准备 aarch64 的 iso 镜像

就还是拿 centos 举个栗子吧

使用的镜像版本高于当前宿主机的版本会有如下报错(而且和当前版本持平也不行,必须低一个子版本......)

Failed to set MokListRT: Invalid Parameter
Something has gone seriously wrong: import_mok_state() failed
: Invalid Parameter
wget -c --no-check-certificate \
https://archive.kernel.org/centos-vault/altarch/7.6.1810/isos/aarch64/CentOS-7-aarch64-Minimal-1804.iso

下载 aarch64 的 UEFI 固件

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

创建虚拟磁盘

qemu-img create -f qcow2 /data/kvm/centos-aarch64.qcow2 100G

创建虚拟机

参数相关的,可以参考这篇博客:qemu-system-aarch64 使用和相关参数介绍

qemu-system-aarch64 \
-machine virt \
-cpu cortex-a57 \
-smp 1 \
-m 2048 \
-bios /data/kvm/QEMU_EFI.fd \
-device virtio-scsi-device \
-device scsi-cd,drive=cdrom \
-drive if=none,file=/data/kvm/iso/CentOS-7-aarch64-Minimal-1804.iso,id=cdrom,media=cdrom \
-device virtio-blk-device,drive=vd0 \
-drive if=none,file=/data/kvm/centos-aarch64.qcow2,id=vd0 \
-device virtio-net-device,netdev=eth0 \
-netdev user,id=eth0,hostfwd=tcp:172.72.0.106:10022-:22 \
-nographic

键盘方向键来选择安装

在这里插入图片描述

因为没有配置网络,这里是不支持 vnc ,因为没有开图形化,所以只能使用 text 的形式来选择

如果按了方向键出现乱码,可以按住 ctrl 键 + backspace 减来删除

已配置的项目,都会显示 [x]

在这里插入图片描述

输入数字 1~9 回车来配置不同的内容,输入 q 退出,输入 b 开始安装,输入 r 刷新、

  1. 语言设置
  2. 时区设置
  3. 安装来源
  4. 软件选择
  5. 磁盘分区
  6. Kdump 配置
  7. 网络配置
  8. root 用户密码
  9. 创建用户

语言设置

这里我就默认是英文,就不操作了

时区设置

输入 2 之后回车

在这里插入图片描述

  1. 修改时区
  2. 配置 ntp 服务

输入 1 之后回车,修改时区

在这里插入图片描述

  1. 欧洲
  2. 亚洲
  3. 美洲
  4. 非洲
  5. 南极洲
  6. 太平洋
  7. 澳大利亚
  8. 大西洋
  9. 印度
  10. 北极
  11. 美国
  12. etc 时区

输入 2 回车,这里需要再敲一次回车,但是我们可以先看这里面有没有自己想要的时区,比如我选择 上海,那就是数字 64

在这里插入图片描述

因为分辨率的问题,还有其他城市没有展示出来,下面的这个界面,就可以输入 64 然后回车了

在这里插入图片描述

安装来源

输入 3 回车

在这里插入图片描述

  1. CD/DVD
  2. 本地 ISO 文件
  3. 网络

可以直接按 c 回车,默认是 本地 ISO 文件 的方式

软件选择

输入 4 回车

因为我下载的是 minimal 的镜像,所以没有其他选择,centos 完整镜像会有很多选项,这一块大家知道是啥内容就可以了,思路和上面的时区配置是一样的,只需要输入对应的数字再回车就好了

我这里就输入 c 继续了

在这里插入图片描述

磁盘分区

输入 5 回车

选择磁盘,我这里只有一块 100G 的,只需要输入 c 回车就好了

在这里插入图片描述

在这里插入图片描述

  1. 替换现有 Linux 系统
  2. 使用全部的空间
  3. 使用空余的空间

我这边就使用默认的,[x] 在 2 的位置,直接输入 c 回车就可以了

配置分区方案

在这里插入图片描述

  1. 标准分区
  2. Btrfs
  3. LVM 逻辑卷
  4. LVM 精简资源调配

没其他特殊情况,就用默认的 LVM 逻辑卷 模式,输入 c 直接回车,好像 text 模式就自动分区了…

Kdump 配置

输入 6 回车

在这里插入图片描述

  1. 开启 kdump[x] 表示开启,[ ] 表示关闭)
  2. kdump 大小 (默认 128 MB)

一般是不开启 kdump,输入 1 之后回车,然后再输入 c 继续

在这里插入图片描述

网络配置

输入 7 回车

在这里插入图片描述

  1. 配置主机名
  2. 配置 eth0 网卡

主机名看自己需求要不要配置,我这就输入 2 配置网卡了

在这里插入图片描述

  1. 配置静态 ipv4 的 ip 地址或者 dhcp 模式 (默认 dhcp)
  2. 配置 ipv4 的子网掩码
  3. 配置 ipv4 的网关
  4. 配置 ipv6 静态地址或者 dhcp 模式
  5. 配置 ipv6 的网关
  6. 配置 dns
  7. 重启后自动开启网卡
  8. 在安装程序中应用配置

依次输入 7 和 8 之后,输入两次 c 继续后面的设置

root 用户密码

输入 8 回车

密码不是明文显示的,输入密码之后回车就可以了,如果密码太简单,输入 yes 就可以了

在这里插入图片描述

创建用户

输入 9 回车

在这里插入图片描述

输入 1 回车,开始创建用户

在这里插入图片描述

  1. 创建用户[x] 表示创建,[ ] 表示不创建)
  2. 全名
  3. 用户名
  4. 配置密码
  5. 是否管理员
  6. 用户组

输入 2 创建全名后,用户名也会被复用,这里直接输入用户名就可以了,比如我这里创建的用户名是:chen2ha

在这里插入图片描述

输入 4 回车,配置用户密码,这时候会多一个选项 5 来配置密码

在这里插入图片描述

输入 5 配置密码,这个创建 root 用户密码是一样的操作,没有附加组的情况下,直接输入 c 继续就可以了

在这里插入图片描述

安装操作系统

所有配置都显示 [x] 之后,输入 b 回车,开始操作系统的安装,静静的等待安装完成

在这里插入图片描述

等待安装完成后,就进入虚拟机了

在这里插入图片描述

安装完成后,默认是 ssh 是禁止 root 用户登录的,可以使用下面的命令来验证

grep -i rootlogin /etc/ssh/sshd_config

需要打开 root 用户远程登录,就取消 PermitRootLogin yes 前面的注释,重启 sshd 服务就好了

在这里插入图片描述

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

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

相关文章

问题三十五:傅立叶变换——带通滤波

傅里叶变换(Fourier Transform)是一种用于分析信号的数学工具,它将信号分解成若干个不同频率的正弦和余弦函数。在图像处理中,傅里叶变换可以用来分析图像中各个频率的成分,从而进行滤波、增强等操作。 在傅里叶变换中…

电商项目后端框架SpringBoot、MybatisPlus

后端框架基础 1.代码自动生成工具 mybatis-plus &#xff08;1&#xff09;首先需要添加依赖文件 <dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.2</version></dependency><de…

【markdown】markdown语法

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…

亿华通寻路:“氢”能之火,何以燎原?

氢&#xff0c;是能满足人类一切幻想的终极能源。以氢作为燃料的燃料电池&#xff0c;虽然还没有锂电池行业那样风光&#xff0c;但也在新能源战略布局中占有不可撼动的地位。近两年各界玩家跨界入局&#xff0c;更是掀起了持续的投资浪潮。在国内&#xff0c;政策依然是氢能发…

JAVA进阶--->JVM

文章目录JVM--java Virtual MachineJVM当时学习的存在位置JVM概述(什么是JVM)为什么学习JVM&#xff1f;虚拟机JVM作用JVM组成部分类加器作用类加载过程类什么时候会被加载&#xff08;初始化&#xff09;类加载器双亲委派机制打破双亲委派机制运行时数据区1.程序计数器2.本地方…

提取游戏《Limbus Company》(边狱公司)内素材

注意事项 相关工具会传到网盘。链接如下&#xff08;如果没链接那就是过期还没更新/文章没更新) BGM&#xff1a; 解包工具合集&#xff08;不包含uestdio&#xff0c;assetstdio)&#xff1a;点击此处 此文章主要是讲解如何提取游戏内的音频文件&#xff0c;所以默认各位会…

Spark性能优化四 内存

文章目录&#xff08;一&#xff09;性能优化分析内容怎么被消耗的如何预估程序会消耗多少内存呢(二&#xff09; 性能优化方案1)高性能序列化类库2)持久化或者checkpoint3)JVM 垃圾回收调优4)提高并行度5&#xff09;数据本地化&#xff08;一&#xff09;性能优化分析 一个计…

RocketMQ的基本概念与系统架构

RocketMQ安装与启动基础概念消息&#xff08;Message)主题&#xff08;Topic)标签&#xff08;Tag&#xff09;队列&#xff08;Queue)消息标识&#xff08;MessageId/Key)系统架构生产者 Producer消费者 Consumer名字服务器 NameServer功能介绍路由注册路由剔除路由发现客户端…

【Spark分布式内存计算框架——Structured Streaming】1. Structured Streaming 概述

前言 Apache Spark在2016年的时候启动了Structured Streaming项目&#xff0c;一个基于Spark SQL的全新流计算引擎Structured Streaming&#xff0c;让用户像编写批处理程序一样简单地编写高性能的流处理程序。 Structured Streaming并不是对Spark Streaming的简单改进&#xf…

Hypium框架使能ArkTS应用高效测试

HarmonyOS发布了声明式开发框架ArkUI&#xff0c;带来了极简高效的开发体验&#xff0c;备受广大开发者的青睐。那么&#xff0c;我们在开发过程中&#xff0c;如何确保ArkTS应用的功能和界面满足预期呢&#xff1f;ArkTS应用怎样高效进行专项测试&#xff1f;接下来&#xff0…

机器学习管道中的数据定价

机器学习管道中的数据定价 Data Pricing in Machine Learning 作者&#xff1a;Pipelines Zicun Cong Xuan Luo Pei Jian Feida Zhu Yong Zhang Abstract 机器学习具有破坏性。同时&#xff0c;机器学习只能通过多方协作&#xff0c;在多个步骤中取得成功&#xff0c;就…

Spark 性能调优

1常规性能调优 1.1常规性能调优一&#xff1a;最优资源配置 Spark性能调优的第一步&#xff0c;就是为任务分配更多的资源&#xff0c;在一定范围内&#xff0c;增加资源的分配与性能的提升是成正比的&#xff0c;实现了最优的资源配置后&#xff0c;在此基础上再考虑进行后面…

高研发投入成就产品力,蔚来财报透露重要信号

3月1日晚间&#xff0c;蔚来发布了2022年第四季度及全年财报。 财报显示&#xff0c;蔚来四季度营收160.6亿元&#xff0c;同比增长62.2%&#xff0c;连续11个季度正增长&#xff0c;同时全年总营收达492.7亿元&#xff0c;季度和年度营收均创新高。 尽管过去一年受到新冠疫情…

妇女节到了,祝福所有女神 Happy Women‘s Day!

在每年&#xff13;月&#xff18;日人们庆祝妇女节 &#xff37;omens Day is cllebrated on March 8 every year.国际妇女节(IWD)&#xff0c;中国内地称“三八”国际劳动妇女节或国际劳动妇女节。是在每年的3月8日为庆祝妇女在经济、政治和社会等领域作出的重要贡献和取得的…

5个商用字体网站分享

整理了5个免费、商用字体素材网站&#xff0c;对你有帮助记得点赞收藏。 更多设计素材免费下载&#xff1a; https://www.sucai999.com/?vNTYxMjky 1、FontSpace https://www.fontspace.com/ 这个网站提供了96000款免费字体&#xff0c;可商业用途的字体就有17000款&#xf…

RK3568-IOT核心板不同规格品牌TF卡读写速率测试

1. 测试对象HD-RK3568-IOT 底板基于HD-RK3568-CORE工业级核心板设计&#xff08;双网口、双CAN、 5路串口&#xff09;&#xff0c;接口丰富&#xff0c;适用于工业现场应用需求&#xff0c;亦方便用户评估核心板及CPU的性能。适用于工业自动化控制、人机界面、中小型医疗分析器…

VMworkstation centos虚拟机配置仅主机模式

首先是仅主机模式介绍&#xff0c;可以略过直接看下面具体配置过程。仅主机模式用于在宿主机和虚拟机之间建立局域网&#xff0c;宿主机和虚拟机之间可以互相访问&#xff0c;原理是建立虚拟交换机和宿主机虚拟网卡&#xff08;vmnet1&#xff09;&#xff0c;宿主机虚拟网卡和…

深入分析域内ntlm relay to adcs服务的利用(含wireshark抓包分析)

前言 2021年中旬&#xff0c;specterops发布了一项针对域证书服务(adcs)的利用白皮书&#xff0c;文档中提到了19种对adcs服务的利用。本篇主要是分析文中提出的ntlm relay to adcs窃取证书的攻击流程&#xff0c;原理和抓包分析。 相关内容 ADCS介绍 Active Directory证书…

AI for Science系列(三):赛桨PaddleScience底层核心框架技术创新详解

继上一篇典型案例及API功能介绍&#xff0c;本篇重点讲解飞桨核心框架为支持科学计算任务在技术上的创新工作与成果。 框架技术创新 飞桨科学计算套件赛桨PaddleScience底层技术依赖飞桨核心框架。为了有力地支撑科学计算任务高效训练与推理&#xff0c;飞桨核心框架在自动微…

案例13-前端对localStorage的使用分析

一&#xff1a;背景介绍 前端在调用后端接口获取某一个人的评论次数、获赞次数、回复次数。调用之后判断后端返回过来的值。如果返回回来的值是0的话&#xff0c;从缓存中获取对应的值&#xff0c;如果从缓存中获取的评论次数为空那么其他两个的次数也为0。 二&#xff1a;思路…