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

这篇具有很好参考价值的文章主要介绍了Linux 利用 qemu-system-aarch64 实现 x86 机器安装 arm64 的操作系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

遇到的问题

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 qemu-* 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

键盘方向键来选择安装

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

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

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

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

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

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

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

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

时区设置

输入 2 之后回车

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

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

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

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

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

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

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

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

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

安装来源

输入 3 回车

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

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

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

软件选择

输入 4 回车

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

我这里就输入 c 继续了

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

磁盘分区

输入 5 回车

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

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

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

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

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

配置分区方案

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

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

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

Kdump 配置

输入 6 回车

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

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

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

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

网络配置

输入 7 回车

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

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

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

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

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

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

root 用户密码

输入 8 回车

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

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

创建用户

输入 9 回车

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

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

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

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

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

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

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

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

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

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

安装操作系统

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

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

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

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

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

grep -i rootlogin /etc/ssh/sshd_config

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

Linux 利用 qemu-system-aarch64 实现 x86 机器安装 arm64 的操作系统文章来源地址https://www.toymoban.com/news/detail-456402.html

到了这里,关于Linux 利用 qemu-system-aarch64 实现 x86 机器安装 arm64 的操作系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 交叉编译----宿主机x86 ubuntu 64位-目标机ARMv8 aarch64

    1.交叉编译是什么,为什么要交叉编译 编译:在一个平台上生成在该平台上的可执行代码 交叉编译:在一个平台上生成在另一个平台上的可执行代码 交叉编译的例子:如51单片机的可执行代码(hex文件)是在集成环境keil上面编译完成的,我们只需要将编译好的可执行代码下

    2024年02月15日
    浏览(46)
  • 使用QEMU(x86)模拟运行ARM64架构并进行内核调试

    在 x86 上使用 QEMU 虚拟机模拟并调试 ARM64。 参考:ubuntu虚拟机中使用QEMU搭建ARM64环境 主机 ubuntu 20.04, Linux 5.16.0 QEMU emulator version 7.2.92 (v8.0.0-rc2-23-gefcd0ec14b) :qemu-7.2.29 合适的ARM64内核源码:linux-4.14.221.tar.gz 安装交叉编译工具: sudo apt-get install gcc-aarch64-linux-gnu 命令安装以及源码

    2024年02月09日
    浏览(61)
  • dpkg:package architecture (aarch64) does not match system (arm64)

    在nx平台下执行  root@root-desktop:~/test$ sudo dpkg -i MyTest_0.2.1.0_aarch64.deb  dpkg: error processing archive MyTest_0.2.1.0_aarch64.deb (--install):  package architecture (aarch64) does not match system (arm64) Errors were encountered while processing: MyTest_0.2.1.0_aarch64.deb root@root-desktop:~/test$ uname -a Linux rootdesktop 4.9.201-tegra

    2023年04月22日
    浏览(100)
  • 带wiringPi库的交叉编译 ---宿主机x86Ubuntu,目标机ARMv8 aarch64(香橙派)

    带wiringPi库的交叉编译如何进行 先交叉编译wiringPi库,编译出的库适合香橙派,这时候交叉编译可执行程序的平台和链接库的格式也是正确的 ,然后通过-I和-L来指定链接的wiringPi库的头文件和库的位置,但是现在还没有学习过,后面学了补上 此时如果把wiringPi库拿到Ubuntu上进

    2024年02月15日
    浏览(47)
  • Linux aarch64架构libreoffice安装使用

    libreoffice安装包 tar -zxvf LibreOffice-7.1.tar.gz cd LibreOffice-7.1LibreOfficeDev-7.1-Linux-aarch64-rpmRPMS rpm -Uivh *.rpm --nodeps cd LibreOffice-7.1LibreOfficeDev-7.1-Linux-aarch64-rpm-langpack_zh-CNRPMS rpm -Uivh *.rpm --nodeps cd /opt/libreofficedev7.1/program /opt/libreofficedev7.1/program/oosplash --convert-to html /data/test.doc --outdir /da

    2024年02月07日
    浏览(64)
  • ubuntu22上使用qemu-system-arm调试linux

    qemu是用软件模拟硬件解析指令运行的软件,可以模拟arm、arm64、x86等,对于调试linux 内核机制很方便,不用额外购买开发板。由于linux上有对qemu的加速引擎,支持程度更高,且网络上教程居多,所以这里使用virtualbox+ubuntu22虚拟机,在ubuntu上运行qemu进行模拟。 virtualbox安装:

    2024年01月25日
    浏览(51)
  • 银河麒麟(linux 架构aarch64) 获取本机所有IP地址

    环境: 版本:银河麒麟桌面操作系统V10(SP1) 内核:Linux 5.4.18-35-generic CPU:Phytium,D2000/8 终端输入 uname -m 查看 架构 aarch64 在windows 上 和 银河麒麟(linux loongarch64) 使用下面的代码获取IP地址: 银河麒麟(linux) gethostname 获取不到IP地址_程序媛zcx的博客-CSDN博客_银河麒麟查看ip地

    2024年02月11日
    浏览(57)
  • Linux aarch64架构中使用docker安装mysql8

    1、遇到问题: 官网下载mysql包,安装完成后,启动mysql一直显示-bash: ./mysqld: 无法执行二进制文件。 网上找了各种资料,但是都没有作用,怀疑自己操作姿势不正确,以为是自己包下错了(其实也是包不对),重新下载了不同的各种包,换了各种安装方法,发现仍旧启动不了

    2024年02月14日
    浏览(49)
  • aarch64-linux交叉编译libcurl带zlib和openssl

    交叉编译libcurl需要依赖zlib和openssl 需要先用aarch64工具链编译zlib和openssl gcc用于执行交叉编译 gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu sysroot是交叉版本的库文件集合 sysroot-glibc-linaro-2.25-2019.12-aarch64-linux-gnu 解压在同一个文件夹下 配置 .cmake 工具链文件 aarch64-linux-gnueabi.toolchain.c

    2024年02月10日
    浏览(49)
  • VSCode+GDB+Qemu调试ARM64 linux内核

    俗话说,工欲善其事 必先利其器。linux kernel是一个非常复杂的系统,初学者会很难入门。 如果有一个方便的调试环境,学习效率至少能有5-10倍的提升。 为了学习linux内核,通常有这两个需要 可以摆脱硬件,方便的编译和运行linux 可以使用图形化的工具来调试linux 笔者使用

    2024年02月08日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包